Browse Source

Merge branch 'pr/1706'

pull/1636/merge
Ramiro Saenz 7 years ago
parent
commit
b0ca419dc7
  1. 1
      .gitignore
  2. 82
      .sencha/app/Boot.js
  3. 17
      .sencha/app/Microloader.js
  4. 4
      .sencha/app/app.defaults.json
  5. 33
      .sencha/app/build-impl.xml
  6. 74
      .sencha/app/defaults.properties
  7. 65
      .sencha/app/init-impl.xml
  8. 115
      .sencha/app/js-impl.xml
  9. 4
      .sencha/app/native.defaults.properties
  10. 4
      .sencha/app/package.defaults.properties
  11. 62
      .sencha/app/page-impl.xml
  12. 29
      .sencha/app/refresh-impl.xml
  13. 205
      .sencha/app/sass-impl.xml
  14. 3
      .sencha/app/sencha.cfg
  15. 35
      .sencha/app/slice-impl.xml
  16. 59
      .sencha/app/watch-impl.xml
  17. 2
      app/package.json
  18. 2
      electron/main.js
  19. 2769
      package-lock.json
  20. 16
      package.json
  21. 7
      workspace.json

1
.gitignore vendored

@ -25,6 +25,7 @@ Thumbs.db
bootstrap.js
bootstrap.css
bootstrap.json
bootstrap.jsonp
# Electron
node_modules/

82
.sencha/app/Boot.js

