diff --git a/.gitignore b/.gitignore
index 17676f8..7b52b86 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
**/*.*~
node_modules/
bower_components/
-.idea/
\ No newline at end of file
+.idea/
+*.iml
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..52dc037
--- /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.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ ".sencha/package/build.properties": {
+ "source": "build.properties.merge",
+ "version": "8b81315dbe73ce9c08478f4c1d2df84f456efcf5",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ "package.json": {
+ "source": "package.json.tpl.merge",
+ "version": "12322b2f0769f491000df8ec0e012dd2d78a7eaf",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ "sass/example/theme.html": {
+ "source": "theme.html.tpl.merge",
+ "version": "79ec5194c052d6cc313e842c4e2763fa562c7b70",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ "sass/example/custom.js": {
+ "source": "custom.js.merge",
+ "version": "199e99bbd15c3c0415569425cb21e77c95e9042a",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ "sass/etc/all.scss": {
+ "source": "all.scss.merge",
+ "version": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ "sass/config.rb": {
+ "source": "config.rb.tpl.merge",
+ "version": "33f446bd02c3fd24eb27891582eff6a2e789796b",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "pkgType": "code"
+ }
+ },
+ ".sencha/package/sencha.cfg": {
+ "source": "sencha.cfg.tpl.merge",
+ "version": "6d1982cce48163a98dc46012d1d0cdfa209fbda6",
+ "parameters": {
+ "pkgName": "Ext.ux.WebSocket",
+ "senchadir": ".sencha",
+ "touchRelPath": "../../../../../../../Documents/Architect/Extensions/${touch.dir}",
+ "extRelPath": "../..",
+ "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..a561649
--- /dev/null
+++ b/.sencha/package/init-impl.xml
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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..2a0a2ba
--- /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.WebSocket
+
+# 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.4.84
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/architect/WebSocket.Definition.js b/architect/WebSocket.Definition.js
new file mode 100644
index 0000000..87539b8
--- /dev/null
+++ b/architect/WebSocket.Definition.js
@@ -0,0 +1,10 @@
+{
+ "className": "Ext.ux.WebSocket",
+ "classAlias": "widget.websocket",
+ "toolbox":
+ {
+ "name": "WebSocket Wrapper",
+ "category": "Data Proxies",
+ "groups": ["Networking"]
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 4c561c4..c0f58a2 100644
--- a/package.json
+++ b/package.json
@@ -28,5 +28,20 @@
"grunt": "~0.4.2",
"grunt-contrib-uglify": "~0.3.0",
"ws": "~0.4.31"
+ },
+ "architect": {
+ "compatFrameworks": [
+ "ext42"
+ ],
+ "classes": [{
+ "definition": "WebSocket.Definition.js",
+ "className": "Ext.ux.WebSocket",
+ "js": [
+ "WebSocketManager.js", "WebSocket.js"
+ ],
+ "css": [
+ ]
+ }],
+ "requires": ["Ext.ux.WebSocket"]
}
}
diff --git a/WebSocket.js b/src/WebSocket.js
similarity index 100%
rename from WebSocket.js
rename to src/WebSocket.js
diff --git a/WebSocketManager.js b/src/WebSocketManager.js
similarity index 100%
rename from WebSocketManager.js
rename to src/WebSocketManager.js