1
.gitignore
vendored
|
@ -8,6 +8,7 @@ apps/presentationeditor/embed/resources/less/node_modules
|
||||||
apps/spreadsheeteditor/embed/resources/less/node_modules
|
apps/spreadsheeteditor/embed/resources/less/node_modules
|
||||||
apps/documenteditor/mobile/resources/sass/.sass-cache
|
apps/documenteditor/mobile/resources/sass/.sass-cache
|
||||||
apps/spreadsheeteditor/mobile/resources/sass/.sass-cache
|
apps/spreadsheeteditor/mobile/resources/sass/.sass-cache
|
||||||
|
apps/presentationeditor/mobile/resources/sass/.sass-cache
|
||||||
|
|
||||||
|
|
||||||
# test documents
|
# test documents
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[](http://www.gnu.org/licenses/agpl-3.0.ru.html) 
|
[](http://www.gnu.org/licenses/agpl-3.0.ru.html) 
|
||||||
|
|
||||||
## web-apps
|
## web-apps
|
||||||
|
|
||||||
|
|
|
@ -104,15 +104,21 @@ define([
|
||||||
this.$window.find('.tool').hide();
|
this.$window.find('.tool').hide();
|
||||||
this.$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
this.$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||||
if (this.type == Asc.c_oAscAdvancedOptionsID.DRM) {
|
if (this.type == Asc.c_oAscAdvancedOptionsID.DRM) {
|
||||||
var me = this;
|
this.inputPwd = new Common.UI.InputField({
|
||||||
me.inputPwd = new Common.UI.InputField({
|
|
||||||
el: $('#id-password-txt'),
|
el: $('#id-password-txt'),
|
||||||
type: 'password',
|
type: 'password',
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
validateOnBlur: false
|
validateOnBlur: false
|
||||||
});
|
});
|
||||||
} else
|
this.$window.find('input').on('keypress', _.bind(this.onKeyPress, this));
|
||||||
|
} else {
|
||||||
|
var me = this;
|
||||||
this.initCodePages();
|
this.initCodePages();
|
||||||
|
this.onPrimary = function() {
|
||||||
|
me.onBtnClick();
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -138,9 +144,9 @@ define([
|
||||||
this.close();
|
this.close();
|
||||||
},
|
},
|
||||||
|
|
||||||
onPrimary: function() {
|
onKeyPress: function(event) {
|
||||||
this.onBtnClick();
|
if (event.keyCode == Common.UI.Keys.RETURN)
|
||||||
return false;
|
this.onBtnClick();
|
||||||
},
|
},
|
||||||
|
|
||||||
initCodePages: function () {
|
initCodePages: function () {
|
||||||
|
|
|
@ -63,39 +63,5 @@ Ext.define('Common.component.SettingsList', {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
},
|
|
||||||
|
|
||||||
//
|
|
||||||
// Workaround Sencha Touch bug
|
|
||||||
// See https://sencha.jira.com/browse/TOUCH-3718
|
|
||||||
//
|
|
||||||
|
|
||||||
findGroupHeaderIndices: function() {
|
|
||||||
var me = this,
|
|
||||||
store = me.getStore(),
|
|
||||||
storeLn = store.getCount(),
|
|
||||||
groups = store.getGroups(),
|
|
||||||
groupLn = groups.length,
|
|
||||||
headerIndices = me.headerIndices = {},
|
|
||||||
footerIndices = me.footerIndices = {},
|
|
||||||
i, previousIndex, firstGroupedRecord, storeIndex;
|
|
||||||
|
|
||||||
|
|
||||||
me.groups = groups;
|
|
||||||
|
|
||||||
for (i = 0; i < groupLn; i++) {
|
|
||||||
firstGroupedRecord = groups[i].children[0];
|
|
||||||
storeIndex = store.indexOf(firstGroupedRecord);
|
|
||||||
headerIndices[storeIndex] = true;
|
|
||||||
|
|
||||||
previousIndex = storeIndex - 1;
|
|
||||||
if (previousIndex >= 0) {
|
|
||||||
footerIndices[previousIndex] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
footerIndices[storeLn - 1] = true;
|
|
||||||
|
|
||||||
return headerIndices;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
BIN
apps/common/mobile/resources/fonts/ios7/ios7.eot
Normal file
16
apps/common/mobile/resources/fonts/ios7/ios7.svg
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG font generated by IcoMoon.
|
||||||
|
<iconset grid="16"></iconset>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="icomoon" horiz-adv-x="512" >
|
||||||
|
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
||||||
|
<glyph unicode="!" d="M 236.48-16.76L 175.652,48.016L 357.208,223.24L 175.652,406.38L 236.48,463.236L 476.48,223.24 z" />
|
||||||
|
<glyph unicode=""" d="M 203.884,223.992L 410.68,21.364L 357.32-32L 101.32,223.992L 357.32,480L 409.596,427.74 z" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="256" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 826 B |
BIN
apps/common/mobile/resources/fonts/ios7/ios7.ttf
Normal file
BIN
apps/common/mobile/resources/fonts/ios7/ios7.woff
Normal file
BIN
apps/common/mobile/resources/fonts/pictos/pictos-web.eot
Normal file
114
apps/common/mobile/resources/fonts/pictos/pictos-web.svg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
apps/common/mobile/resources/fonts/pictos/pictos-web.ttf
Normal file
BIN
apps/common/mobile/resources/fonts/pictos/pictos-web.woff
Normal file
BIN
apps/common/mobile/resources/fonts/tizen/TizenSansMedium.ttf
Normal file
BIN
apps/common/mobile/resources/fonts/tizen/TizenSansRegular.ttf
Normal file
BIN
apps/common/mobile/resources/fonts/tizen/tizen-icon.eot
Normal file
13
apps/common/mobile/resources/fonts/tizen/tizen-icon.svg
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Generated by IcoMoon</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="icomoon" horiz-adv-x="1024">
|
||||||
|
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||||
|
<missing-glyph horiz-adv-x="1024" />
|
||||||
|
<glyph unicode=" " d="" horiz-adv-x="512" />
|
||||||
|
<glyph unicode="a" d="M877.714 256v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 548.571v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 841.143v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714z" horiz-adv-x="878" />
|
||||||
|
<glyph unicode="b" d="M731.429 475.429v73.143q0 14.857-10.857 25.714t-25.714 10.857h-286.857l108 108q10.857 10.857 10.857 25.714t-10.857 25.714l-52 52q-10.286 10.286-25.714 10.286t-25.714-10.286l-258.857-258.857q-10.286-10.286-10.286-25.714t10.286-25.714l258.857-258.857q10.286-10.286 25.714-10.286t25.714 10.286l52 52q10.286 10.286 10.286 25.714t-10.286 25.714l-108 108h286.857q14.857 0 25.714 10.857t10.857 25.714zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
||||||
|
<glyph unicode="c" d="M409.714 226.857l259.429 259.429q10.857 10.857 10.857 25.714t-10.857 25.714l-259.429 259.429q-10.857 10.857-25.714 10.857t-25.714-10.857l-58.286-58.286q-10.857-10.857-10.857-25.714t10.857-25.714l175.429-175.429-175.429-175.429q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
apps/common/mobile/resources/fonts/tizen/tizen-icon.ttf
Normal file
BIN
apps/common/mobile/resources/fonts/tizen/tizen-icon.woff
Normal file
|
@ -17,7 +17,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: $anchor-width;
|
width: $anchor-width;
|
||||||
height: $anchor-height;
|
height: $anchor-height;
|
||||||
-webkit-mask: 0 0 theme_image($theme-name, "tip_top.png") no-repeat;
|
//-webkit-mask: 0 0 theme_image($theme-name, "tip_top.png") no-repeat;
|
||||||
-webkit-mask-size: $anchor-width $anchor-height;
|
-webkit-mask-size: $anchor-width $anchor-height;
|
||||||
@include background-gradient($base-color, color_stops(lighten($base-color, 15%), lighten($base-color, 13%)));
|
@include background-gradient($base-color, color_stops(lighten($base-color, 15%), lighten($base-color, 13%)));
|
||||||
top: 1px !important;
|
top: 1px !important;
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: $anchor-width;
|
width: $anchor-width;
|
||||||
height: $anchor-height + .1em;
|
height: $anchor-height + .1em;
|
||||||
-webkit-mask: 0 0 theme_image($theme-name, "tip_bottom.png") no-repeat;
|
//-webkit-mask: 0 0 theme_image($theme-name, "tip_bottom.png") no-repeat;
|
||||||
-webkit-mask-size: $anchor-width $anchor-height;
|
-webkit-mask-size: $anchor-width $anchor-height;
|
||||||
@include background-gradient($base-color, color_stops($base-color, darken($base-color, 5%)));
|
@include background-gradient($base-color, color_stops($base-color, darken($base-color, 5%)));
|
||||||
top: -1px !important;
|
top: -1px !important;
|
||||||
|
@ -106,4 +106,17 @@
|
||||||
.round {
|
.round {
|
||||||
@include border-radius($panel-border-radius);
|
@include border-radius($panel-border-radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hide group header
|
||||||
|
.x-list-header-wrap {
|
||||||
|
@include border-top-radius($panel-border-radius !important);
|
||||||
|
|
||||||
|
.x-innerhtml {
|
||||||
|
@include border-top-radius($panel-border-radius !important);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-list-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -9,6 +9,10 @@ $shadow-width: .065em; // Space between tip and its shadow
|
||||||
$toolbar-border-color: darken($color, 50%);
|
$toolbar-border-color: darken($color, 50%);
|
||||||
$toolbar-button-color: darken($color, 5%);
|
$toolbar-button-color: darken($color, 5%);
|
||||||
|
|
||||||
|
.x-toolbar {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
.x-toolbar-#{$ui-label} {
|
.x-toolbar-#{$ui-label} {
|
||||||
@if $ui-label == search {
|
@if $ui-label == search {
|
||||||
@include background-gradient($color, color_stops($color, lighten($color, 11%) 20%, lighten($color, 11%)));
|
@include background-gradient($color, color_stops($color, lighten($color, 11%) 20%, lighten($color, 11%)));
|
||||||
|
|
|
@ -33,18 +33,36 @@ $outline-icon-size : 74px;
|
||||||
$outline-icon-image-width : 148px;
|
$outline-icon-image-width : 148px;
|
||||||
$outline-icon-image-height : 222px;
|
$outline-icon-image-height : 222px;
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
@import 'sencha-touch/default';
|
||||||
|
|
||||||
@include sencha-panel;
|
@import 'sencha-touch/default/src/Class';
|
||||||
@include sencha-buttons;
|
@import 'sencha-touch/default/src/Button';
|
||||||
@include sencha-toolbar;
|
@import 'sencha-touch/default/src/Panel';
|
||||||
@include sencha-toolbar-forms;
|
@import 'sencha-touch/default/src/Sheet';
|
||||||
@include sencha-indexbar;
|
@import 'sencha-touch/default/src/MessageBox';
|
||||||
@include sencha-list;
|
@import 'sencha-touch/default/src/Toolbar';
|
||||||
@include sencha-layout;
|
@import 'sencha-touch/default/src/Toast';
|
||||||
@include sencha-form;
|
@import 'sencha-touch/default/src/Menu';
|
||||||
@include sencha-msgbox;
|
//@import 'sencha-touch/default/src/carousel/Carousel';
|
||||||
@include sencha-loading-spinner;
|
@import 'sencha-touch/default/src/form/Panel';
|
||||||
|
@import 'sencha-touch/default/src/form/FieldSet';
|
||||||
|
@import 'sencha-touch/default/src/field/Field';
|
||||||
|
@import 'sencha-touch/default/src/field/Checkbox';
|
||||||
|
@import 'sencha-touch/default/src/field/Radio';
|
||||||
|
@import 'sencha-touch/default/src/field/Search';
|
||||||
|
@import 'sencha-touch/default/src/field/Select';
|
||||||
|
//@import 'sencha-touch/default/src/field/Slider';
|
||||||
|
@import 'sencha-touch/default/src/field/Spinner';
|
||||||
|
//@import 'sencha-touch/default/src/field/TextArea';
|
||||||
|
//@import 'sencha-touch/default/src/dataview/IndexBar';
|
||||||
|
@import 'sencha-touch/default/src/dataview/List';
|
||||||
|
@import 'sencha-touch/default/src/picker/Picker';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/ListPaging';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/PullRefresh';
|
||||||
|
//@import 'sencha-touch/default/src/slider/Slider';
|
||||||
|
@import 'sencha-touch/default/src/slider/Toggle';
|
||||||
|
//@import 'sencha-touch/default/src/tab/Panel';
|
||||||
|
//@import 'sencha-touch/default/src/grid/Grid';
|
||||||
|
|
||||||
@import 'common-buttons';
|
@import 'common-buttons';
|
||||||
@import 'common-dataview';
|
@import 'common-dataview';
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
dir = File.dirname(__FILE__)
|
dir = File.dirname(__FILE__)
|
||||||
|
|
||||||
# Load the sencha-touch framework automatically.
|
# Load the sencha-touch framework automatically.
|
||||||
load File.join(dir, '..', '..', '..', '..', '..', '3rdparty', 'touch', 'resources', 'themes')
|
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
|
||||||
|
|
||||||
# Add include path for command styles
|
# Add include path for command styles
|
||||||
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
|
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
dir = File.dirname(__FILE__)
|
dir = File.dirname(__FILE__)
|
||||||
|
|
||||||
# Load the sencha-touch framework automatically.
|
# Load the sencha-touch framework automatically.
|
||||||
load File.join(dir, '..', '..', '..', '..', '..', '3rdparty', 'touch', 'resources', 'themes')
|
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
|
||||||
|
|
||||||
# Add include path for command styles
|
# Add include path for command styles
|
||||||
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
|
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
|
||||||
|
@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
sass_path = dir
|
||||||
css_path = File.join(dir, "..", "css")
|
css_path = File.join(dir, "..", "css")
|
||||||
|
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
|
||||||
environment = :production
|
environment = :production
|
||||||
output_style = :compressed
|
output_style = :compressed
|
|
@ -13,23 +13,42 @@ $icons-default-size : 24px;
|
||||||
$icons-default-image-width : 72px;
|
$icons-default-image-width : 72px;
|
||||||
$icons-default-image-height : 144px;
|
$icons-default-image-height : 144px;
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
@import 'sencha-touch/default';
|
||||||
|
|
||||||
|
@import 'sencha-touch/default/src/Class';
|
||||||
|
@import 'sencha-touch/default/src/Button';
|
||||||
|
//@import 'sencha-touch/default/src/Panel';
|
||||||
|
@import 'sencha-touch/default/src/Sheet';
|
||||||
|
@import 'sencha-touch/default/src/MessageBox';
|
||||||
|
@import 'sencha-touch/default/src/Toolbar';
|
||||||
|
//@import 'sencha-touch/default/src/Toast';
|
||||||
|
//@import 'sencha-touch/default/src/Menu';
|
||||||
|
//@import 'sencha-touch/default/src/carousel/Carousel';
|
||||||
|
@import 'sencha-touch/default/src/form/Panel';
|
||||||
|
//@import 'sencha-touch/default/src/form/FieldSet';
|
||||||
|
//@import 'sencha-touch/default/src/field/Field';
|
||||||
|
//@import 'sencha-touch/default/src/field/Checkbox';
|
||||||
|
//@import 'sencha-touch/default/src/field/Radio';
|
||||||
|
//@import 'sencha-touch/default/src/field/Search';
|
||||||
|
//@import 'sencha-touch/default/src/field/Select';
|
||||||
|
//@import 'sencha-touch/default/src/field/Slider';
|
||||||
|
//@import 'sencha-touch/default/src/field/Spinner';
|
||||||
|
//@import 'sencha-touch/default/src/field/TextArea';
|
||||||
|
//@import 'sencha-touch/default/src/dataview/IndexBar';
|
||||||
|
//@import 'sencha-touch/default/src/dataview/List';
|
||||||
|
//@import 'sencha-touch/default/src/picker/Picker';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/ListPaging';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/PullRefresh';
|
||||||
|
//@import 'sencha-touch/default/src/slider/Slider';
|
||||||
|
//@import 'sencha-touch/default/src/slider/Toggle';
|
||||||
|
//@import 'sencha-touch/default/src/tab/Panel';
|
||||||
|
//@import 'sencha-touch/default/src/grid/Grid';
|
||||||
|
|
||||||
@import 'common-buttons';
|
@import 'common-buttons';
|
||||||
@import 'common-toolbar';
|
@import 'common-toolbar';
|
||||||
|
|
||||||
@import 'application-mixins';
|
@import 'application-mixins';
|
||||||
|
|
||||||
@include sencha-panel;
|
|
||||||
@include sencha-buttons;
|
|
||||||
@include sencha-toolbar;
|
|
||||||
@include sencha-toolbar-forms;
|
|
||||||
@include sencha-indexbar;
|
|
||||||
@include sencha-layout;
|
|
||||||
@include sencha-form;
|
|
||||||
@include sencha-msgbox;
|
|
||||||
@include sencha-loading-spinner;
|
|
||||||
|
|
||||||
@include common-toolbar-ui('edit', $base-color);
|
@include common-toolbar-ui('edit', $base-color);
|
||||||
@include common-toolbar-ui('search', $base-color);
|
@include common-toolbar-ui('search', $base-color);
|
||||||
|
|
||||||
|
|
|
@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
sass_path = dir
|
||||||
css_path = File.join(dir, "..", "css")
|
css_path = File.join(dir, "..", "css")
|
||||||
environment = :development
|
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
|
||||||
output_style = :expanded
|
environment = :production
|
||||||
|
output_style = :compressed
|
|
@ -10,5 +10,6 @@ add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', '
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
sass_path = dir
|
||||||
css_path = File.join(dir, "..", "css")
|
css_path = File.join(dir, "..", "css")
|
||||||
|
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
|
||||||
environment = :production
|
environment = :production
|
||||||
output_style = :compressed
|
output_style = :compressed
|
|
@ -18,18 +18,36 @@ $icons-default-size : 24px;
|
||||||
$icons-default-image-width : 72px;
|
$icons-default-image-width : 72px;
|
||||||
$icons-default-image-height : 624px;
|
$icons-default-image-height : 624px;
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
@import 'sencha-touch/default';
|
||||||
|
|
||||||
@include sencha-panel;
|
@import 'sencha-touch/default/src/Class';
|
||||||
@include sencha-buttons;
|
@import 'sencha-touch/default/src/Button';
|
||||||
@include sencha-toolbar;
|
@import 'sencha-touch/default/src/Panel';
|
||||||
@include sencha-toolbar-forms;
|
@import 'sencha-touch/default/src/Sheet';
|
||||||
@include sencha-indexbar;
|
@import 'sencha-touch/default/src/MessageBox';
|
||||||
@include sencha-list;
|
@import 'sencha-touch/default/src/Toolbar';
|
||||||
@include sencha-layout;
|
@import 'sencha-touch/default/src/Toast';
|
||||||
@include sencha-form;
|
@import 'sencha-touch/default/src/Menu';
|
||||||
@include sencha-msgbox;
|
//@import 'sencha-touch/default/src/carousel/Carousel';
|
||||||
@include sencha-loading-spinner;
|
@import 'sencha-touch/default/src/form/Panel';
|
||||||
|
@import 'sencha-touch/default/src/form/FieldSet';
|
||||||
|
@import 'sencha-touch/default/src/field/Field';
|
||||||
|
@import 'sencha-touch/default/src/field/Checkbox';
|
||||||
|
@import 'sencha-touch/default/src/field/Radio';
|
||||||
|
@import 'sencha-touch/default/src/field/Search';
|
||||||
|
@import 'sencha-touch/default/src/field/Select';
|
||||||
|
//@import 'sencha-touch/default/src/field/Slider';
|
||||||
|
//@import 'sencha-touch/default/src/field/Spinner';
|
||||||
|
//@import 'sencha-touch/default/src/field/TextArea';
|
||||||
|
//@import 'sencha-touch/default/src/dataview/IndexBar';
|
||||||
|
@import 'sencha-touch/default/src/dataview/List';
|
||||||
|
//@import 'sencha-touch/default/src/picker/Picker';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/ListPaging';
|
||||||
|
//@import 'sencha-touch/default/src/plugin/PullRefresh';
|
||||||
|
//@import 'sencha-touch/default/src/slider/Slider';
|
||||||
|
@import 'sencha-touch/default/src/slider/Toggle';
|
||||||
|
//@import 'sencha-touch/default/src/tab/Panel';
|
||||||
|
//@import 'sencha-touch/default/src/grid/Grid';
|
||||||
|
|
||||||
@import 'common-buttons';
|
@import 'common-buttons';
|
||||||
@import 'common-dataview';
|
@import 'common-dataview';
|
||||||
|
@ -48,32 +66,32 @@ $icons-default-image-height : 624px;
|
||||||
@include common-toolbar-ui('edit', $base-color);
|
@include common-toolbar-ui('edit', $base-color);
|
||||||
@include common-toolbar-ui('search', $base-color);
|
@include common-toolbar-ui('search', $base-color);
|
||||||
|
|
||||||
@include application-icon-normal('save', 0);
|
//@include application-icon-normal('save', 0);
|
||||||
@include application-icon-normal('undo', 1);
|
//@include application-icon-normal('undo', 1);
|
||||||
@include application-icon-normal('share', 2);
|
@include application-icon-normal('share', 2);
|
||||||
@include application-icon-normal('font-style', 3);
|
//@include application-icon-normal('font-style', 3);
|
||||||
@include application-icon-normal('font-color', 4);
|
//@include application-icon-normal('font-color', 4);
|
||||||
@include application-icon-normal('bold', 5);
|
//@include application-icon-normal('bold', 5);
|
||||||
@include application-icon-normal('italic', 6);
|
//@include application-icon-normal('italic', 6);
|
||||||
@include application-icon-normal('underline', 7);
|
//@include application-icon-normal('underline', 7);
|
||||||
@include application-icon-normal('align-left', 8);
|
//@include application-icon-normal('align-left', 8);
|
||||||
@include application-icon-normal('align-center', 9);
|
//@include application-icon-normal('align-center', 9);
|
||||||
@include application-icon-normal('align-right', 10);
|
//@include application-icon-normal('align-right', 10);
|
||||||
@include application-icon-normal('align-fill', 11);
|
//@include application-icon-normal('align-fill', 11);
|
||||||
@include application-icon-normal('pages', 12);
|
@include application-icon-normal('pages', 12);
|
||||||
@include application-icon-normal('search-prev', 13);
|
@include application-icon-normal('search-prev', 13);
|
||||||
@include application-icon-normal('search-next', 14);
|
@include application-icon-normal('search-next', 14);
|
||||||
@include application-icon-normal('insert', 15);
|
//@include application-icon-normal('insert', 15);
|
||||||
@include application-icon-normal('search', 16);
|
@include application-icon-normal('search', 16);
|
||||||
@include application-icon-normal('fullscreen', 17);
|
@include application-icon-normal('fullscreen', 17);
|
||||||
@include application-icon-normal('spinner-down', 18);
|
//@include application-icon-normal('spinner-down', 18);
|
||||||
@include application-icon-normal('spinner-up', 19);
|
//@include application-icon-normal('spinner-up', 19);
|
||||||
@include application-icon-normal('table', 20);
|
//@include application-icon-normal('table', 20);
|
||||||
@include application-icon-normal('picture', 21);
|
//@include application-icon-normal('picture', 21);
|
||||||
@include application-icon-normal('insert-row', 22);
|
//@include application-icon-normal('insert-row', 22);
|
||||||
@include application-icon-normal('insert-column', 23);
|
//@include application-icon-normal('insert-column', 23);
|
||||||
@include application-icon-normal('textbigger', 24);
|
//@include application-icon-normal('textbigger', 24);
|
||||||
@include application-icon-normal('textless', 25);
|
//@include application-icon-normal('textless', 25);
|
||||||
|
|
||||||
|
|
||||||
@include common-button-ui('base', $base-color);
|
@include common-button-ui('base', $base-color);
|
||||||
|
|
|
@ -4,8 +4,12 @@ dir = File.dirname(__FILE__)
|
||||||
# Load the sencha-touch framework automatically.
|
# Load the sencha-touch framework automatically.
|
||||||
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
|
load File.join(dir, '..', '..', '..', '..', '..', 'vendor', 'touch', 'resources', 'themes')
|
||||||
|
|
||||||
|
# Add include path for command styles
|
||||||
|
add_import_path File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'sass')
|
||||||
|
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
sass_path = dir
|
||||||
css_path = File.join(dir, "..", "css")
|
css_path = File.join(dir, "..", "css")
|
||||||
|
fonts_path = File.join(dir, '..', '..', '..', '..', '..', 'apps', 'common', 'mobile', 'resources', 'fonts')
|
||||||
environment = :production
|
environment = :production
|
||||||
output_style = :compressed
|
output_style = :compressed
|
78
vendor/touch/SETUP.html
vendored
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
h1 {font-family: Calibri; font-size: 18pt;}
|
||||||
|
h2 {font-family: Calibri; font-size: 14pt;}
|
||||||
|
h3 {font-family: Calibri; font-size: 12pt;}
|
||||||
|
body {font-family: Calibri; font-size: 11pt;}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body style="width: 700px">
|
||||||
|
<a href="http://sencha.com"><span style="left: 50px"></span><img src="SenchaLogo.png" width="110" height="40" /></a>
|
||||||
|
<h1>Sencha Touch Setup Guide</h1>
|
||||||
|
<p><b>Topics:</b></p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="Intro">Introduction</a></li>
|
||||||
|
<li><a href="Install">Installing Sencha Touch</a></li>
|
||||||
|
<li><a href="Info">Sencha Touch Information</a></li>
|
||||||
|
</ul>
|
||||||
|
<a name="Intro"></a>
|
||||||
|
<h2>Introduction</h2>
|
||||||
|
<p>Sencha Touch, a high-performance HTML5 mobile application framework, is the cornerstone
|
||||||
|
of the Sencha HTML5 platform. Built for enabling world-class user experiences,
|
||||||
|
Sencha Touch is the only framework that enables developers to build powerful apps
|
||||||
|
that work on iOS, Android, BlackBerry, Windows Phone, and Internet Explorer 10.
|
||||||
|
<br>Learn more at <a href="http://docs.sencha.com/touch/#!/guide/whats_new">What's New</a>.
|
||||||
|
<br>Learn about new APIs in the "New in this version"
|
||||||
|
section near the end of the <a href="http://docs.sencha.com/touch/#!/api">API page</a>.</p>
|
||||||
|
|
||||||
|
<a name="Install"></a>
|
||||||
|
<h2>Installing Sencha Touch</h2>
|
||||||
|
<p>To install Sencha Touch:</p>
|
||||||
|
<ol>
|
||||||
|
<li>Download <a href="http://www.sencha.com/products/sencha-cmd/download">Sencha Cmd</a>.
|
||||||
|
Sencha Cmd enables you to publish, package, and simulate an application, as well as to upgrade Sencha software.
|
||||||
|
Sencha Cmd also installs Apache Ant, Compass, and Sass.</li>
|
||||||
|
<li>Download <a href="http://www.ruby-lang.org/en/downloads/">Ruby</a>
|
||||||
|
<ul>
|
||||||
|
<li><b>Mac OS</b>: Ruby is pre-installed. You can verify
|
||||||
|
it with the <b>ruby -v</b> command.</li>
|
||||||
|
<li><b>Windows</b> Download the open source <a href="http://www.7-zip.org">7-Zip</a> archiver.
|
||||||
|
Download Ruby (any version) from <a href="http://rubyinstaller.org/downloads/">rubyinstaller.org</a>.
|
||||||
|
Set the Path environment variable to point to the directory in which you unzip the installer file.</li>
|
||||||
|
<li><b>Ubuntu</b>: Use <b>sudo apt-get install ruby2.0.0</b> to download and install Ruby.</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>Start your web server.
|
||||||
|
If using the Sencha Cmd web server, change directory to where you want to serve
|
||||||
|
your application, open a new command line window and start the server with the
|
||||||
|
<b>sencha web start</b> command. You can stop the server by typing
|
||||||
|
CTRL+c or opening another command line and typing the <b>sencha web stop</b> command.
|
||||||
|
You can access the Sencha Cmd web server using
|
||||||
|
the <code>http://localhost:1841/<app_name></code> URL.</li>
|
||||||
|
<li>If you are using Windows and running the IIS web server, add "application/x-json"
|
||||||
|
as a MIME type; otherwise, IIS returns the JSON file with an error when you preview
|
||||||
|
your project. In Windows, enable IIS from the add/remove programs or programs and features dialog
|
||||||
|
(add/remove windows features), you can also add extra functionality by downloading the web platform
|
||||||
|
toolkit to make config of IIS features extra simple.
|
||||||
|
For information on adding this MIME type, see this
|
||||||
|
<a href="http://stackoverflow.com/a/1121114/273985">Stackoverflow article</a>.</li>
|
||||||
|
<li>Use a modern web browser such as
|
||||||
|
<a href="https://www.google.com/intl/en/chrome/browser">Chrome</a>
|
||||||
|
or <a href="http://www.apple.com/safari/">Safari</a>.</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
<a name="Info"></a>
|
||||||
|
<h2>Sencha Touch Information</h2>
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://sencha.com/">Sencha.com</a></li>
|
||||||
|
<li><a href="http://docs.sencha.com/">Sencha Documentation</a></li>
|
||||||
|
<li><a href="release-notes.html">Sencha Touch Release Notes</a></li>
|
||||||
|
<li><a href="examples/">Sencha Touch Examples</a></li>
|
||||||
|
<li><a href="http://www.sencha.com/products/touch-bundle/">Sencha Touch Bundle</a></li>
|
||||||
|
<li><a href="http://www.sencha.com/training/">Sencha Training</a></li>
|
||||||
|
<li><a href="http://www.sencha.com/support/">Sencha Support</a></li>
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
vendor/touch/SenchaLogo.png
vendored
Normal file
After Width: | Height: | Size: 5.1 KiB |
7
vendor/touch/index.html
vendored
|
@ -6,12 +6,7 @@
|
||||||
<title>Welcome to Sencha Touch 2</title>
|
<title>Welcome to Sencha Touch 2</title>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
|
window.location = "examples/";
|
||||||
if (mobile) {
|
|
||||||
window.location = "examples/";
|
|
||||||
} else {
|
|
||||||
window.location = "docs/";
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body></body>
|
<body></body>
|
||||||
|
|
42
vendor/touch/license.txt
vendored
|
@ -1,48 +1,28 @@
|
||||||
Sencha Touch & Sencha Touch Charts - JavaScript Libraries
|
Sencha Touch - JavaScript Library
|
||||||
Copyright (c) 2010-2012, Sencha, Inc.
|
Copyright (c) 2010-2015, Sencha, Inc.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
licensing@sencha.com
|
licensing@sencha.com
|
||||||
|
|
||||||
http://www.sencha.com/products/touch/license.php
|
http://www.sencha.com/products/touch/license.php
|
||||||
|
|
||||||
|
|
||||||
Open Source License
|
Commercial License
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
This version of Sencha Touch and Sencha Touch Charts is licensed under the terms of the Open
|
This version of Sencha Touch is licensed commercially.
|
||||||
Source GPL 3.0 license.
|
|
||||||
|
|
||||||
http://www.gnu.org/licenses/gpl.html
|
|
||||||
|
|
||||||
There are several FLOSS exceptions available for use with this release for
|
|
||||||
open source applications that are distributed under a license other than the GPL.
|
|
||||||
|
|
||||||
* Open Source License Exception for Applications
|
|
||||||
|
|
||||||
http://www.sencha.com/products/floss-exception.php
|
|
||||||
|
|
||||||
* Open Source License Exception for Development
|
|
||||||
|
|
||||||
http://www.sencha.com/products/ux-exception.php
|
|
||||||
|
|
||||||
|
|
||||||
Alternate Licensing for Sencha Touch
|
|
||||||
------------------------------------------------------------------------------------------
|
|
||||||
Commercial and OEM Licenses are available for an alternate download of Sencha Touch.
|
|
||||||
This is the appropriate option if you are creating proprietary applications and you are
|
This is the appropriate option if you are creating proprietary applications and you are
|
||||||
not prepared to distribute and share the source code of your application under the
|
not prepared to distribute and share the source code of your application under the
|
||||||
GPL v3 license. Please visit http://www.sencha.com/store/touch/license.php for more details.
|
GPL v3 license. Please visit http://www.sencha.com/store/touch/license.php for more details.
|
||||||
|
|
||||||
|
|
||||||
Alternate Licensing for Sencha Touch Charts
|
OEM / Reseller License
|
||||||
------------------------------------------------------------------------------------------
|
------------------------------------------------------------------------------------------
|
||||||
Commercial and OEM Licenses are available for an alternate download of Sencha Touch Charts.
|
For more details, please visit: http://www.sencha.com/products/touch/license.php
|
||||||
This is the appropriate option if you are creating proprietary applications and you are
|
|
||||||
not prepared to distribute and share the source code of your application under the
|
|
||||||
GPL v3 license.
|
|
||||||
|
|
||||||
Sencha Touch Charts is available commercially only as a part of Sencha Complete or Sencha
|
|
||||||
Complete Team. Please visit http://www.sencha.com/products/complete/license or
|
Open Source Licensing
|
||||||
http://www.sencha.com/products/complete-team/license for more details.
|
------------------------------------------------------------------------------------------
|
||||||
|
Open Source Licensing is available for an alternate download of Sencha Touch.
|
||||||
|
For more details, please visit http://www.sencha.com/store/touch/license.php for more details.
|
||||||
|
|
||||||
|
|
||||||
Third Party Content
|
Third Party Content
|
||||||
|
|
185
vendor/touch/microloader/development.js
vendored
Normal file
|
@ -0,0 +1,185 @@
|
||||||
|
/**
|
||||||
|
* Sencha Blink - Development
|
||||||
|
* @author Jacky Nguyen <jacky@sencha.com>
|
||||||
|
*/
|
||||||
|
(function() {
|
||||||
|
var head = document.head;
|
||||||
|
|
||||||
|
function write(content) {
|
||||||
|
document.write(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addMeta(name, content) {
|
||||||
|
var meta = document.createElement('meta');
|
||||||
|
|
||||||
|
meta.setAttribute('name', name);
|
||||||
|
meta.setAttribute('content', content);
|
||||||
|
head.appendChild(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('GET', 'app.json', false);
|
||||||
|
xhr.send(null);
|
||||||
|
|
||||||
|
var options = eval("(" + xhr.responseText + ")"),
|
||||||
|
scripts = options.js || [],
|
||||||
|
styleSheets = options.css || [],
|
||||||
|
i, ln, path, platform, theme, exclude;
|
||||||
|
|
||||||
|
if(options.platform && options.platforms && options.platforms[options.platform] && options.platforms[options.platform].js) {
|
||||||
|
scripts = options.platforms[options.platform].js.concat(scripts);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||||
|
var msViewportStyle = document.createElement("style");
|
||||||
|
msViewportStyle.appendChild(
|
||||||
|
document.createTextNode(
|
||||||
|
"@media screen and (orientation: portrait) {" +
|
||||||
|
"@-ms-viewport {width: 320px !important;}" +
|
||||||
|
"}" +
|
||||||
|
"@media screen and (orientation: landscape) {" +
|
||||||
|
"@-ms-viewport {width: 560px !important;}" +
|
||||||
|
"}"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
addMeta('viewport', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no');
|
||||||
|
addMeta('apple-mobile-web-app-capable', 'yes');
|
||||||
|
addMeta('apple-touch-fullscreen', 'yes');
|
||||||
|
|
||||||
|
if (!window.Ext) {
|
||||||
|
window.Ext = {};
|
||||||
|
}
|
||||||
|
Ext.microloaded = true;
|
||||||
|
|
||||||
|
var filterPlatform = window.Ext.filterPlatform = function(platform) {
|
||||||
|
var profileMatch = false,
|
||||||
|
ua = navigator.userAgent,
|
||||||
|
j, jln;
|
||||||
|
|
||||||
|
platform = [].concat(platform);
|
||||||
|
|
||||||
|
function isPhone(ua) {
|
||||||
|
var isMobile = /Mobile(\/|\s)/.test(ua);
|
||||||
|
|
||||||
|
// Either:
|
||||||
|
// - iOS but not iPad
|
||||||
|
// - Android 2
|
||||||
|
// - Android with "Mobile" in the UA
|
||||||
|
|
||||||
|
return /(iPhone|iPod)/.test(ua) ||
|
||||||
|
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
|
||||||
|
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
|
||||||
|
/(Windows Phone)/.test(ua);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isTablet(ua) {
|
||||||
|
return !isPhone(ua) && (/iPad/.test(ua) || /Android|Silk/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
|
||||||
|
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the ?platform parameter is set in the URL
|
||||||
|
var paramsString = window.location.search.substr(1),
|
||||||
|
paramsArray = paramsString.split("&"),
|
||||||
|
params = {},
|
||||||
|
testPlatform, i;
|
||||||
|
|
||||||
|
for (i = 0; i < paramsArray.length; i++) {
|
||||||
|
var tmpArray = paramsArray[i].split("=");
|
||||||
|
params[tmpArray[0]] = tmpArray[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
testPlatform = params.platform;
|
||||||
|
if (testPlatform) {
|
||||||
|
return platform.indexOf(testPlatform) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0, jln = platform.length; j < jln; j++) {
|
||||||
|
switch (platform[j]) {
|
||||||
|
case 'phone':
|
||||||
|
profileMatch = isPhone(ua);
|
||||||
|
break;
|
||||||
|
case 'tablet':
|
||||||
|
profileMatch = isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'desktop':
|
||||||
|
profileMatch = !isPhone(ua) && !isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'ios':
|
||||||
|
profileMatch = /(iPad|iPhone|iPod)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'android':
|
||||||
|
profileMatch = /(Android|Silk)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'blackberry':
|
||||||
|
profileMatch = /(BlackBerry|BB)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'safari':
|
||||||
|
profileMatch = /Safari/.test(ua) && !(/(BlackBerry|BB)/.test(ua));
|
||||||
|
break;
|
||||||
|
case 'chrome':
|
||||||
|
profileMatch = /Chrome/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'ie10':
|
||||||
|
profileMatch = /MSIE 10/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'windows':
|
||||||
|
profileMatch = /MSIE 10/.test(ua) || /Trident/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'tizen':
|
||||||
|
profileMatch = /Tizen/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'firefox':
|
||||||
|
profileMatch = /Firefox/.test(ua);
|
||||||
|
}
|
||||||
|
if (profileMatch) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
for (i = 0,ln = styleSheets.length; i < ln; i++) {
|
||||||
|
path = styleSheets[i];
|
||||||
|
|
||||||
|
if (typeof path != 'string') {
|
||||||
|
platform = path.platform;
|
||||||
|
exclude = path.exclude;
|
||||||
|
theme = path.theme;
|
||||||
|
path = path.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (!filterPlatform(platform) || filterPlatform(exclude)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Ext.theme = {
|
||||||
|
name: theme || 'Default'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
write('<link rel="stylesheet" href="'+path+'">');
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0,ln = scripts.length; i < ln; i++) {
|
||||||
|
path = scripts[i];
|
||||||
|
|
||||||
|
if (typeof path != 'string') {
|
||||||
|
platform = path.platform;
|
||||||
|
exclude = path.exclude;
|
||||||
|
path = path.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (!filterPlatform(platform) || filterPlatform(exclude)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
write('<script src="'+path+'"></'+'script>');
|
||||||
|
}
|
||||||
|
|
||||||
|
})();
|
742
vendor/touch/microloader/production.js
vendored
Normal file
|
@ -0,0 +1,742 @@
|
||||||
|
/**
|
||||||
|
* Sencha Blink
|
||||||
|
* @author Jacky Nguyen <jacky@sencha.com>
|
||||||
|
*/
|
||||||
|
(function(global) {
|
||||||
|
var emptyFn = function(){},
|
||||||
|
callbacks = [],
|
||||||
|
doc = global.document,
|
||||||
|
head = doc.head,
|
||||||
|
addWindowListener = global.addEventListener,
|
||||||
|
removeWindowListener = global.removeEventListener,
|
||||||
|
jsonParse = JSON.parse,
|
||||||
|
a = doc.createElement('a'),
|
||||||
|
documentLocation = doc.location,
|
||||||
|
documentUri = documentLocation.protocol + '//' + documentLocation.hostname + documentLocation.pathname + documentLocation.search,
|
||||||
|
manifestFile = 'app.json',
|
||||||
|
isRefreshing = false,
|
||||||
|
activeManifest, appCache, storage;
|
||||||
|
|
||||||
|
try {
|
||||||
|
storage = global.localStorage;
|
||||||
|
appCache = global.applicationCache;
|
||||||
|
}
|
||||||
|
catch(e) {}
|
||||||
|
|
||||||
|
function getManifestStorageKey(id) {
|
||||||
|
return id + '-' + documentUri + manifestFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
function Manifest(manifest) {
|
||||||
|
var manifestContent;
|
||||||
|
|
||||||
|
if (typeof manifest == 'string') {
|
||||||
|
manifestContent = manifest;
|
||||||
|
manifest = jsonParse(manifestContent);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
manifestContent = JSON.stringify(manifest);
|
||||||
|
}
|
||||||
|
|
||||||
|
var applicationId = manifest.id,
|
||||||
|
key = getManifestStorageKey(applicationId),
|
||||||
|
assetMap = {};
|
||||||
|
|
||||||
|
function processAsset(asset) {
|
||||||
|
var uri;
|
||||||
|
|
||||||
|
if (typeof asset == 'string') {
|
||||||
|
asset = {
|
||||||
|
path: asset
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (asset.shared) {
|
||||||
|
asset.version = asset.shared;
|
||||||
|
uri = asset.shared + asset.path;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
uri = toAbsoluteUri(asset.path);
|
||||||
|
}
|
||||||
|
|
||||||
|
asset.uri = uri;
|
||||||
|
asset.key = applicationId + '-' + uri;
|
||||||
|
assetMap[uri] = asset;
|
||||||
|
|
||||||
|
return asset;
|
||||||
|
}
|
||||||
|
|
||||||
|
function processAssets(assets, type) {
|
||||||
|
var ln = assets.length,
|
||||||
|
i, asset;
|
||||||
|
|
||||||
|
for (i = 0; i < ln; i++) {
|
||||||
|
asset = assets[i];
|
||||||
|
|
||||||
|
assets[i] = asset = processAsset(asset);
|
||||||
|
|
||||||
|
asset.type = type;
|
||||||
|
asset.index = i;
|
||||||
|
asset.collection = assets;
|
||||||
|
asset.ready = false;
|
||||||
|
asset.evaluated = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return assets;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.key = key;
|
||||||
|
this.css = processAssets(manifest.css, 'css');
|
||||||
|
this.js = processAssets(manifest.js, 'js');
|
||||||
|
|
||||||
|
Ext.microloaded = true;
|
||||||
|
|
||||||
|
var filterPlatform = window.Ext.filterPlatform = function(platform) {
|
||||||
|
var profileMatch = false,
|
||||||
|
ua = navigator.userAgent,
|
||||||
|
j, jln;
|
||||||
|
|
||||||
|
platform = [].concat(platform);
|
||||||
|
|
||||||
|
function isPhone(ua) {
|
||||||
|
var isMobile = /Mobile(\/|\s)/.test(ua);
|
||||||
|
|
||||||
|
// Either:
|
||||||
|
// - iOS but not iPad
|
||||||
|
// - Android 2
|
||||||
|
// - Android with "Mobile" in the UA
|
||||||
|
|
||||||
|
return /(iPhone|iPod)/.test(ua) ||
|
||||||
|
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
|
||||||
|
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
|
||||||
|
/(Windows Phone)/.test(ua);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isTablet(ua) {
|
||||||
|
return !isPhone(ua) && (/iPad/.test(ua) || /Android|Silk/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
|
||||||
|
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the ?platform parameter is set in the URL
|
||||||
|
var paramsString = window.location.search.substr(1),
|
||||||
|
paramsArray = paramsString.split("&"),
|
||||||
|
params = {},
|
||||||
|
testPlatform, i;
|
||||||
|
|
||||||
|
for (i = 0; i < paramsArray.length; i++) {
|
||||||
|
var tmpArray = paramsArray[i].split("=");
|
||||||
|
params[tmpArray[0]] = tmpArray[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
testPlatform = params.platform;
|
||||||
|
if (testPlatform) {
|
||||||
|
return platform.indexOf(testPlatform) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0, jln = platform.length; j < jln; j++) {
|
||||||
|
switch (platform[j]) {
|
||||||
|
case 'phone':
|
||||||
|
profileMatch = isPhone(ua);
|
||||||
|
break;
|
||||||
|
case 'tablet':
|
||||||
|
profileMatch = isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'desktop':
|
||||||
|
profileMatch = !isPhone(ua) && !isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'ios':
|
||||||
|
profileMatch = /(iPad|iPhone|iPod)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'android':
|
||||||
|
profileMatch = /(Android|Silk)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'blackberry':
|
||||||
|
profileMatch = /(BlackBerry|BB)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'safari':
|
||||||
|
profileMatch = /Safari/.test(ua) && !(/(BlackBerry|BB)/.test(ua));
|
||||||
|
break;
|
||||||
|
case 'chrome':
|
||||||
|
profileMatch = /Chrome/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'ie10':
|
||||||
|
profileMatch = /MSIE 10/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'windows':
|
||||||
|
profileMatch = /MSIE 10/.test(ua) || /Trident/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'tizen':
|
||||||
|
profileMatch = /Tizen/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'firefox':
|
||||||
|
profileMatch = /Firefox/.test(ua);
|
||||||
|
}
|
||||||
|
if (profileMatch) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.css = this.css.filter(function(css) {
|
||||||
|
var platform = css.platform,
|
||||||
|
exclude = css.exclude;
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (filterPlatform(platform) && !filterPlatform(exclude)) {
|
||||||
|
Ext.theme = {
|
||||||
|
name: css.theme || 'Default'
|
||||||
|
};
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
css.filtered = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.js = this.js.filter(function(js) {
|
||||||
|
var platform = js.platform,
|
||||||
|
exclude = js.exclude;
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (filterPlatform(platform) && !filterPlatform(exclude)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
js.filtered = true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.assets = this.css.concat(this.js);
|
||||||
|
this.getAsset = function(uri) {
|
||||||
|
return assetMap[uri];
|
||||||
|
};
|
||||||
|
this.store = function() {
|
||||||
|
store(key, manifestContent);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof global.Ext === 'undefined') {
|
||||||
|
var Ext = global.Ext = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
function toAbsoluteUri(uri) {
|
||||||
|
a.href = uri;
|
||||||
|
return a.href;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addMeta(name, content) {
|
||||||
|
var meta = document.createElement('meta');
|
||||||
|
|
||||||
|
meta.setAttribute('name', name);
|
||||||
|
meta.setAttribute('content', content);
|
||||||
|
head.appendChild(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
function request(uri, isShared, onSuccess, onFailure) {
|
||||||
|
(isShared ? requestIframe : requestXhr)(uri, onSuccess, onFailure);
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestXhr(uri, onSuccess, onFailure) {
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
|
||||||
|
onFailure = onFailure || emptyFn;
|
||||||
|
|
||||||
|
uri = uri + ((uri.indexOf('?') == -1) ? '?' : '&') + Date.now();
|
||||||
|
|
||||||
|
try {
|
||||||
|
xhr.open('GET', uri, true);
|
||||||
|
xhr.onreadystatechange = function() {
|
||||||
|
if (xhr.readyState == 4) {
|
||||||
|
var status = xhr.status,
|
||||||
|
content = xhr.responseText;
|
||||||
|
|
||||||
|
if ((status >= 200 && status < 300) || status == 304 || (status == 0 && content.length > 0)) {
|
||||||
|
onSuccess(content);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send(null);
|
||||||
|
} catch (e) {
|
||||||
|
onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestIframe(uri, onSuccess) {
|
||||||
|
var iframe = doc.createElement('iframe');
|
||||||
|
|
||||||
|
callbacks.push({
|
||||||
|
iframe: iframe,
|
||||||
|
callback: onSuccess
|
||||||
|
});
|
||||||
|
|
||||||
|
iframe.src = uri + '.html';
|
||||||
|
iframe.style.cssText = 'width:0;height:0;border:0;position:absolute;z-index:-999;visibility:hidden';
|
||||||
|
doc.body.appendChild(iframe);
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestAsset(asset, onSuccess, onFailure) {
|
||||||
|
var isRemote = !!asset.remote,
|
||||||
|
isShared = !!asset.shared;
|
||||||
|
|
||||||
|
if (isRemote) {
|
||||||
|
onSuccess('');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isShared) {
|
||||||
|
var onRequestSuccess = onSuccess,
|
||||||
|
version = asset.version,
|
||||||
|
versionLn = version.length,
|
||||||
|
checksumFail, checksumType;
|
||||||
|
|
||||||
|
onSuccess = function(content) {
|
||||||
|
checksumType = content.substring(0, 1);
|
||||||
|
if (checksumType == '/') {
|
||||||
|
if (content.substring(2, versionLn + 2) !== version) {
|
||||||
|
checksumFail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (checksumType == 'f') {
|
||||||
|
if (content.substring(9, versionLn + 9) !== version) {
|
||||||
|
checksumFail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (checksumType == '.') {
|
||||||
|
if (content.substring(1, versionLn + 1) !== version) {
|
||||||
|
checksumFail = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (checksumFail === true) {
|
||||||
|
if (confirm("Requested: '" + asset.uri + " seems to have been changed. Attempt to refresh the application?")) {
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
onRequestSuccess(content);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
request(asset.uri, isShared, onSuccess, onFailure);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMessage(e) {
|
||||||
|
var data = e.data,
|
||||||
|
sourceWindow = e.source.window,
|
||||||
|
i, ln, callback, iframe;
|
||||||
|
|
||||||
|
for (i = 0, ln = callbacks.length; i < ln; i++) {
|
||||||
|
callback = callbacks[i];
|
||||||
|
iframe = callback.iframe;
|
||||||
|
|
||||||
|
if (iframe.contentWindow === sourceWindow) {
|
||||||
|
callback.callback(data);
|
||||||
|
doc.body.removeChild(iframe);
|
||||||
|
callbacks.splice(i, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function patch(content, delta) {
|
||||||
|
var output = [],
|
||||||
|
chunk, i, ln;
|
||||||
|
|
||||||
|
if (delta.length === 0) {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0,ln = delta.length; i < ln; i++) {
|
||||||
|
chunk = delta[i];
|
||||||
|
|
||||||
|
if (typeof chunk === 'number') {
|
||||||
|
output.push(content.substring(chunk, chunk + delta[++i]));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
output.push(chunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return output.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
function log(message) {
|
||||||
|
if (typeof console != 'undefined') {
|
||||||
|
(console.error || console.log).call(console, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function store(key, value) {
|
||||||
|
try {
|
||||||
|
storage.setItem(key, value);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
if (storage && e.code == e.QUOTA_EXCEEDED_ERR && activeManifest) {
|
||||||
|
log("LocalStorage Quota exceeded, cannot store " + key + " locally");
|
||||||
|
// Quota exceeded, clean up unused items
|
||||||
|
// var items = activeManifest.assets.map(function(asset) {
|
||||||
|
// return asset.key;
|
||||||
|
// }),
|
||||||
|
// i = 0,
|
||||||
|
// ln = storage.length,
|
||||||
|
// cleaned = false,
|
||||||
|
// item;
|
||||||
|
//
|
||||||
|
// items.push(activeManifest.key);
|
||||||
|
//
|
||||||
|
// while (i <= ln - 1) {
|
||||||
|
// item = storage.key(i);
|
||||||
|
//
|
||||||
|
// if (items.indexOf(item) == -1) {
|
||||||
|
// storage.removeItem(item);
|
||||||
|
// cleaned = true;
|
||||||
|
// ln--;
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// i++;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Done cleaning up, attempt to store the value again
|
||||||
|
// If there's still not enough space, no other choice
|
||||||
|
// but to skip this item from being stored
|
||||||
|
// if (cleaned) {
|
||||||
|
// store(key, value);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function retrieve(key) {
|
||||||
|
try {
|
||||||
|
return storage.getItem(key);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
// Private browsing mode
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function retrieveAsset(asset) {
|
||||||
|
return retrieve(asset.key);
|
||||||
|
}
|
||||||
|
|
||||||
|
function storeAsset(asset, content) {
|
||||||
|
return store(asset.key, content);
|
||||||
|
}
|
||||||
|
|
||||||
|
function refresh() {
|
||||||
|
if (!isRefreshing) {
|
||||||
|
isRefreshing = true;
|
||||||
|
requestXhr(manifestFile, function(content) {
|
||||||
|
new Manifest(content).store();
|
||||||
|
global.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function blink(currentManifest) {
|
||||||
|
var currentAssets = currentManifest.assets,
|
||||||
|
assetsCount = currentAssets.length,
|
||||||
|
newManifest;
|
||||||
|
|
||||||
|
activeManifest = currentManifest;
|
||||||
|
|
||||||
|
addWindowListener('message', onMessage, false);
|
||||||
|
|
||||||
|
function onAssetReady(asset, content) {
|
||||||
|
var assets = asset.collection,
|
||||||
|
index = asset.index,
|
||||||
|
ln = assets.length,
|
||||||
|
i;
|
||||||
|
|
||||||
|
asset.ready = true;
|
||||||
|
asset.content = content;
|
||||||
|
|
||||||
|
for (i = index - 1; i >= 0; i--) {
|
||||||
|
asset = assets[i];
|
||||||
|
if (!asset.filtered && (!asset.ready || !asset.evaluated)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = index; i < ln; i++) {
|
||||||
|
asset = assets[i];
|
||||||
|
if (asset.ready) {
|
||||||
|
if (!asset.evaluated) {
|
||||||
|
evaluateAsset(asset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function evaluateAsset(asset) {
|
||||||
|
asset.evaluated = true;
|
||||||
|
|
||||||
|
if (asset.type == 'js') {
|
||||||
|
try {
|
||||||
|
eval(asset.content);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
log("Error evaluating " + asset.uri + " with message: " + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var style = doc.createElement('style'),
|
||||||
|
base;
|
||||||
|
|
||||||
|
style.type = 'text/css';
|
||||||
|
style.textContent = asset.content;
|
||||||
|
|
||||||
|
if ('id' in asset) {
|
||||||
|
style.id = asset.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('disabled' in asset) {
|
||||||
|
style.disabled = asset.disabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
base = document.createElement('base');
|
||||||
|
base.href = asset.path.replace(/\/[^\/]*$/, '/');
|
||||||
|
head.appendChild(base);
|
||||||
|
head.appendChild(style);
|
||||||
|
head.removeChild(base);
|
||||||
|
}
|
||||||
|
|
||||||
|
delete asset.content;
|
||||||
|
|
||||||
|
if (--assetsCount == 0) {
|
||||||
|
onReady();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onReady() {
|
||||||
|
var updatingAssets = [],
|
||||||
|
appCacheReady = false,
|
||||||
|
onAppCacheIdle = function() {},
|
||||||
|
onAppCacheReady = function() {
|
||||||
|
appCache.swapCache();
|
||||||
|
appCacheReady = true;
|
||||||
|
onAppCacheIdle();
|
||||||
|
},
|
||||||
|
updatingCount;
|
||||||
|
|
||||||
|
removeWindowListener('message', onMessage, false);
|
||||||
|
|
||||||
|
if (appCache.status == appCache.UPDATEREADY) {
|
||||||
|
onAppCacheReady();
|
||||||
|
}
|
||||||
|
else if (appCache.status == appCache.CHECKING || appCache.status == appCache.DOWNLOADING) {
|
||||||
|
appCache.onupdateready = onAppCacheReady;
|
||||||
|
appCache.onnoupdate = appCache.onobsolete = function() {
|
||||||
|
onAppCacheIdle();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function notifyUpdateIfAppCacheReady() {
|
||||||
|
if (appCacheReady) {
|
||||||
|
notifyUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function notifyUpdate() {
|
||||||
|
var updatedCallback = Ext.onUpdated || emptyFn;
|
||||||
|
|
||||||
|
if ('onSetup' in Ext) {
|
||||||
|
Ext.onSetup(updatedCallback);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
updatedCallback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function doUpdate() {
|
||||||
|
newManifest.store();
|
||||||
|
|
||||||
|
updatingAssets.forEach(function(asset) {
|
||||||
|
storeAsset(asset, asset.content);
|
||||||
|
});
|
||||||
|
|
||||||
|
notifyUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
function onAssetUpdated(asset, content) {
|
||||||
|
asset.content = content;
|
||||||
|
|
||||||
|
if (--updatingCount == 0) {
|
||||||
|
if (appCache.status == appCache.IDLE) {
|
||||||
|
doUpdate();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onAppCacheIdle = doUpdate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkForUpdate() {
|
||||||
|
removeWindowListener('online', checkForUpdate, false);
|
||||||
|
requestXhr(manifestFile, function(manifestContent) {
|
||||||
|
activeManifest = newManifest = new Manifest(manifestContent);
|
||||||
|
|
||||||
|
var assets = newManifest.assets,
|
||||||
|
currentAsset;
|
||||||
|
|
||||||
|
assets.forEach(function(asset) {
|
||||||
|
currentAsset = currentManifest.getAsset(asset.uri);
|
||||||
|
|
||||||
|
if (!currentAsset || asset.version !== currentAsset.version) {
|
||||||
|
updatingAssets.push(asset);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
updatingCount = updatingAssets.length;
|
||||||
|
|
||||||
|
if (updatingCount == 0) {
|
||||||
|
if (appCache.status == appCache.IDLE) {
|
||||||
|
notifyUpdateIfAppCacheReady();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onAppCacheIdle = notifyUpdateIfAppCacheReady;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
updatingAssets.forEach(function(asset) {
|
||||||
|
var currentAsset = currentManifest.getAsset(asset.uri),
|
||||||
|
path = asset.path,
|
||||||
|
update = asset.update;
|
||||||
|
|
||||||
|
function updateFull() {
|
||||||
|
requestAsset(asset, function(content) {
|
||||||
|
onAssetUpdated(asset, content);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// New asset (never used before)
|
||||||
|
// OR Shared from CDN
|
||||||
|
// OR Missing local storage
|
||||||
|
// OR Full update
|
||||||
|
if (!currentAsset || !update || retrieveAsset(asset) === null || update != 'delta') {
|
||||||
|
updateFull();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
requestXhr('deltas/' + path + '/' + currentAsset.version + '.json',
|
||||||
|
function(content) {
|
||||||
|
try {
|
||||||
|
onAssetUpdated(asset, patch(retrieveAsset(asset), jsonParse(content)));
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
log("Malformed delta content received for " + asset.uri);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateFull
|
||||||
|
);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (navigator.onLine !== false) {
|
||||||
|
checkForUpdate();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
addWindowListener('online', checkForUpdate, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (assetsCount == 0) {
|
||||||
|
onReady();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
currentAssets.forEach(function(asset) {
|
||||||
|
var content = retrieveAsset(asset);
|
||||||
|
|
||||||
|
if (content === null) {
|
||||||
|
requestAsset(asset, function(content) {
|
||||||
|
if (!asset.remote) {
|
||||||
|
storeAsset(asset, content);
|
||||||
|
}
|
||||||
|
onAssetReady(asset, content);
|
||||||
|
}, function() {
|
||||||
|
onAssetReady(asset, '');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
onAssetReady(asset, content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function blinkOnDomReady(manifest) {
|
||||||
|
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||||
|
var msViewportStyle = document.createElement("style");
|
||||||
|
msViewportStyle.appendChild(
|
||||||
|
document.createTextNode(
|
||||||
|
"@media screen and (orientation: portrait) {" +
|
||||||
|
"@-ms-viewport {width: 320px !important;}" +
|
||||||
|
"}" +
|
||||||
|
"@media screen and (orientation: landscape) {" +
|
||||||
|
"@-ms-viewport {width: 560px !important;}" +
|
||||||
|
"}"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
var readyStateRe = (/MSIE 10/.test(navigator.userAgent)) ? /complete|loaded/ : /interactive|complete|loaded/;
|
||||||
|
if (doc.readyState.match(readyStateRe) !== null) {
|
||||||
|
blink(manifest);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
addWindowListener('DOMContentLoaded', function() {
|
||||||
|
if (navigator.standalone) {
|
||||||
|
// When running from Home Screen, the splash screen will not disappear until all
|
||||||
|
// external resource requests finish.
|
||||||
|
// The first timeout clears the splash screen
|
||||||
|
// The second timeout allows inital HTML content to be displayed
|
||||||
|
setTimeout(function() {
|
||||||
|
setTimeout(function() {
|
||||||
|
blink(manifest);
|
||||||
|
}, 1);
|
||||||
|
}, 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setTimeout(function() {
|
||||||
|
blink(manifest);
|
||||||
|
}, 1);
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ext.blink = function(manifest) {
|
||||||
|
var manifestContent = retrieve(getManifestStorageKey(manifest.id));
|
||||||
|
|
||||||
|
addMeta('viewport', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no');
|
||||||
|
addMeta('apple-mobile-web-app-capable', 'yes');
|
||||||
|
addMeta('apple-touch-fullscreen', 'yes');
|
||||||
|
|
||||||
|
if (manifestContent) {
|
||||||
|
manifest = new Manifest(manifestContent);
|
||||||
|
blinkOnDomReady(manifest);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
requestXhr(manifestFile, function(content) {
|
||||||
|
manifest = new Manifest(content);
|
||||||
|
manifest.store();
|
||||||
|
blinkOnDomReady(manifest);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(this);
|
177
vendor/touch/microloader/testing.js
vendored
Normal file
|
@ -0,0 +1,177 @@
|
||||||
|
/**
|
||||||
|
* Sencha Blink - Testing
|
||||||
|
* @author Jacky Nguyen <jacky@sencha.com>
|
||||||
|
*/
|
||||||
|
(function(global) {
|
||||||
|
var head = global.document.head,
|
||||||
|
Ext = global.Ext;
|
||||||
|
|
||||||
|
if (typeof Ext == 'undefined') {
|
||||||
|
global.Ext = Ext = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
function write(content) {
|
||||||
|
document.write(content);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addMeta(name, content) {
|
||||||
|
var meta = document.createElement('meta');
|
||||||
|
|
||||||
|
meta.setAttribute('name', name);
|
||||||
|
meta.setAttribute('content', content);
|
||||||
|
head.appendChild(meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
Ext.blink = function(options) {
|
||||||
|
var scripts = options.js || [],
|
||||||
|
styleSheets = options.css || [],
|
||||||
|
i, ln, path, platform, theme;
|
||||||
|
|
||||||
|
if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
|
||||||
|
var msViewportStyle = document.createElement("style");
|
||||||
|
msViewportStyle.appendChild(
|
||||||
|
document.createTextNode(
|
||||||
|
"@media screen and (orientation: portrait) {" +
|
||||||
|
"@-ms-viewport {width: 320px !important;}" +
|
||||||
|
"}" +
|
||||||
|
"@media screen and (orientation: landscape) {" +
|
||||||
|
"@-ms-viewport {width: 560px !important;}" +
|
||||||
|
"}"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
|
||||||
|
}
|
||||||
|
addMeta('viewport', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no');
|
||||||
|
addMeta('apple-mobile-web-app-capable', 'yes');
|
||||||
|
addMeta('apple-touch-fullscreen', 'yes');
|
||||||
|
|
||||||
|
Ext.microloaded = true;
|
||||||
|
|
||||||
|
var filterPlatform = window.Ext.filterPlatform = function(platform) {
|
||||||
|
var profileMatch = false,
|
||||||
|
ua = navigator.userAgent,
|
||||||
|
j, jln, exclude;
|
||||||
|
|
||||||
|
platform = [].concat(platform);
|
||||||
|
|
||||||
|
function isPhone(ua) {
|
||||||
|
var isMobile = /Mobile(\/|\s)/.test(ua);
|
||||||
|
|
||||||
|
// Either:
|
||||||
|
// - iOS but not iPad
|
||||||
|
// - Android 2
|
||||||
|
// - Android with "Mobile" in the UA
|
||||||
|
|
||||||
|
return /(iPhone|iPod)/.test(ua) ||
|
||||||
|
(!/(Silk)/.test(ua) && (/(Android)/.test(ua) && (/(Android 2)/.test(ua) || isMobile))) ||
|
||||||
|
(/(BlackBerry|BB)/.test(ua) && isMobile) ||
|
||||||
|
/(Windows Phone)/.test(ua);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isTablet(ua) {
|
||||||
|
return !isPhone(ua) && (/iPad/.test(ua) || /Android|Silk/.test(ua) || /(RIM Tablet OS)/.test(ua) ||
|
||||||
|
(/MSIE 10/.test(ua) && /; Touch/.test(ua)));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the ?platform parameter is set in the URL
|
||||||
|
var paramsString = window.location.search.substr(1),
|
||||||
|
paramsArray = paramsString.split("&"),
|
||||||
|
params = {},
|
||||||
|
testPlatform, i;
|
||||||
|
|
||||||
|
for (i = 0; i < paramsArray.length; i++) {
|
||||||
|
var tmpArray = paramsArray[i].split("=");
|
||||||
|
params[tmpArray[0]] = tmpArray[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
testPlatform = params.platform;
|
||||||
|
if (testPlatform) {
|
||||||
|
return platform.indexOf(testPlatform) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0, jln = platform.length; j < jln; j++) {
|
||||||
|
switch (platform[j]) {
|
||||||
|
case 'phone':
|
||||||
|
profileMatch = isPhone(ua);
|
||||||
|
break;
|
||||||
|
case 'tablet':
|
||||||
|
profileMatch = isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'desktop':
|
||||||
|
profileMatch = !isPhone(ua) && !isTablet(ua);
|
||||||
|
break;
|
||||||
|
case 'ios':
|
||||||
|
profileMatch = /(iPad|iPhone|iPod)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'android':
|
||||||
|
profileMatch = /(Android|Silk)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'blackberry':
|
||||||
|
profileMatch = /(BlackBerry|BB)/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'safari':
|
||||||
|
profileMatch = /Safari/.test(ua) && !(/(BlackBerry|BB)/.test(ua));
|
||||||
|
break;
|
||||||
|
case 'chrome':
|
||||||
|
profileMatch = /Chrome/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'ie10':
|
||||||
|
profileMatch = /MSIE 10/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'windows':
|
||||||
|
profileMatch = /MSIE 10/.test(ua) || /Trident/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'tizen':
|
||||||
|
profileMatch = /Tizen/.test(ua);
|
||||||
|
break;
|
||||||
|
case 'firefox':
|
||||||
|
profileMatch = /Firefox/.test(ua);
|
||||||
|
}
|
||||||
|
if (profileMatch) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
for (i = 0,ln = styleSheets.length; i < ln; i++) {
|
||||||
|
path = styleSheets[i];
|
||||||
|
|
||||||
|
if (typeof path != 'string') {
|
||||||
|
platform = path.platform;
|
||||||
|
exclude = path.exclude;
|
||||||
|
theme = path.theme;
|
||||||
|
path = path.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (!filterPlatform(platform) || filterPlatform(exclude)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Ext.theme = {
|
||||||
|
name: theme || 'Default'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
write('<link rel="stylesheet" href="'+path+'">');
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0,ln = scripts.length; i < ln; i++) {
|
||||||
|
path = scripts[i];
|
||||||
|
|
||||||
|
if (typeof path != 'string') {
|
||||||
|
platform = path.platform;
|
||||||
|
exclude = path.exclude;
|
||||||
|
path = path.path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (platform) {
|
||||||
|
if (!filterPlatform(platform) || filterPlatform(exclude)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
write('<script src="'+path+'"></'+'script>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})(this);
|
1574
vendor/touch/release-notes.html
vendored
11099
vendor/touch/resources/css-debug/android.css
vendored
14707
vendor/touch/resources/css-debug/apple.css
vendored
3697
vendor/touch/resources/css-debug/base.css
vendored
Normal file
6456
vendor/touch/resources/css-debug/bb10.css
vendored
Normal file
5840
vendor/touch/resources/css-debug/bb103.css
vendored
Normal file
10813
vendor/touch/resources/css-debug/bb6.css
vendored
6077
vendor/touch/resources/css-debug/cupertino-classic.css
vendored
Normal file
5781
vendor/touch/resources/css-debug/cupertino.css
vendored
Normal file
5312
vendor/touch/resources/css-debug/mountainview.css
vendored
Normal file
17919
vendor/touch/resources/css-debug/sencha-touch.css
vendored
6720
vendor/touch/resources/css-debug/tizen.css
vendored
Normal file
6569
vendor/touch/resources/css-debug/wp.css
vendored
Normal file
21
vendor/touch/resources/css/android.css
vendored
21
vendor/touch/resources/css/apple.css
vendored
18
vendor/touch/resources/css/base.css
vendored
Normal file
18
vendor/touch/resources/css/bb10.css
vendored
Normal file
18
vendor/touch/resources/css/bb103.css
vendored
Normal file
21
vendor/touch/resources/css/bb6.css
vendored
18
vendor/touch/resources/css/cupertino-classic.css
vendored
Normal file
18
vendor/touch/resources/css/cupertino.css
vendored
Normal file
18
vendor/touch/resources/css/mountainview.css
vendored
Normal file
19
vendor/touch/resources/css/sencha-touch.css
vendored
18
vendor/touch/resources/css/tizen.css
vendored
Normal file
18
vendor/touch/resources/css/wp.css
vendored
Normal file
39
vendor/touch/resources/sass/android.scss
vendored
|
@ -1,39 +0,0 @@
|
||||||
// Let's start with the basics
|
|
||||||
$base-color: #333;
|
|
||||||
$active-color: #ff8100;
|
|
||||||
$base-gradient: 'flat';
|
|
||||||
|
|
||||||
// Buttons
|
|
||||||
$button-gradient: 'bevel';
|
|
||||||
|
|
||||||
// Lists
|
|
||||||
$list-bg-color: #eee;
|
|
||||||
$list-color: #333;
|
|
||||||
$list-pressed-color: #ddd;
|
|
||||||
$list-active-gradient: 'recessed';
|
|
||||||
$list-header-bg-color: #999;
|
|
||||||
$list-header-gradient: 'bevel';
|
|
||||||
|
|
||||||
// Tabs
|
|
||||||
$tabs_dark_color: #000;
|
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
|
||||||
|
|
||||||
@include sencha-panel;
|
|
||||||
@include sencha-buttons;
|
|
||||||
@include sencha-sheet;
|
|
||||||
@include sencha-picker;
|
|
||||||
@include sencha-tabs;
|
|
||||||
@include sencha-toolbar;
|
|
||||||
@include sencha-toolbar-forms;
|
|
||||||
@include sencha-carousel;
|
|
||||||
@include sencha-indexbar;
|
|
||||||
@include sencha-list;
|
|
||||||
@include sencha-list-paging;
|
|
||||||
@include sencha-list-pullrefresh;
|
|
||||||
@include sencha-layout;
|
|
||||||
@include sencha-form;
|
|
||||||
@include sencha-msgbox;
|
|
||||||
@include sencha-loading-spinner;
|
|
||||||
@include sencha-draw;
|
|
||||||
@include sencha-charts;
|
|
41
vendor/touch/resources/sass/apple.scss
vendored
|
@ -1,41 +0,0 @@
|
||||||
// Let's start with the basics
|
|
||||||
$base-color: #7c92ae;
|
|
||||||
$base-gradient: 'glossy';
|
|
||||||
|
|
||||||
// Lists
|
|
||||||
$list-active-gradient: 'bevel';
|
|
||||||
$list-header-bg-color: transparentize(saturate($base-color, 10%), .25);
|
|
||||||
$list-header-gradient: 'matte';
|
|
||||||
|
|
||||||
// Tabs
|
|
||||||
$tabs-dark: #111;
|
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
|
||||||
|
|
||||||
@include sencha-panel;
|
|
||||||
@include sencha-buttons;
|
|
||||||
@include sencha-sheet;
|
|
||||||
@include sencha-picker;
|
|
||||||
@include sencha-tabs;
|
|
||||||
@include sencha-toolbar;
|
|
||||||
@include sencha-toolbar-forms;
|
|
||||||
@include sencha-carousel;
|
|
||||||
@include sencha-indexbar;
|
|
||||||
@include sencha-list;
|
|
||||||
@include sencha-list-paging;
|
|
||||||
@include sencha-list-pullrefresh;
|
|
||||||
@include sencha-layout;
|
|
||||||
@include sencha-form;
|
|
||||||
@include sencha-msgbox;
|
|
||||||
@include sencha-loading-spinner;
|
|
||||||
@include sencha-draw;
|
|
||||||
@include sencha-charts;
|
|
||||||
|
|
||||||
.x-toolbar-light .x-title {
|
|
||||||
color: #fff;
|
|
||||||
text-shadow: rgba(0, 0, 0, 0.5) 0 -0.08em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.x-button-back .x-button-label {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
3
vendor/touch/resources/sass/base.scss
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
@import 'sencha-touch/base';
|
||||||
|
|
||||||
|
@include icon-font('Pictos', inline-font-files('pictos/pictos-web.woff', woff, 'pictos/pictos-web.ttf', truetype,'pictos/pictos-web.svg', svg));
|
2
vendor/touch/resources/sass/bb10.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/bb10';
|
||||||
|
@import 'sencha-touch/bb10/all';
|
2
vendor/touch/resources/sass/bb103.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/bb103';
|
||||||
|
@import 'sencha-touch/bb103/all';
|
68
vendor/touch/resources/sass/bb6.scss
vendored
|
@ -1,68 +0,0 @@
|
||||||
$include-highlights: false;
|
|
||||||
$include-border-radius: false;
|
|
||||||
|
|
||||||
// Let's start with the basics
|
|
||||||
$base-color: #393F45;
|
|
||||||
$active-color: #06f;
|
|
||||||
$base-gradient: 'none';
|
|
||||||
|
|
||||||
// Lists
|
|
||||||
$list_pressed_color: #09f;
|
|
||||||
$list_bg_color: #111;
|
|
||||||
$list_color: #eee;
|
|
||||||
$list_header_bg_color: #aaa;
|
|
||||||
$basic-slider: true;
|
|
||||||
|
|
||||||
@import 'sencha-touch/default/all';
|
|
||||||
|
|
||||||
@include sencha-panel;
|
|
||||||
@include sencha-buttons;
|
|
||||||
@include sencha-sheet;
|
|
||||||
@include sencha-picker;
|
|
||||||
@include sencha-tabs;
|
|
||||||
@include sencha-toolbar;
|
|
||||||
@include sencha-toolbar-forms;
|
|
||||||
@include sencha-carousel;
|
|
||||||
@include sencha-indexbar;
|
|
||||||
@include sencha-list;
|
|
||||||
@include sencha-list-paging;
|
|
||||||
@include sencha-list-pullrefresh;
|
|
||||||
@include sencha-layout;
|
|
||||||
@include sencha-form;
|
|
||||||
@include sencha-msgbox;
|
|
||||||
@include sencha-loading-spinner;
|
|
||||||
@include sencha-draw;
|
|
||||||
@include sencha-charts;
|
|
||||||
|
|
||||||
.x-indexbar-item {
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.x-scrollbar-dark {
|
|
||||||
background-color: rgba(255, 255, 255, .6);
|
|
||||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
//fixing back/forward buttons in BB.
|
|
||||||
$shadow-width: .065em; // Space between tip and its shadow
|
|
||||||
$overlap-width: .2em; // how far the mask is clipped
|
|
||||||
|
|
||||||
$mask-height: $button-height;
|
|
||||||
$mask-width: $mask-height/2.5;
|
|
||||||
$mask-offset: $button-radius - $overlap-width - $button-stroke-weight + $shadow-width - .22em;
|
|
||||||
|
|
||||||
.x-button-forward, .x-button-back {
|
|
||||||
&:before, &:after {
|
|
||||||
@include insertion($mask-width, $mask-height, -$button-stroke-weight, auto);
|
|
||||||
z-index: 2;
|
|
||||||
-webkit-mask: $mask-offset 0 theme_image($theme-name, "tip_left.png") no-repeat;
|
|
||||||
-webkit-mask-size: $mask-width $mask-height;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.x-button-forward, .x-toolbar .x-button-forward {
|
|
||||||
&:before, &:after {
|
|
||||||
-webkit-mask: -$mask-offset 0 theme_image($theme-name, "tip_right.png") no-repeat;
|
|
||||||
}
|
|
||||||
}
|
|
1
vendor/touch/resources/sass/config-debug.rb
vendored
|
@ -7,5 +7,6 @@ load File.join(dir, '..', 'themes')
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
sass_path = dir
|
||||||
css_path = File.join(dir, "..", "css-debug")
|
css_path = File.join(dir, "..", "css-debug")
|
||||||
|
fonts_path = File.join(dir, '..', 'themes/fonts/')
|
||||||
environment = :development
|
environment = :development
|
||||||
output_style = :expanded
|
output_style = :expanded
|
9
vendor/touch/resources/sass/config.rb
vendored
|
@ -5,7 +5,8 @@ dir = File.dirname(__FILE__)
|
||||||
load File.join(dir, '..', 'themes')
|
load File.join(dir, '..', 'themes')
|
||||||
|
|
||||||
# Compass configurations
|
# Compass configurations
|
||||||
sass_path = dir
|
fonts_path = File.join(dir, '..', 'themes/fonts/')
|
||||||
css_path = File.join(dir, "..", "css")
|
sass_path = dir
|
||||||
environment = :production
|
css_path = File.join(dir, "..", "css")
|
||||||
output_style = :compressed
|
environment = :development
|
||||||
|
output_style = :compressed
|
||||||
|
|
2
vendor/touch/resources/sass/cupertino-classic.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/cupertino-classic';
|
||||||
|
@import 'sencha-touch/cupertino-classic/all';
|
2
vendor/touch/resources/sass/cupertino.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/cupertino';
|
||||||
|
@import 'sencha-touch/cupertino/all';
|
2
vendor/touch/resources/sass/mountainview.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/mountainview';
|
||||||
|
@import 'sencha-touch/mountainview/all';
|
22
vendor/touch/resources/sass/sencha-touch.scss
vendored
|
@ -1,20 +1,2 @@
|
||||||
@import 'sencha-touch/default/all';
|
@import 'sencha-touch/default';
|
||||||
|
@import 'sencha-touch/default/all';
|
||||||
@include sencha-panel;
|
|
||||||
@include sencha-buttons;
|
|
||||||
@include sencha-sheet;
|
|
||||||
@include sencha-picker;
|
|
||||||
@include sencha-tabs;
|
|
||||||
@include sencha-toolbar;
|
|
||||||
@include sencha-toolbar-forms;
|
|
||||||
@include sencha-indexbar;
|
|
||||||
@include sencha-list;
|
|
||||||
@include sencha-list-paging;
|
|
||||||
@include sencha-list-pullrefresh;
|
|
||||||
@include sencha-layout;
|
|
||||||
@include sencha-carousel;
|
|
||||||
@include sencha-form;
|
|
||||||
@include sencha-msgbox;
|
|
||||||
@include sencha-loading-spinner;
|
|
||||||
@include sencha-draw;
|
|
||||||
@include sencha-charts;
|
|
2
vendor/touch/resources/sass/tizen.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/tizen';
|
||||||
|
@import 'sencha-touch/tizen/all';
|
2
vendor/touch/resources/sass/wp.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
@import 'sencha-touch/windows';
|
||||||
|
@import 'sencha-touch/windows/all';
|
BIN
vendor/touch/resources/themes/fonts/ios7/ios7.eot
vendored
Normal file
16
vendor/touch/resources/themes/fonts/ios7/ios7.svg
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG font generated by IcoMoon.
|
||||||
|
<iconset grid="16"></iconset>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="icomoon" horiz-adv-x="512" >
|
||||||
|
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
||||||
|
<glyph unicode="!" d="M 236.48-16.76L 175.652,48.016L 357.208,223.24L 175.652,406.38L 236.48,463.236L 476.48,223.24 z" />
|
||||||
|
<glyph unicode=""" d="M 203.884,223.992L 410.68,21.364L 357.32-32L 101.32,223.992L 357.32,480L 409.596,427.74 z" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="256" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 826 B |
BIN
vendor/touch/resources/themes/fonts/ios7/ios7.ttf
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/ios7/ios7.woff
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/pictos/pictos-web.eot
vendored
Normal file
114
vendor/touch/resources/themes/fonts/pictos/pictos-web.svg
vendored
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
vendor/touch/resources/themes/fonts/pictos/pictos-web.ttf
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/pictos/pictos-web.woff
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/tizen/TizenSansMedium.ttf
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/tizen/TizenSansRegular.ttf
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/tizen/tizen-icon.eot
vendored
Normal file
13
vendor/touch/resources/themes/fonts/tizen/tizen-icon.svg
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>Generated by IcoMoon</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="icomoon" horiz-adv-x="1024">
|
||||||
|
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||||
|
<missing-glyph horiz-adv-x="1024" />
|
||||||
|
<glyph unicode=" " d="" horiz-adv-x="512" />
|
||||||
|
<glyph unicode="a" d="M877.714 256v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 548.571v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714zM877.714 841.143v-73.143q0-14.857-10.857-25.714t-25.714-10.857h-804.571q-14.857 0-25.714 10.857t-10.857 25.714v73.143q0 14.857 10.857 25.714t25.714 10.857h804.571q14.857 0 25.714-10.857t10.857-25.714z" horiz-adv-x="878" />
|
||||||
|
<glyph unicode="b" d="M731.429 475.429v73.143q0 14.857-10.857 25.714t-25.714 10.857h-286.857l108 108q10.857 10.857 10.857 25.714t-10.857 25.714l-52 52q-10.286 10.286-25.714 10.286t-25.714-10.286l-258.857-258.857q-10.286-10.286-10.286-25.714t10.286-25.714l258.857-258.857q10.286-10.286 25.714-10.286t25.714 10.286l52 52q10.286 10.286 10.286 25.714t-10.286 25.714l-108 108h286.857q14.857 0 25.714 10.857t10.857 25.714zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
||||||
|
<glyph unicode="c" d="M409.714 226.857l259.429 259.429q10.857 10.857 10.857 25.714t-10.857 25.714l-259.429 259.429q-10.857 10.857-25.714 10.857t-25.714-10.857l-58.286-58.286q-10.857-10.857-10.857-25.714t10.857-25.714l175.429-175.429-175.429-175.429q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857zM877.714 512q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857-220.286 58.857-159.714 159.714-58.857 220.286 58.857 220.286 159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" horiz-adv-x="878" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
vendor/touch/resources/themes/fonts/tizen/tizen-icon.ttf
vendored
Normal file
BIN
vendor/touch/resources/themes/fonts/tizen/tizen-icon.woff
vendored
Normal file
BIN
vendor/touch/resources/themes/images/bb10/check.png
vendored
Normal file
After Width: | Height: | Size: 826 B |
BIN
vendor/touch/resources/themes/images/bb10/clear_icon.png
vendored
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
vendor/touch/resources/themes/images/bb10/disclosure.png
vendored
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
vendor/touch/resources/themes/images/bb10/disclosure2.png
vendored
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
vendor/touch/resources/themes/images/bb10/dotgrid.png
vendored
Normal file
After Width: | Height: | Size: 582 B |
BIN
vendor/touch/resources/themes/images/bb10/icons/ic_add.png
vendored
Normal file
After Width: | Height: | Size: 439 B |