@ -537,9 +537,33 @@ Ext.Boot = Ext.Boot || (function (emptyFn) {
init: function () {
var scriptEls = doc.getElementsByTagName('script'),
script = scriptEls[0],
len = scriptEls.length,
re = /\/ext(\-[a-z\-]+)?\.js$/,
entry, script, src, state, baseUrl, key, n, origin;
entry, src, state, baseUrl, key, n, origin;
// No check for script definedness because there always should be at least one
Boot.hasReadyState = ("readyState" in script);
Boot.hasAsync = ("async" in script);
Boot.hasDefer = ("defer" in script);
Boot.hasOnLoad = ("onload" in script);
// Feature detecting IE
Boot.isIE8 = Boot.hasReadyState && !Boot.hasAsync && Boot.hasDefer && !Boot.hasOnLoad;
Boot.isIE9 = Boot.hasReadyState && !Boot.hasAsync && Boot.hasDefer && Boot.hasOnLoad;
Boot.isIE10p = Boot.hasReadyState && Boot.hasAsync && Boot.hasDefer && Boot.hasOnLoad;
if (Boot.isIE8) {
Boot.isIE10 = false;
Boot.isIE10m = true;
}
else {
Boot.isIE10 = (new Function('/*@cc_on return @_jscript_version @*/')()) === 10;
Boot.isIE10m = Boot.isIE10 || Boot.isIE9 || Boot.isIE8;
}
// IE11 does not support conditional compilation so we detect it by exclusion
Boot.isIE11 = Boot.isIE10p && !Boot.isIE10;
// Since we are loading after other scripts, and we needed to gather them
// anyway, we track them in _scripts so we don't have to ask for them all
@ -552,12 +576,8 @@ Ext.Boot = Ext.Boot || (function (emptyFn) {
state = script.readyState || null;
// If we find a script file called "ext-*.js", then the base path is that file's base path.
if (!baseUrl) {
if (re.test(src)) {
Boot.hasReadyState = ("readyState" in script);
Boot.hasAsync = ("async" in script) || !Boot.hasReadyState;
baseUrl = src;
}
if (!baseUrl && re.test(src)) {
baseUrl = src;
}
if (!Boot.scripts[key = Boot.canonicalUrl(src)]) {
@ -578,8 +598,6 @@ Ext.Boot = Ext.Boot || (function (emptyFn) {
if (!baseUrl) {
script = scriptEls[scriptEls.length - 1];
baseUrl = script.src;
Boot.hasReadyState = ('readyState' in script);
Boot.hasAsync = ("async" in script) || !Boot.hasReadyState;
}
Boot.baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1);
@ -1394,27 +1412,36 @@ Ext.Boot = Ext.Boot || (function (emptyFn) {
createLoadElement: function(callback) {
var me = this,
el = me.getElement(),
readyStateChange = function(){
el = me.getElement();
me.preserve = true;
el.onerror = function() {
me.error = true;
if (callback) {
callback();
callback = null;
}
};
if (Boot.isIE10m) {
el.onreadystatechange = function() {
if (this.readyState === 'loaded' || this.readyState === 'complete') {
if(callback) {
if (callback) {
callback();
callback = this.onreadystatechange = this.onerror = null;
}
}
},
errorFn = function() {
me.error = true;
if(callback) {
callback();
}
};
me.preserve = true;
el.onerror = errorFn;
if(Boot.hasReadyState) {
el.onreadystatechange = readyStateChange;
} else {
el.onload = callback;
}
else {
el.onload = function() {
callback();
callback = this.onload = this.onerror = null;
};
}
// IE starts loading here
el[me.prop] = me.getLoadUrl();
},
@ -1541,8 +1568,11 @@ Ext.Boot = Ext.Boot || (function (emptyFn) {
// for async modes, we have some options
if (!sync) {
// if cross domain, just inject the script tag and let the onload
// events drive the progression
if(me.isCrossDomain()) {
// events drive the progression.
// IE10 also needs sequential loading because of a bug that makes it
// fire readystate event prematurely:
// https://connect.microsoft.com/IE/feedback/details/729164/ie10-dynamic-script-element-fires-loaded-readystate-prematurely
if (Boot.isIE10 || me.isCrossDomain()) {
return me.loadCrossDomain();
}
// for IE, use the readyStateChange allows us to load scripts in parallel

17
.sencha/app/Microloader.js

@ -51,15 +51,24 @@ Ext.Microloader = Ext.Microloader || (function () {
? manifest
: manifest + ".json";
Boot.fetch(url, function(result){
manifest = Ext.manifest = JSON.parse(result.content);
Microloader.load(manifest);
});
if (location.href.indexOf('file:/') === 0) {
Boot.load(url + 'p');
}
else {
Boot.fetch(url, function(result){
Microloader.setManifest(JSON.parse(result.content));
});
}
} else {
Microloader.load(manifest);
}
},
setManifest: function(cfg) {
manifest = Ext.manifest = cfg;
Microloader.load(manifest);
},
/**
*
* @param manifestDef

4
.sencha/app/app.defaults.json

@ -135,7 +135,7 @@
*/
"production": {
"compressor": {
"type": "yui"
"type": "cmd"
}
},
@ -170,7 +170,7 @@
* to adjust the base path for all bootstrap objects, or expanded into object form:
*
* "bootstrap": {
* "base": "${app.dir},
* "base": "${app.dir}",
* "manifest": "bootstrap.json",
* "microloader": "bootstrap.js",
* "css": "bootstrap.css"

33
.sencha/app/build-impl.xml

@ -244,9 +244,15 @@ this file in most cases.
<target name="watch"
depends="-watch-init,development,init"
description="Starts Watch to keep your app ready for dev mode">
<local name="watch.lock.file"/>
<condition property="watch.lock.file" value="${build.id}.watch.lock">
<isset property="build.id"/>
</condition>
<property name="watch.lock.file" value="app.watch.lock"/>
<x-ant-call>
<param name="build.id" value="${build.id}"/>
<param name="build.name" value="${build.name}"/>
<param name="watch.lock.file" value="${build.dir}/${watch.lock.file}"/>
<target name="-before-watch"/>
<target name="-watch"/>
<target name="-after-watch"/>
@ -463,6 +469,33 @@ this file in most cases.
depends="init,-before-publish,-publish,-after-publish"
description="Publish app to Sencha Web Application Manager"/>
<!--
===============================================================
Build Dependencies
uses the compiler to build metadata files for all detected
file-to-file dependencies
===============================================================
-->
<target name="build-dependencies" depends="init, -detect-app-build-properties">
<x-compile refid="${compiler.ref.id}">
<![CDATA[
restore
page
and
meta
-infoType=Dependencies
-basePath=${build.dir}
-tpl={0}
-out=${build.dir}/dependencies.json
and
meta
-infoType=AppManifest
-basePath=${build.dir}
-tpl={0}
-out=${build.dir}/bootsequence.json
]]>
</x-compile>
</target>
<!--
===============================================================

74
.sencha/app/defaults.properties

@ -1,7 +1,7 @@
# =============================================================================
# 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.
# the applications build process.
#
# This file represents the lowest priority file for defining these properties
# as well as the place to look for documentation and learning what properties
@ -48,7 +48,7 @@
# See "sencha help app build" for details.
#
# The corresponding properties files:
# (production.properties, testing.properties, etc.) provide examples of
# (production.properties, testing.properties, etc.) provide examples of
# overriding sets of properties depending on the selected environment
# NOTE: this replaces the deprecated args.environment
app.environment=production
@ -120,6 +120,8 @@ app.output.cache.path=${app.output.cache}
app.output.cache.enable=true
app.output.appCache.enable=${app.output.cache.enable}
app.output.appCache.path=${app.output.cache.path}
app.output.progressive=false
app.output.progressive.enable=${app.output.progressive}
build.out.base.path=${app.output.base}
build.out.page.path=${build.out.base.path}/${app.output.page.path}
@ -236,13 +238,13 @@ build.options=logger:${build.options.logger},debug:${build.options.debug},produc
# 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
# 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
#
@ -268,7 +270,7 @@ build.optimize.enable=\
build.optimize.disable=
build.optimize=${build.optimize.disable}
# enables / disables removing text references from
# enables / disables removing text references from
# package js build files
build.remove.references=true
@ -280,12 +282,12 @@ build.remove.requirement.nodes=true
# like mixin references
build.optimize.string.references=true
# enables / disables yui compression
build.compression.yui=${app.output.js.compress}
# enables / disables cmd compression
build.compression.cmd=${app.output.js.compress}
# enables / disables closure compression
build.compression.closure=0
# enables / disables uglify compression
build.compression.ugilfy=0
@ -296,8 +298,8 @@ build.compile.temp.dir.keep=true
# ------------------------------------------
# DOC ONLY - Do Not Set
# this variable will be set to the appropriate compressor
# option, and is calculated in init-impl.xml, but may be overridded in
# this variable will be set to the appropriate compressor
# option, and is calculated in init-impl.xml, but may be overridded in
# app.properties, <environment>.properties, or via command line
#
# build.compression=
@ -312,8 +314,8 @@ build.compile.temp.dir.keep=true
# markup, or left as a separate resource
build.enable.embedded.microloader=${app.output.microloader.embed}
# whether to include the page's manifest.json code with the
# microloader content. Production.properties files should set this to
# whether to include the page's manifest.json code with the
# microloader content. Production.properties files should set this to
# false to have manifest.json exist as a server resource.
build.enable.embedded.manifest=${app.output.manifest.embed}
@ -348,18 +350,18 @@ app.microloader=${app.microloader.dir}/${app.microloader.name}
app.microloader.path=${app.microloader}
# specifies how to embed the microloader code into the output markup
# {0} is replaced with the content of the microloader file specified
# {0} is replaced with the content of the microloader file specified
# by app.microloader.path
build.microloader.code.tpl={0}
# the template to use when generating a stand-alone json manifest file
build.microloader.json.tpl.standalone={0}
# the template to use when embedding the manifest json directly next to the
# the template to use when embedding the manifest json directly next to the
# microloader in the output microloader content
build.microloader.json.tpl.embedded=Ext.blink({0});
# the template to use in the output microloader content when supplying
# the template to use in the output microloader content when supplying
# the manifest json as a separate server-side resource ('production' builds)
build.microloader.json.tpl.external=Ext.blink('{'id:''${app.id}'''}');
@ -368,7 +370,7 @@ build.microloader.json.tpl.external=Ext.blink('{'id:''${app.id}'''}');
build.embedded.microloader.tpl=<script id="microloader" data-app="${app.id}" type="text/javascript">{0}</script>
# the compressor to use when embedding the microloader into a page
# can be -closure or -yui, or leave empty to disable compression
# can be -closure or -cmd, or leave empty to disable compression
build.embedded.microloader.compressor=
# the path to the microloader content file, if external to the outpout markup
@ -383,7 +385,7 @@ build.external.microloader.markup=<script id="microloader" data-app="${app.id}"
# currently unused : is a placeholder for future microloader interactions
build.microloader.mode=${build.environment}
# the tag name to use when generating the compiler save set for
# the tag name to use when generating the compiler save set for
# the page's js code
build.tag.name=full-page
@ -485,7 +487,7 @@ enable.ext42.themes=false
enable.touch.themes=false
# --------------------
# selector count threshold to use when
# selector count threshold to use when
# splitting a single css file into multiple
# css files (IE selector limit workaround)
#
@ -497,7 +499,7 @@ build.css.selector.limit=${app.output.css.split}
build.css.preprocess=${app.output.css.preprocess}
# sets the css preprocessor options, in the form:
# name1:value1,name2:value2,...
# name1:value1,name2:value2,...
build.css.preprocessor.opts=
# enables / disable css compressor (enable.ext42.themes only)
@ -580,32 +582,32 @@ theme.name=default
# *****************************************************************************
# the resources directory of the application
# note: this property is currently only used for building ext 4.1 style themes
# note: this property is currently only used for building ext 4.1 style themes
# (used by x-build-theme and x-copy-resources in slice-impl.xml)
app.resources.dir=${app.dir}/resources
# the directory containing the slicer widget example page
app.example.dir=${app.dir}/sass/example
# this is the directory used for intermediate build artifacts used
# by the slicer for generating theme images
app.example.build.dir=${build.temp.dir}/slicer-temp
# properties to control the recirect css file that is
# generated for the slicer example page
app.example.css.name=example.css
app.example.css.file=${app.example.dir}/${app.example.css.name}
app.example.css.file=${app.example.build.dir}/${app.example.css.name}
# the base path for generating the bootstrap code for the
# the base path for generating the bootstrap code for the
# slicer page
bootstrap.base.path=${app.example.dir}
bootstrap.base.path=${app.example.build.dir}
# the full file name of the slicer page's bootstrap js file
bootstrap.example.js=${app.example.dir}/bootstrap.js
bootstrap.example.js=${app.example.build.dir}/bootstrap.js
# the full file name of the slicer page's bootstrap js file
bootstrap.example.json.name=bootstrap.json
bootstrap.example.json=${app.example.dir}/${bootstrap.example.json.name}
# this is the directory used for intermediate build artifacts used
# by the slicer for generating theme images
app.example.build.dir=${build.temp.dir}/slicer-temp
bootstrap.example.json=${app.example.build.dir}/${bootstrap.example.json.name}
# the name of the intermediate screenshot file used for image slicing
build.capture.png=${app.example.build.dir}/theme-capture.png
@ -615,8 +617,8 @@ build.capture.json=${app.example.build.dir}/theme-capture.json
# the location of the slicer widget page
app.example.theme.html.name=theme.html
app.example.theme.html=${cmd.dir}/ant/build/slicer/${app.example.theme.html.name}
app.example.fashion.html.name=fashion.html
app.example.theme.html=${app.example.dir}/${app.example.theme.html.name}
app.example.fashion.html=${app.example.dir}/${app.example.fashion.html.name}
# a name prefix used for slicer page temporary artifacts
@ -644,7 +646,7 @@ build.slice.options=
# *****************************************************************************
# Packager
# these properties control features of the native packaging phase of the
# these properties control features of the native packaging phase of the
# build process
# *****************************************************************************
@ -655,13 +657,13 @@ enable.desktop.packager=false
# skips packaging the built application with cordova/phonegap
skip.native-package=false
# a property that controls whether a standalone manifest.json file will be
# a property that controls whether a standalone manifest.json file will be
# generated for the native packaged application
enable.standalone.manifest=false
# *****************************************************************************
# Resolve
# these properties control aspects of the dynamic dependency resolver, which
# these properties control aspects of the dynamic dependency resolver, which
# uses phantomjs to load the application and extract Ext.Loader class load
# history.
# *****************************************************************************
@ -691,7 +693,7 @@ build.resolve.mode=references
# the output file for the detected dynamic dependencies
build.resolve.file=${build.temp.dir}/resolve.json
# controls whether unmatched external references in the specified file will
# controls whether unmatched external references in the specified file will
# generate build warnings or build failures
build.resolve.allow.unmatched=true
@ -704,4 +706,4 @@ build.resolve.allow.unmatched=true
build.trigger.targets=refresh,resources,sass
# the watcher targets to run that monitor for code changes
build.watcher.targets=-watch-compiler
build.watcher.targets=-watch-fashion,-watch-compiler

65
.sencha/app/init-impl.xml

@ -19,11 +19,13 @@
<script language="javascript">
<![CDATA[
var f = new java.io.File(project.getProperty("basedir"));
var sub = ".sencha/workspace/sencha.cfg";
var sub = ".sencha/workspace/sencha.cfg"
var sub2 = "workspace.json";
for (var p = f; p; p = p.getParentFile()) {
var t = new java.io.File(p, sub);
if (t.exists()) {
var t2 = new java.io.File(p, sub2);
if (t.exists() || t2.exists()) {
// we found the workspace folder!
t = new java.io.File(p, "local.properties");
@ -87,13 +89,20 @@
<!--
calculate the appropriate build.compression value
-->
<condition property="build.compression" value="-yui">
<condition property="build.compression" value="-cmd">
<or>
<x-is-true value="${build.compression.yui}"/>
<equals arg1="yui" arg2="${app.compressor.type}"/>
</or>
</condition>
<condition property="build.compression" value="-cmd">
<or>
<x-is-true value="${build.compression.cmd}"/>
<equals arg1="cmd" arg2="${app.compressor.type}"/>
</or>
</condition>
<condition property="build.compression" value="-closure">
<or>
<x-is-true value="${build.compression.closure}"/>
@ -144,6 +153,8 @@
<property name="app.sass.fashion" value="false"/>
<property name="app.sass.rhino" value="false"/>
<property name="app.sass.dynamic" value="false"/>
<property name="app.sass.generated.var" value="${app.sass.save}"/>
</target>
<target name="-after-init"/>
@ -219,6 +230,23 @@
</else>
</if>
<if>
<or>
<equals arg1="${app.output.js.filter}" arg2="all"/>
<equals arg1="${app.output.js.filter}" arg2="minimum"/>
</or>
<then>
<property name="enable.used.deps" value="false"/>
</then>
</if>
<if>
<equals arg1="${app.output.js.filter}" arg2="used"/>
<then>
<property name="enable.used.deps" value="true"/>
</then>
</if>
<if>
<equals arg1="${app.toolkit}" arg2="modern"/>
<then>
@ -239,6 +267,18 @@
</then>
</if>
<if>
<or>
<x-is-false value="${app.output.progressive.enable}"/>
<not>
<isset property="${app.output.progressive.enable}"/>
</not>
</or>
<then>
<property name="${skip.progressive}" value="1"/>
</then>
</if>
<if>
<!--If Deltas are FALSE, deltas do not exist, or caching is disabled then skip delta patching-->
<or>
@ -340,6 +380,19 @@
</condition>
<property name="enable.split.framework" value="false"/>
<if>
<equals arg1="${app.output.js.filter}" arg2="used"/>
<then>
<property name="include.used.package.deps">
include
-usedPackagesDeps
and
</property>
</then>
</if>
<property name="include.used.package.deps">
# no-op
</property>
<x-compile refid="${compiler.ref.id}"
dir="${app.dir}"
@ -372,6 +425,7 @@
${build.operations}
and
${exclude.boot}
${include.used.package.deps}
save
page
]]>
@ -391,6 +445,7 @@
${build.operations}
and
${exclude.boot}
${include.used.package.deps}
save
page
]]>
@ -403,7 +458,9 @@
defaultSassFile="${app.out.scss}"
defaultCssFile="${app.out.css}"
refid="app.web.server"
saveVariablesProp="app.sass.save"
saveVariablesProp="app.sass.generated.var"
uiDirProp="app.sass.generated.src"
sassNamespaceProp="app.sass.namespace"
j2eeMode="${use.webxml}">
<mapping name="~cmd" path="${cmd.dir}"/>
<mapping name="" path="${build.web.root}"/>

115
.sencha/app/js-impl.xml

@ -10,18 +10,121 @@
splitModePropName="enable.split.mode"
pageModePropName="app.page.mode"
hasJsSdkPropName="app.has.js.sdk"
hasCssSdkPropName="app.has.css.sdk"/>
hasCssSdkPropName="app.has.css.sdk"
hasUsesPackagesPropName="app.has.uses" />
</target>
<!--
this is the standard js compile target that builds the output js file(s)
-->
<target name="-compile-js" depends="-detect-app-build-properties">
<property name="app.output.framework.include"
value="package-sencha-core,framework,toolkit,package-core"/>
<property name="enable.used.deps" value="${app.has.uses}"/>
<if>
<x-is-true value="${enable.used.deps}"/>
<then>
<x-compile refid="${compiler.ref.id}">
# determine the base set of framework files
exclude
-all
and
include
-tag=${app.output.framework.include}
and
save
allframework
</x-compile>
<for param="file">
<fileset dir="${workspace.build.dir}/temp" includes="**/deps.json"/>
<sequential>
<x-compile refid="${compiler.ref.id}">
# now load the transitive set based on the json data
exclude
-all
and
include
-json-data=@{file}
-r
and
save
deps
and
# add any needed deps to the page save set
include
-set=page
and
save
page
</x-compile>
</sequential>
</for>
</then>
<else>
<if>
<equals arg1="${app.output.js.filter}" arg2="all"/>
<then>
<x-compile refid="${compiler.ref.id}">
# if filtering requirements is configured for 'all'
# then just include all js content on the classpath to
# ensure all dependencies are provided for the used packages
include
-all
and
save
page
</x-compile>
</then>
</if>
</else>
</if>
<if>
<x-is-true value="${enable.split.mode}"/>
<then>
<property name="app.output.framework.include"
value="package-sencha-core,framework,toolkit,package-core"/>
<local name="build.js.framework.fwset" />
<local name="build.js.framework.rtl" />
<if>
<or>
<x-is-true value="${app.output.framework.all}" />
<isset property="app.has.uses" />
</or>
<then>
<property name="build.include.all.scss" value="true" />
<property name="build.js.framework.fwset"> </property>
<if>
<x-is-false value="${app.output.framework.rtl}" />
<then>
<property name="build.js.framework.rtl">
<![CDATA[
exclude
-namespace=Ext.rtl
and
]]>
</property>
</then>
<else>
<property name="build.js.framework.rtl"> </property>
</else>
</if>
</then>
<else>
<property name="build.js.framework.fwset">
<![CDATA[
intersect
-set=page,allframework
and
]]>
</property>
<property name="build.js.framework.rtl"> </property>
</else>
</if>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
@ -40,12 +143,11 @@
save
allframework
and
intersect
-set=page,allframework
and
${build.js.framework.fwset}
save
frameworkdeps
and
${build.js.framework.rtl}
include
-tag=Ext.cmd.derive
and
@ -80,6 +182,7 @@
</x-compile>
</then>
<else>
<local name="framework.include.filter"/>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
# build an all-classes.js file that contains

4
.sencha/app/native.defaults.properties

@ -18,8 +18,8 @@ build.options.logger=no
build.options.debug=false
# enable yui compression
build.compression.yui=1
# enable cmd compression
build.compression.cmd=1
enable.standalone.manifest=true

4
.sencha/app/package.defaults.properties

@ -21,7 +21,7 @@ build.options.logger=no
build.options.debug=false
# enable yui compression
build.compression.yui=1
# enable cmd compression
build.compression.cmd=1
app.microloader.name=testing.js

62
.sencha/app/page-impl.xml

@ -2,15 +2,22 @@
<macrodef name="x-build-microload-markup">
<sequential>
<x-sencha-command dir="${app.dir}" inheritall="true">
<![CDATA[
fs
minify
${build.embedded.microloader.compressor}
-from=${build.microloader.path}
-to=${build.microloader.path}
]]>
</x-sencha-command>
<if>
<not>
<equals arg1="${build.compression}" arg2=""/>
</not>
<then>
<x-sencha-command dir="${app.dir}" inheritall="true">
<![CDATA[
fs
minify
${build.embedded.microloader.compressor}
-from=${build.microloader.path}
-to=${build.microloader.path}
]]>
</x-sencha-command>
</then>
</if>
<if>
<x-is-true value="${build.enable.embedded.microloader}"/>
<then>
@ -55,6 +62,7 @@
# generate json file
microload
-operation=manifest
-jsonp=Ext.Microloader.setManifest
-fashion=${use.fashion}
-tpl=${build.microloader.json.tpl.embedded}
-out=${build.microloader.path}
@ -77,6 +85,7 @@
# generate json file
microload
-operation=manifest
-jsonp=Ext.Microloader.setManifest
-fashion=${use.fashion}
-tpl=${build.microloader.json.tpl.standalone}
-out=${build.out.json.path}
@ -307,11 +316,44 @@
value="&lt;html"/>
</target>
<target name="-generate-progressive-webapp" depends="-init-compiler">
<if>
<x-is-false value="${skip.progressive}"/>
<then>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
progressive-webapp
-buildDir=${build.out.base.path}
]]>
</x-compile>
</then>
</if>
</target>
<target name="-generate-service-worker" depends="-init-compiler">
<if>
<x-is-false value="${skip.progressive}"/>
<then>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
progressive-webapp
-buildDir=${build.out.base.path}
+serviceWorker
]]>
</x-compile>
</then>
</if>
</target>
<target name="-before-page"/>
<target name="-page"
depends="-copy-app-resources,
-generate-progressive-webapp,
-generate-deltas,
-build-output-page,
-generate-cache-manifest"/>
-generate-cache-manifest,
-generate-service-worker"/>
<target name="-after-page"/>
</project>

29
.sencha/app/refresh-impl.xml

@ -19,6 +19,9 @@
<not>
<isset property="app.watch.enabled"/>
</not>
<not>
<isset property="app.uses"/>
</not>
</and>
</condition>
<property name="manifest.root.excludes" value=""/>
@ -41,6 +44,9 @@
exclude
-tag=${refresh.file.filter}
and
exclude
-file=Boot.js
and
save
bootstrap
]]>
@ -52,6 +58,9 @@
include
-all
and
exclude
-file=Boot.js
and
save
bootstrap
]]>
@ -63,9 +72,9 @@
to="${build.json.bootstrap.path}"
property="build.json.bootstrap.rel.path"/>
<echo file="${app.bootstrap.js}">var Ext = Ext || {};
<x-file-write file="${app.bootstrap.js}">var Ext = Ext || {};
Ext.manifest = Ext.manifest || "${build.json.bootstrap.rel.path}";
</echo>
</x-file-write>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
@ -78,6 +87,7 @@ Ext.manifest = Ext.manifest || "${build.json.bootstrap.rel.path}";
and
microload
-operation=manifest
-jsonp=Ext.Microloader.setManifest
-fashion=${use.fashion}
-bootstrap
+ignoreDisabled
@ -104,13 +114,13 @@ Ext.manifest = Ext.manifest || "${build.json.bootstrap.rel.path}";
by the default development.js microloader
-->
<echo file="${build.json.bootstrap.path}">
<x-file-write file="${build.json.bootstrap.path}">
/**
* This file is generated by Sencha Cmd and should NOT be edited. It is a
* combination of content from app.json, and all required package's package.json
* files. Customizations should be placed in app.json.
*/
</echo>
</x-file-write>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
microload
@ -129,9 +139,14 @@ Ext.manifest = Ext.manifest || "${build.json.bootstrap.rel.path}";
'-detect-app-build-properties' is defined in js-impl.xml
-->
<target name="-refresh-app"
depends="-detect-app-build-properties,
-refresh-app-manifest,
-refresh-app-bootstrap"/>
depends="-detect-app-build-properties">
<if>
<equals arg1="development" arg2="${build.environment}"/>
<then>
<x-ant-call target="-refresh-app-manifest,-refresh-app-bootstrap"/>
</then>
</if>
</target>
<!--
Refresh app

205
.sencha/app/sass-impl.xml

@ -15,7 +15,10 @@
property="image.search.path"/>
<if>
<x-is-true value="${build.include.all.scss}"/>
<or>
<x-is-true value="${app.has.uses}" />
<x-is-true value="${build.include.all.scss}"/>
</or>
<then>
<property name="sass.name.filter">
include
@ -107,18 +110,21 @@
<copy file="${app.out.scss.tmp}" tofile="${app.out.scss}" overwrite="true"/>
</then>
</if>
<!--
app.out.css.path is relative to the app output index.html file
-->
<x-get-relative-path
from="${app.dir}"
to="${app.out.css}"
property="app.out.css.path"
/>
<if>
<equals arg1="development" arg2="${build.environment}"/>
<then>
<!--
app.out.css.path is relative to the app output index.html file
-->
<x-get-relative-path
from="${app.dir}"
to="${app.out.css}"
property="app.out.css.path"
/>
<!--update the application's bootstrap.css file to point to the build output-->
<echo file="${build.bootstrap.css.path}">
<x-file-write file="${build.bootstrap.css.path}">
<![CDATA[
/*
* This file is generated by Sencha Cmd and should NOT be edited. It redirects
@ -127,7 +133,9 @@
*/
@import '${app.out.css.path}';
]]>
</echo>
</x-file-write>
</then>
</if>
</target>
<!--
@ -186,73 +194,130 @@
scss file, then running compass with the css, sass, and config options set
-->
<target name="-compass-compile-theme-package" depends="-load-sass-page">
<x-run-if-true value="${enable.ext42.themes}">
<local name="compress.uptodate"/>
<x-ant-call target="-compile-sass"/>
<if>
<x-is-true value="${skip.sass.rebuild}"/>
<then>
<x-run-if-true value="${enable.ext42.themes}">
<x-ant-call target="-compile-sass"/>
</x-run-if-true>
</then>
<else>
<x-run-if-true value="${enable.ext42.themes}">
<local name="compress.uptodate"/>
<x-ant-call target="-compile-sass"/>
<if>
<x-is-true value="${app.sass.fashion}"/>
<then>
<if>
<x-is-true value="${app.sass.rhino}"/>
<x-is-true value="${app.sass.fashion}"/>
<then>
<x-fashion-compile
file="${app.out.scss}"
toFile="${app.out.css}"/>
</then>
<else>
<x-fashion-live-update input="${app.out.scss}"
output="${app.out.css}"
refId="app.web.server"
split="${build.css.selector.limit}"
compress="${build.css.compress}"
compilerRefId="${compiler.ref.id}"/>
<if>
<x-is-true value="${app.sass.rhino}"/>
<then>
<x-fashion-compile
file="${app.out.scss}"
toFile="${app.out.css}"/>
</then>
<else>
<x-fashion-live-update input="${app.out.scss}"
output="${app.out.css}"
refId="app.web.server"
split="${build.css.selector.limit}"
compress="${build.css.compress}"
compilerRefId="${compiler.ref.id}"/>
<x-sencha-command>
fashion
-compress=${build.css.compress}
-split=${build.css.selector.limit}
-saveFile=${app.dir}/${app.sass.save}
${app.out.scss}
${app.out.css}
</x-sencha-command>
<x-compile refid="${compiler.ref.id}">
<![CDATA[
microload
-operation=manifest
-fashion=false
-tpl=${build.microloader.json.tpl.standalone}
-out=${build.out.json.path}
-resourcePath=${build.out.base.path}
-basePath=${build.out.metadata.dir}
]]>
</x-compile>
<x-update-css-array input="${app.out.css}"
compilerRefId="${compiler.ref.id}"/>
</else>
</if>
</then>
<else>
<x-compass-compile
rubyPath="${build.ruby.path}"
dir="${compass.working.dir}"
trace="${compass.compile.trace}"
boring="${compass.compile.boring}"
force="${compass.compile.force}"
sassdir="${compass.sass.dir}"
cssdir="${compass.css.dir}"
config="${compass.config.file}"/>
<x-sencha-command>
fashion
-config=${build.out.json.path}
-compress=${build.css.compress}
-split=${build.css.selector.limit}
-saveFile=${app.dir}/${app.sass.generated.var}
-slicer=false
${app.out.scss}
${app.out.css}
</x-sencha-command>
<uptodate property="compress.uptodate"
value="true"
srcfile="${app.out.scss}.tmp"
targetfile="${app.out.css}"/>
<x-update-css-array input="${app.out.css}"
compilerRefId="${compiler.ref.id}"/>
<if>
<x-is-true value="${compress.uptodate}"/>
<!--<x-is-true value="true"/>-->
<then>
<x-compress-css-files dir="${build.out.css.dir}"
prefix="${app.out.base.debug}"
outprefix="${app.out.base}"
preprocess="${build.css.preprocess}"
compress="${build.css.compress}"/>
<if>
<and>
<available file="${build.out.css.dir}/css-vars.js"/>
</and>
<then>
<if>
<not>
<equals arg1="${build.compression}" arg2=""/>
</not>
<then>
<x-compress-js srcFile="${build.out.css.dir}/css-vars.js"
outFile="${build.out.css.dir}/css-vars.js"/>
</then>
</if>
<if>
<not>
<equals arg1="${build.environment}" arg2="development"/>
</not>
<then>
<concat destfile="${build.out.js.path}" append="true">
<fileset dir="${build.out.css.dir}">
<include name="css-vars.js"/>
</fileset>
</concat>
</then>
</if>
</then>
</if>
</else>
</if>
</then>
<else>
<x-compass-compile
rubyPath="${build.ruby.path}"
dir="${compass.working.dir}"
trace="${compass.compile.trace}"
boring="${compass.compile.boring}"
force="${compass.compile.force}"
sassdir="${compass.sass.dir}"
cssdir="${compass.css.dir}"
config="${compass.config.file}"/>
<uptodate property="compress.uptodate"
value="true"
srcfile="${app.out.scss}.tmp"
targetfile="${app.out.css}"/>
<if>
<x-is-true value="${compress.uptodate}"/>
<!--<x-is-true value="true"/>-->
<then>
<x-compress-css-files dir="${build.out.css.dir}"
prefix="${app.out.base.debug}"
outprefix="${app.out.base}"
preprocess="${build.css.preprocess}"
compress="${build.css.compress}"/>
</then>
</if>
</else>
</if>
</else>
</if>
</x-run-if-true>
</x-run-if-true>
</else>
</if>
</target>
<!--

3
.sencha/app/sencha.cfg

@ -42,4 +42,5 @@ app.resource.paths=${app.dir}/resources
app.framework.version=5.1.1.451
app.cmd.version=6.1.2.15
app.cmd.version=6.6.0.13

35
.sencha/app/slice-impl.xml

@ -40,6 +40,7 @@
-all
and
sass
+skipWatch
+class-name-vars
+etc
+vars
@ -54,6 +55,7 @@
page
and
sass
+skipWatch
+ruby
-output=${app.example.out.ruby}
]]>
@ -68,7 +70,7 @@
</then>
</if>
<x-get-relative-path from="${app.example.dir}"
<x-get-relative-path from="${app.example.build.dir}"
to="${app.example.css}"
property="app.example.css.path"/>
@ -97,12 +99,15 @@
<x-is-true value="${app.sass.rhino}"/>
<then>
<x-fashion-compile
slicer="true"
file="${app.example.build.dir}"
toFile="${app.example.build.dir}"/>
</then>
<else>
<x-sencha-command>
fashion
-config=${app.dir}/app.json
-slicer=true
-compress=${build.css.compress}
-split=${build.css.selector.limit}
${app.example.build.dir}
@ -127,10 +132,22 @@
<!-- Produces a bootstrap.js file for ext 4.2 slicer pages -->
<target name="-generate-slicer-bootstrap" unless="framework.isV5">
<local name="relpath"/>
<local name="cmd.dir.normalized"/>
<x-get-relative-path from="${bootstrap.base.path}"
to="${framework.packages.dir}"
property="relpath"/>
<script language="javascript">
<![CDATA[
var dir = project.getProperty("cmd.dir") + '';
dir = dir.replace(/\\/g, '/');
if (dir.indexOf('/') !== 0) {
dir = '/' + dir;
}
project.setProperty("cmd.dir.normalized", dir);
]]>
</script>
<x-bootstrap file="${bootstrap.example.js}"
basedir="${bootstrap.base.path}"
includeBoot="true"
@ -140,7 +157,7 @@
overrideExcludeTags="">
<![CDATA[
Ext.Boot.loadSync([
"render.js",
"${cmd.dir.normalized}/ant/build/slicer/render.js",
"${relpath}/ext-theme-base/sass/example/manifest.js",
"${relpath}/ext-theme-base/sass/example/shortcuts.js",
"custom.js"
@ -182,6 +199,7 @@ Ext.Boot.loadSync([
<![CDATA[
slicer-manifest
-exclude=${manifest.root.excludes}
-jsonp=Ext.Microloader.setManifest
-removeBootstrapCssEntries=${remove.slicer.css.bootstrap.entries}
+ignoreDisabled
-basePath=${bootstrap.base.path}
@ -201,12 +219,13 @@ Ext.Boot.loadSync([
<echo>Capture theme image to ${build.capture.png}</echo>
<x-sencha-command>
<![CDATA[
theme
capture
-page=${app.example.theme.html}
-image=${build.capture.png}
-manifest=${build.capture.json}
]]>
theme
capture
-base=${app.example.build.dir}
-page=${app.example.theme.html}
-image=${build.capture.png}
-manifest=${build.capture.json}
]]>
</x-sencha-command>
</target>

59
.sencha/app/watch-impl.xml

@ -27,6 +27,24 @@
fork="true"/>
</target>
<target name="-watch-fashion" if="framework.isV6">
<x-fashion-watch
refName="fashion-watch"
inputFile="${app.out.scss}"
outputFile="${app.out.css}"
split="${build.css.selector.limit}"
compress="${build.css.compress}"
configFile="${build.out.json.path}"
saveFile="${app.dir}/${app.sass.generated.var}"
fork="true"/>
</target>
<target name="-stop-fashion-watch">
<x-fashion-watch
refName="fashion-watch"
stop="true"/>
</target>
<macrodef name="x-run-compass-watch">
<attribute name="directory"/>
<sequential>
@ -58,18 +76,35 @@
<target name="-before-watch"/>
<target name="-watch" depends="-init-web-server">
<x-ant-call target="${build.trigger.targets}"/>
<x-ant-call target="web-start" unless="skip.web.start">
<param name="enable.background.server" value="true"/>
</x-ant-call>
<x-ant-call target="${build.watcher.targets}">
<param name="build.id" value="${build.id}"/>
<param name="build.name" value="${build.name}"/>
</x-ant-call>
<x-ant-call target="web-stop" unless="skip.web.start">
<param name="enable.background.server" value="true"/>
</x-ant-call>
<x-ant-call target="-stop-compass-watch"/>
<local name="skip.sass.rebuild"/>
<condition property="skip.sass.rebuild" value="true">
<isset property="framework.isV6"/>
</condition>
<property name="skip.sass.rebuild" value="false"/>
<if>
<x-lock-file file="${watch.lock.file}" refId="lock.ref"/>
<then>
<x-ant-call target="${build.trigger.targets}"/>
<x-ant-call target="web-start" unless="skip.web.start">
<param name="enable.background.server" value="true"/>
</x-ant-call>
<x-ant-call target="${build.watcher.targets}">
<param name="build.id" value="${build.id}"/>
<param name="build.name" value="${build.name}"/>
<param name="skip.sass.rebuild" value="${skip.sass.rebuild}"/>
</x-ant-call>
<x-ant-call target="web-stop" unless="skip.web.start">
<param name="enable.background.server" value="true"/>
</x-ant-call>
<x-ant-call target="-stop-compass-watch"/>
<x-ant-call target="-stop-fashion-watch"/>
<x-unlock-file refId="lock.ref"/>
</then>
<else>
<echo level="error"
message="App watch is already running for this build profile."/>
</else>
</if>
</target>
<target name="-after-watch" depends="init"/>
</project>

2
app/package.json

@ -33,7 +33,7 @@
"auth0-js": "^8.12.3",
"auth0-lock": "^10.22.0",
"auto-launch-patched": "5.0.2",
"electron-config": "0.2.1",
"electron-store": "2.0.0",
"electron-context-menu": "0.9.1",
"electron-is-dev": "^0.3.0",
"mime": "^1.4.0",

2
electron/main.js

@ -6,7 +6,7 @@ const tray = require('./tray');
// AutoLaunch
var AutoLaunch = require('auto-launch-patched');
// Configuration
const Config = require('electron-config');
const Config = require('electron-store');
// Development
const isDev = require('electron-is-dev');
// Updater

2769
package-lock.json generated

File diff suppressed because it is too large Load Diff

16
package.json

@ -11,13 +11,13 @@
"clean:osx": "rm -rf ./dist/Rambox-darwin-*",
"clean:win": "rm -rf ./dist/Rambox-win32-*",
"pack": "npm run pack:osx && npm run pack:win",
"pack:osx": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=darwin --arch=x64 --version=1.3.4 --icon=resources/installer/Icon.icns --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:osx": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=darwin --arch=x64 --icon=resources/installer/Icon.icns --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:win": "npm run pack:win32 && npm run pack:win64",
"pack:win32": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=win32 --arch=ia32 --version=1.3.4 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=32-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:win64": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=win32 --arch=x64 --version=1.3.4 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:win32": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=win32 --arch=ia32 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=32-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:win64": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=win32 --arch=x64 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:linux": "npm run pack:linux32 && npm run pack:linux64",
"pack:linux32": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=linux --arch=ia32 --version=1.3.4 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:linux64": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=linux --arch=x64 --version=1.3.4 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:linux32": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=linux --arch=ia32 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"pack:linux64": "electron-packager \"./build/production/Rambox/\" \"Rambox\" --out=dist --platform=linux --arch=x64 --icon=resources/installer/Icon.ico --app-version=0.2.0 --build-version=64-bit --version-string.CompanyName=\"Rambox\" --version-string.ProductName=\"Rambox\" --asar --prune --overwrite",
"build": "npm run build:linux && npm run build:osx && npm run build:win",
"build:osx": "build --macos",
"build:linux": "npm run build:linux32 && npm run build:linux64",
@ -100,10 +100,10 @@
"chai": "3.5.0",
"crowdin": "1.0.0",
"csvjson": "4.3.3",
"electron": "^1.8.4",
"electron": "^2.0.8",
"electron-builder": "^20.28.3",
"electron-builder-squirrel-windows": "^20.28.3",
"electron-squirrel-startup": "^1.0.0",
"electron-packager": "^12.1.0",
"mocha": "^5.2.0",
"spectron": "^3.8.0"
},
@ -112,9 +112,9 @@
"auth0-js": "^9.7.3",
"auto-launch-patched": "5.0.2",
"crypto": "^1.0.1",
"electron-config": "0.2.1",
"electron-context-menu": "0.9.1",
"electron-is-dev": "^0.3.0",
"electron-store": "^2.0.0",
"mime": "^2.3.1",
"request": "^2.88.0",
"request-promise": "^4.2.2",

7
workspace.json

@ -1,4 +1,11 @@
{
"frameworks": {
"ext": {
"path":"ext",
"version":"5.1.1.451"
}
},
/**
* This is the folder for build outputs in the workspace.
*/

Loading…
Cancel
Save