mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Improve building process (es6 bundle)
This commit is contained in:
parent
8967bc3817
commit
0a2b826f71
16 changed files with 1279 additions and 1317 deletions
|
|
@ -1,10 +1,12 @@
|
||||||
|
|
||||||
|
# transifex
|
||||||
|
tx pull -a
|
||||||
|
|
||||||
# dependencies checker
|
# dependencies checker
|
||||||
npm-check --skip-unused
|
npm-check --skip-unused
|
||||||
|
|
||||||
# dependencies locker
|
# dependencies locker
|
||||||
npm shrinkwrap --dev
|
npm shrinkwrap --dev
|
||||||
|
|
||||||
# code validation
|
# js code validation
|
||||||
gulp v
|
gulp v
|
||||||
|
|
||||||
563
.eslintrc.js
563
.eslintrc.js
|
|
@ -1,281 +1,282 @@
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
'extends': 'eslint:recommended',
|
'extends': 'eslint:recommended',
|
||||||
'ecmaFeatures': {
|
'ecmaFeatures': {
|
||||||
'modules': true
|
'modules': true
|
||||||
},
|
},
|
||||||
'parserOptions': {
|
'parserOptions': {
|
||||||
'ecmaVersion': 6,
|
'ecmaVersion': 6,
|
||||||
'sourceType': 'module'
|
'sourceType': 'module'
|
||||||
},
|
},
|
||||||
'env': {
|
'env': {
|
||||||
'node': true,
|
'node': true,
|
||||||
'commonjs': true,
|
'commonjs': true,
|
||||||
'es6': true,
|
'es6': true,
|
||||||
'browser': true
|
'browser': true
|
||||||
},
|
},
|
||||||
'globals': {
|
'globals': {
|
||||||
'RL_COMMUNITY': true
|
'RL_COMMUNITY': true,
|
||||||
},
|
'RL_ES6': true
|
||||||
// http://eslint.org/docs/rules/
|
},
|
||||||
'rules': {
|
// http://eslint.org/docs/rules/
|
||||||
|
'rules': {
|
||||||
// errors
|
|
||||||
'no-cond-assign': [2, 'always'],
|
// errors
|
||||||
'no-console': 2,
|
'no-cond-assign': [2, 'always'],
|
||||||
'no-constant-condition': 2,
|
'no-console': 2,
|
||||||
'no-control-regex': 2,
|
'no-constant-condition': 2,
|
||||||
'no-debugger': 2,
|
'no-control-regex': 2,
|
||||||
'no-dupe-args': 2,
|
'no-debugger': 2,
|
||||||
'no-dupe-keys': 2,
|
'no-dupe-args': 2,
|
||||||
'no-duplicate-case': 2,
|
'no-dupe-keys': 2,
|
||||||
'no-empty': 2,
|
'no-duplicate-case': 2,
|
||||||
'no-empty-character-class': 2,
|
'no-empty': 2,
|
||||||
'no-ex-assign': 2,
|
'no-empty-character-class': 2,
|
||||||
'no-extra-boolean-cast': 2,
|
'no-ex-assign': 2,
|
||||||
// 'no-extra-parens': 2,
|
'no-extra-boolean-cast': 2,
|
||||||
'no-extra-semi': 2,
|
// 'no-extra-parens': 2,
|
||||||
'no-func-assign': 2,
|
'no-extra-semi': 2,
|
||||||
'no-inner-declarations': 2,
|
'no-func-assign': 2,
|
||||||
'no-invalid-regexp': 2,
|
'no-inner-declarations': 2,
|
||||||
'no-irregular-whitespace': 2,
|
'no-invalid-regexp': 2,
|
||||||
'no-negated-in-lhs': 2,
|
'no-irregular-whitespace': 2,
|
||||||
'no-obj-calls': 2,
|
'no-negated-in-lhs': 2,
|
||||||
'no-prototype-builtins': 2,
|
'no-obj-calls': 2,
|
||||||
'no-regex-spaces': 2,
|
'no-prototype-builtins': 2,
|
||||||
'no-sparse-arrays': 2,
|
'no-regex-spaces': 2,
|
||||||
'no-unexpected-multiline': 2,
|
'no-sparse-arrays': 2,
|
||||||
'no-unreachable': 2,
|
'no-unexpected-multiline': 2,
|
||||||
'no-unsafe-finally': 2,
|
'no-unreachable': 2,
|
||||||
'use-isnan': 2,
|
'no-unsafe-finally': 2,
|
||||||
// 'valid-jsdoc': [2, {
|
'use-isnan': 2,
|
||||||
// 'requireParamDescription': false,
|
// 'valid-jsdoc': [2, {
|
||||||
// 'requireReturnDescription': false
|
// 'requireParamDescription': false,
|
||||||
// }],
|
// 'requireReturnDescription': false
|
||||||
'valid-typeof': 2,
|
// }],
|
||||||
|
'valid-typeof': 2,
|
||||||
// best practices
|
|
||||||
'accessor-pairs': 2,
|
// best practices
|
||||||
'array-callback-return': 2,
|
'accessor-pairs': 2,
|
||||||
'block-scoped-var': 2,
|
'array-callback-return': 2,
|
||||||
// 'complexity': 2,
|
'block-scoped-var': 2,
|
||||||
'consistent-return': 2,
|
// 'complexity': 2,
|
||||||
'curly': 2,
|
'consistent-return': 2,
|
||||||
'default-case': 2,
|
'curly': 2,
|
||||||
'dot-location': [2, 'property'],
|
'default-case': 2,
|
||||||
'dot-notation': 2,
|
'dot-location': [2, 'property'],
|
||||||
'eqeqeq': 2,
|
'dot-notation': 2,
|
||||||
'guard-for-in': 2,
|
'eqeqeq': 2,
|
||||||
'no-alert': 2,
|
'guard-for-in': 2,
|
||||||
'no-caller': 2,
|
'no-alert': 2,
|
||||||
'no-case-declarations': 2,
|
'no-caller': 2,
|
||||||
'no-div-regex': 2,
|
'no-case-declarations': 2,
|
||||||
'no-else-return': 2,
|
'no-div-regex': 2,
|
||||||
'no-empty-function': 2,
|
'no-else-return': 2,
|
||||||
'no-empty-pattern': 2,
|
'no-empty-function': 2,
|
||||||
'no-eq-null': 2,
|
'no-empty-pattern': 2,
|
||||||
'no-eval': 2,
|
'no-eq-null': 2,
|
||||||
'no-extend-native': 2,
|
'no-eval': 2,
|
||||||
'no-extra-bind': 2,
|
'no-extend-native': 2,
|
||||||
'no-extra-label': 2,
|
'no-extra-bind': 2,
|
||||||
'no-fallthrough': 2,
|
'no-extra-label': 2,
|
||||||
'no-floating-decimal': 2,
|
'no-fallthrough': 2,
|
||||||
'no-implicit-coercion': [2, {'allow': ['!!', '+']}],
|
'no-floating-decimal': 2,
|
||||||
'no-implicit-globals': 2,
|
'no-implicit-coercion': [2, {'allow': ['!!', '+']}],
|
||||||
'no-implied-eval': 2,
|
'no-implicit-globals': 2,
|
||||||
// 'no-invalid-this': 2,
|
'no-implied-eval': 2,
|
||||||
'no-iterator': 2,
|
// 'no-invalid-this': 2,
|
||||||
'no-labels': 2,
|
'no-iterator': 2,
|
||||||
'no-lone-blocks': 2,
|
'no-labels': 2,
|
||||||
'no-loop-func': 2,
|
'no-lone-blocks': 2,
|
||||||
// 'no-magic-numbers': [2, {
|
'no-loop-func': 2,
|
||||||
// 'ignore': [-1, 0, 1],
|
// 'no-magic-numbers': [2, {
|
||||||
// 'ignoreArrayIndexes': true
|
// 'ignore': [-1, 0, 1],
|
||||||
// }],
|
// 'ignoreArrayIndexes': true
|
||||||
'no-multi-spaces': 2,
|
// }],
|
||||||
'no-multi-str': 2,
|
'no-multi-spaces': 2,
|
||||||
'no-native-reassign': 2,
|
'no-multi-str': 2,
|
||||||
'no-new': 2,
|
'no-native-reassign': 2,
|
||||||
'no-new-func': 2,
|
'no-new': 2,
|
||||||
'no-new-wrappers': 2,
|
'no-new-func': 2,
|
||||||
'no-octal': 2,
|
'no-new-wrappers': 2,
|
||||||
'no-octal-escape': 2,
|
'no-octal': 2,
|
||||||
// 'no-param-reassign': 2,
|
'no-octal-escape': 2,
|
||||||
'no-proto': 2,
|
// 'no-param-reassign': 2,
|
||||||
'no-redeclare': 2,
|
'no-proto': 2,
|
||||||
'no-return-assign': 2,
|
'no-redeclare': 2,
|
||||||
'no-script-url': 2,
|
'no-return-assign': 2,
|
||||||
'no-self-assign': 2,
|
'no-script-url': 2,
|
||||||
'no-self-compare': 2,
|
'no-self-assign': 2,
|
||||||
'no-sequences': 2,
|
'no-self-compare': 2,
|
||||||
'no-throw-literal': 2,
|
'no-sequences': 2,
|
||||||
'no-unmodified-loop-condition': 2,
|
'no-throw-literal': 2,
|
||||||
'no-unused-expressions': 2,
|
'no-unmodified-loop-condition': 2,
|
||||||
'no-unused-labels': 2,
|
'no-unused-expressions': 2,
|
||||||
'no-useless-call': 2,
|
'no-unused-labels': 2,
|
||||||
'no-useless-concat': 2,
|
'no-useless-call': 2,
|
||||||
'no-useless-escape': 2,
|
'no-useless-concat': 2,
|
||||||
'no-void': 2,
|
'no-useless-escape': 2,
|
||||||
'no-warning-comments': 2,
|
'no-void': 2,
|
||||||
'no-with': 2,
|
'no-warning-comments': 2,
|
||||||
'radix': 2,
|
'no-with': 2,
|
||||||
// 'vars-on-top': 2,
|
'radix': 2,
|
||||||
'wrap-iife': 2,
|
// 'vars-on-top': 2,
|
||||||
'yoda': [2, 'always'],
|
'wrap-iife': 2,
|
||||||
|
'yoda': [2, 'always'],
|
||||||
// strict mode
|
|
||||||
'strict': 2,
|
// strict mode
|
||||||
|
'strict': 2,
|
||||||
// variables
|
|
||||||
'init-declarations': 2,
|
// variables
|
||||||
'no-catch-shadow': 2,
|
'init-declarations': 2,
|
||||||
'no-delete-var': 2,
|
'no-catch-shadow': 2,
|
||||||
'no-label-var': 2,
|
'no-delete-var': 2,
|
||||||
'no-restricted-globals': 2,
|
'no-label-var': 2,
|
||||||
'no-shadow': 2,
|
'no-restricted-globals': 2,
|
||||||
'no-shadow-restricted-names': 2,
|
'no-shadow': 2,
|
||||||
'no-undef': 2,
|
'no-shadow-restricted-names': 2,
|
||||||
'no-undef-init': 2,
|
'no-undef': 2,
|
||||||
'no-undefined': 2,
|
'no-undef-init': 2,
|
||||||
'no-unused-vars': 2,
|
'no-undefined': 2,
|
||||||
'no-use-before-define': 2,
|
'no-unused-vars': 2,
|
||||||
|
'no-use-before-define': 2,
|
||||||
// node.js and commonjs
|
|
||||||
'callback-return': 2,
|
// node.js and commonjs
|
||||||
// 'global-require': 2,
|
'callback-return': 2,
|
||||||
'handle-callback-err': 2,
|
// 'global-require': 2,
|
||||||
// 'no-mixed-requires': 2,
|
'handle-callback-err': 2,
|
||||||
'no-new-require': 2,
|
// 'no-mixed-requires': 2,
|
||||||
'no-path-concat': 2,
|
'no-new-require': 2,
|
||||||
'no-process-env': 2,
|
'no-path-concat': 2,
|
||||||
'no-process-exit': 2,
|
'no-process-env': 2,
|
||||||
'no-restricted-modules': 2,
|
'no-process-exit': 2,
|
||||||
// 'no-sync': 2,
|
'no-restricted-modules': 2,
|
||||||
|
// 'no-sync': 2,
|
||||||
// stylistic issues
|
|
||||||
'array-bracket-spacing': 2,
|
// stylistic issues
|
||||||
'block-spacing': [2, 'never'],
|
'array-bracket-spacing': 2,
|
||||||
// 'brace-style': [2, 'allman'],
|
'block-spacing': [2, 'never'],
|
||||||
'camelcase': 2,
|
// 'brace-style': [2, 'allman'],
|
||||||
'comma-dangle': [2, 'never'],
|
'camelcase': 2,
|
||||||
'comma-spacing': 2,
|
'comma-dangle': [2, 'never'],
|
||||||
'comma-style': 2,
|
'comma-spacing': 2,
|
||||||
'computed-property-spacing': 2,
|
'comma-style': 2,
|
||||||
'consistent-this': [2, 'self'],
|
'computed-property-spacing': 2,
|
||||||
'eol-last': 2,
|
'consistent-this': [2, 'self'],
|
||||||
'func-names': [2, 'never'],
|
'eol-last': 2,
|
||||||
// 'func-style': 2,
|
'func-names': [2, 'never'],
|
||||||
'id-blacklist': [2, 'x'],
|
// 'func-style': 2,
|
||||||
'id-length': [2, {'min': 1, 'max': 50}],
|
'id-blacklist': [2, 'x'],
|
||||||
'id-match': 2,
|
'id-length': [2, {'min': 1, 'max': 50}],
|
||||||
'indent': [2, 'tab', {
|
'id-match': 2,
|
||||||
'SwitchCase': 1,
|
'indent': [2, 'tab', {
|
||||||
'VariableDeclarator': {
|
'SwitchCase': 1,
|
||||||
'var': 1,
|
'VariableDeclarator': {
|
||||||
'let': 1,
|
'var': 1,
|
||||||
'const': 1
|
'let': 1,
|
||||||
}
|
'const': 1
|
||||||
}],
|
}
|
||||||
'jsx-quotes': 2,
|
}],
|
||||||
'key-spacing': 2,
|
'jsx-quotes': 2,
|
||||||
'keyword-spacing': 2,
|
'key-spacing': 2,
|
||||||
'linebreak-style': [2, 'unix'],
|
'keyword-spacing': 2,
|
||||||
// 'lines-around-comment': 2,
|
'linebreak-style': [2, 'unix'],
|
||||||
'max-depth': [2, 10],
|
// 'lines-around-comment': 2,
|
||||||
'max-len': [2, 200],
|
'max-depth': [2, 10],
|
||||||
// 'max-lines': 2,
|
'max-len': [2, 200],
|
||||||
'max-nested-callbacks': [2, 5],
|
// 'max-lines': 2,
|
||||||
// 'max-params': 2,
|
'max-nested-callbacks': [2, 5],
|
||||||
// 'max-statements': [2, {'max': 10}, {'ignoreTopLevelFunctions': true}],
|
// 'max-params': 2,
|
||||||
'max-statements-per-line': 2,
|
// 'max-statements': [2, {'max': 10}, {'ignoreTopLevelFunctions': true}],
|
||||||
'new-cap': 2,
|
'max-statements-per-line': 2,
|
||||||
'new-parens': 2,
|
'new-cap': 2,
|
||||||
// 'newline-after-var': 2,
|
'new-parens': 2,
|
||||||
// 'newline-before-return': 2,
|
// 'newline-after-var': 2,
|
||||||
// 'newline-per-chained-call': 2,
|
// 'newline-before-return': 2,
|
||||||
'no-array-constructor': 2,
|
// 'newline-per-chained-call': 2,
|
||||||
'no-bitwise': 2,
|
'no-array-constructor': 2,
|
||||||
'no-continue': 2,
|
'no-bitwise': 2,
|
||||||
// 'no-inline-comments': 2,
|
'no-continue': 2,
|
||||||
// 'no-lonely-if': 2,
|
// 'no-inline-comments': 2,
|
||||||
// 'no-mixed-operators': 2,
|
// 'no-lonely-if': 2,
|
||||||
'no-mixed-spaces-and-tabs': 2,
|
// 'no-mixed-operators': 2,
|
||||||
'no-multiple-empty-lines': [2, {
|
'no-mixed-spaces-and-tabs': 2,
|
||||||
"max": 1,
|
'no-multiple-empty-lines': [2, {
|
||||||
"maxEOF": 1,
|
"max": 1,
|
||||||
"maxBOF": 1
|
"maxEOF": 1,
|
||||||
}],
|
"maxBOF": 1
|
||||||
// 'no-negated-condition': 2,
|
}],
|
||||||
// 'no-nested-ternary': 2,
|
// 'no-negated-condition': 2,
|
||||||
'no-new-object': 2,
|
// 'no-nested-ternary': 2,
|
||||||
'no-plusplus': [2, {
|
'no-new-object': 2,
|
||||||
'allowForLoopAfterthoughts': true
|
'no-plusplus': [2, {
|
||||||
}],
|
'allowForLoopAfterthoughts': true
|
||||||
'no-restricted-syntax': 2,
|
}],
|
||||||
'no-spaced-func': 2,
|
'no-restricted-syntax': 2,
|
||||||
'no-ternary': 0,
|
'no-spaced-func': 2,
|
||||||
'no-trailing-spaces': 2, // disallow trailing whitespace at the end of lines
|
'no-ternary': 0,
|
||||||
// 'no-underscore-dangle': 2, // disallow dangling underscores in identifiers
|
'no-trailing-spaces': 2, // disallow trailing whitespace at the end of lines
|
||||||
'no-unneeded-ternary': 2, // disallow ternary operators when simpler alternatives exist
|
// 'no-underscore-dangle': 2, // disallow dangling underscores in identifiers
|
||||||
'no-whitespace-before-property': 2,
|
'no-unneeded-ternary': 2, // disallow ternary operators when simpler alternatives exist
|
||||||
// 'object-curly-newline': 2,
|
'no-whitespace-before-property': 2,
|
||||||
'object-curly-spacing': [2, 'never'],
|
// 'object-curly-newline': 2,
|
||||||
'object-property-newline': [2, {'allowMultiplePropertiesPerLine': true}],
|
'object-curly-spacing': [2, 'never'],
|
||||||
// 'one-var': [2, {
|
'object-property-newline': [2, {'allowMultiplePropertiesPerLine': true}],
|
||||||
// 'var': 'always',
|
// 'one-var': [2, {
|
||||||
// 'let': 'always',
|
// 'var': 'always',
|
||||||
// 'const': 'always'
|
// 'let': 'always',
|
||||||
// }],
|
// 'const': 'always'
|
||||||
'one-var-declaration-per-line': [2, 'always'],
|
// }],
|
||||||
'operator-assignment': 2,
|
'one-var-declaration-per-line': [2, 'always'],
|
||||||
'operator-linebreak': [2, 'after'],
|
'operator-assignment': 2,
|
||||||
// 'padded-blocks': [2, 'never'],
|
'operator-linebreak': [2, 'after'],
|
||||||
// 'quote-props': [2, 'as-needed'],
|
// 'padded-blocks': [2, 'never'],
|
||||||
'quotes': [2, 'single'],
|
// 'quote-props': [2, 'as-needed'],
|
||||||
'require-jsdoc': 2,
|
'quotes': [2, 'single'],
|
||||||
'semi': [2, 'always'],
|
'require-jsdoc': 2,
|
||||||
'semi-spacing': 2,
|
'semi': [2, 'always'],
|
||||||
// 'sort-vars': 2,
|
'semi-spacing': 2,
|
||||||
'space-before-blocks': 2,
|
// 'sort-vars': 2,
|
||||||
'space-before-function-paren': [2, 'never'],
|
'space-before-blocks': 2,
|
||||||
'space-in-parens': 2,
|
'space-before-function-paren': [2, 'never'],
|
||||||
'space-infix-ops': 2,
|
'space-in-parens': 2,
|
||||||
'space-unary-ops': 2,
|
'space-infix-ops': 2,
|
||||||
'spaced-comment': 2,
|
'space-unary-ops': 2,
|
||||||
'unicode-bom': [2, 'never'],
|
'spaced-comment': 2,
|
||||||
'wrap-regex': 2,
|
'unicode-bom': [2, 'never'],
|
||||||
|
'wrap-regex': 2,
|
||||||
// es6
|
|
||||||
'arrow-body-style': [2, 'as-needed'],
|
// es6
|
||||||
'arrow-parens': 2,
|
'arrow-body-style': [2, 'as-needed'],
|
||||||
'arrow-spacing': 2,
|
'arrow-parens': 2,
|
||||||
'constructor-super': 2,
|
'arrow-spacing': 2,
|
||||||
'generator-star-spacing': 2,
|
'constructor-super': 2,
|
||||||
'no-class-assign': 2,
|
'generator-star-spacing': 2,
|
||||||
'no-confusing-arrow': [2, {'allowParens': true}],
|
'no-class-assign': 2,
|
||||||
'no-const-assign': 2,
|
'no-confusing-arrow': [2, {'allowParens': true}],
|
||||||
'no-dupe-class-members': 2,
|
'no-const-assign': 2,
|
||||||
'no-duplicate-imports': 2,
|
'no-dupe-class-members': 2,
|
||||||
'no-new-symbol': 2,
|
'no-duplicate-imports': 2,
|
||||||
'no-restricted-imports': 2,
|
'no-new-symbol': 2,
|
||||||
'no-this-before-super': 2,
|
'no-restricted-imports': 2,
|
||||||
'no-useless-computed-key': 2,
|
'no-this-before-super': 2,
|
||||||
'no-useless-constructor': 2,
|
'no-useless-computed-key': 2,
|
||||||
'no-useless-rename': 2,
|
'no-useless-constructor': 2,
|
||||||
// 'no-var': 2,
|
'no-useless-rename': 2,
|
||||||
// 'object-shorthand': 2,
|
// 'no-var': 2,
|
||||||
// 'prefer-arrow-callback': 2,
|
// 'object-shorthand': 2,
|
||||||
'prefer-const': 2,
|
// 'prefer-arrow-callback': 2,
|
||||||
// 'prefer-reflect': 2,
|
'prefer-const': 2,
|
||||||
|
// 'prefer-reflect': 2,
|
||||||
'prefer-rest-params': 2,
|
|
||||||
'prefer-spread': 2,
|
'prefer-rest-params': 2,
|
||||||
|
'prefer-spread': 2,
|
||||||
// 'prefer-template': 2,
|
|
||||||
'require-yield': 2,
|
// 'prefer-template': 2,
|
||||||
'rest-spread-spacing': 2,
|
'require-yield': 2,
|
||||||
'sort-imports': 0, // off
|
'rest-spread-spacing': 2,
|
||||||
'template-curly-spacing': 2,
|
'sort-imports': 0, // off
|
||||||
'yield-star-spacing': 2
|
'template-curly-spacing': 2,
|
||||||
}
|
'yield-star-spacing': 2
|
||||||
};
|
}
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
tx pull -a
|
|
||||||
|
|
@ -17,6 +17,46 @@ window.__rlah_clear = () => clearHash();
|
||||||
window.__rlah_data = () => RL_APP_DATA_STORAGE;
|
window.__rlah_data = () => RL_APP_DATA_STORAGE;
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
|
|
||||||
|
const useJsNextBundle = (function() {
|
||||||
|
|
||||||
|
if (!RL_ES6)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* eslint-disable */
|
||||||
|
try {
|
||||||
|
|
||||||
|
eval(`
|
||||||
|
// let + const
|
||||||
|
const x = 5; let y = 4; var z = 4;
|
||||||
|
|
||||||
|
// Arrow Function
|
||||||
|
const f = () => 'rainloop';
|
||||||
|
|
||||||
|
// Default + Rest + Spread
|
||||||
|
const d = (test = 1, ...t) => 'rainloop';
|
||||||
|
d(...[1, 2, 3]);
|
||||||
|
|
||||||
|
// Destructuring
|
||||||
|
let [a, b] = [1, 2];
|
||||||
|
({a, b} = {a: 1, b: 2});
|
||||||
|
|
||||||
|
// Class
|
||||||
|
class Q1 { constructor() {} }
|
||||||
|
|
||||||
|
// Class extends + super
|
||||||
|
class Q2 extends Q1 { constructor() { super() } }
|
||||||
|
|
||||||
|
`);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
/* eslint-enable */
|
||||||
|
}());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} id
|
* @param {string} id
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
|
|
@ -184,7 +224,7 @@ function runApp()
|
||||||
const appData = window.__rlah_data();
|
const appData = window.__rlah_data();
|
||||||
|
|
||||||
if (window.jassl && progressJs && appData && appData.TemplatesLink && appData.LangLink &&
|
if (window.jassl && progressJs && appData && appData.TemplatesLink && appData.LangLink &&
|
||||||
appData.StaticLibJsLink && appData.StaticAppJsLink && appData.StaticEditorJsLink)
|
appData.StaticLibJsLink && appData.StaticAppJsLink && appData.StaticAppJsNextLink && appData.StaticEditorJsLink)
|
||||||
{
|
{
|
||||||
const p = progressJs;
|
const p = progressJs;
|
||||||
|
|
||||||
|
|
@ -214,7 +254,7 @@ function runApp()
|
||||||
Promise.all([libs, common])
|
Promise.all([libs, common])
|
||||||
.then(() => {
|
.then(() => {
|
||||||
p.set(30);
|
p.set(30);
|
||||||
return window.jassl(appData.StaticAppJsLink);
|
return window.jassl(useJsNextBundle ? appData.StaticAppJsNextLink : appData.StaticAppJsLink);
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
p.set(50);
|
p.set(50);
|
||||||
|
|
@ -280,12 +320,17 @@ window.__runBoot = function() {
|
||||||
window.document.location.replace('./?/NoCookie');
|
window.document.location.replace('./?/NoCookie');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const root = document.documentElement;
|
||||||
if ('none' !== getComputedStyle('rl-check', 'display'))
|
if ('none' !== getComputedStyle('rl-check', 'display'))
|
||||||
{
|
{
|
||||||
const root = document.documentElement;
|
|
||||||
root.className += ' no-css';
|
root.className += ' no-css';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (useJsNextBundle)
|
||||||
|
{
|
||||||
|
root.className += ' js-next';
|
||||||
|
}
|
||||||
|
|
||||||
if (includeLayout())
|
if (includeLayout())
|
||||||
{
|
{
|
||||||
includeAppScr(getRainloopBootData());
|
includeAppScr(getRainloopBootData());
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
|
|
||||||
|
import window from 'window';
|
||||||
|
import _ from '_';
|
||||||
|
import ko from 'ko';
|
||||||
|
|
||||||
var
|
var
|
||||||
window = require('window'),
|
|
||||||
_ = require('_'),
|
|
||||||
ko = require('ko'),
|
|
||||||
|
|
||||||
Enums = require('Common/Enums'),
|
Enums = require('Common/Enums'),
|
||||||
Utils = require('Common/Utils'),
|
Utils = require('Common/Utils'),
|
||||||
Links = require('Common/Links'),
|
Links = require('Common/Links'),
|
||||||
|
|
|
||||||
207
gulpfile.js
207
gulpfile.js
|
|
@ -22,20 +22,17 @@ var
|
||||||
zipFile: '',
|
zipFile: '',
|
||||||
zipFileShort: '',
|
zipFileShort: '',
|
||||||
|
|
||||||
paths: {},
|
paths: {}
|
||||||
uglify: {
|
|
||||||
mangle: true,
|
|
||||||
compress: true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_ = require('lodash'),
|
_ = require('lodash'),
|
||||||
fs = require('node-fs'),
|
fs = require('node-fs'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
notifier = require('node-notifier'),
|
notifier = require('node-notifier'),
|
||||||
|
runSequence = require('run-sequence'),
|
||||||
|
|
||||||
webpack = require('webpack'),
|
webpack = require('webpack'),
|
||||||
webpackCfg = require('./webpack.config.js'),
|
webpackCfgBuilder = require('./webpack.config.builder.js'),
|
||||||
|
|
||||||
argv = require('yargs').argv,
|
argv = require('yargs').argv,
|
||||||
|
|
||||||
|
|
@ -53,25 +50,68 @@ var
|
||||||
livereload = require('gulp-livereload'),
|
livereload = require('gulp-livereload'),
|
||||||
eslint = require('gulp-eslint'),
|
eslint = require('gulp-eslint'),
|
||||||
cache = require('gulp-cached'),
|
cache = require('gulp-cached'),
|
||||||
|
ignore = require('gulp-ignore'),
|
||||||
|
filter = require('gulp-filter'),
|
||||||
gutil = require('gulp-util')
|
gutil = require('gulp-util')
|
||||||
;
|
;
|
||||||
|
|
||||||
cfg.community = !argv.pro;
|
cfg.community = !argv.pro;
|
||||||
|
cfg.next = !!argv.next;
|
||||||
|
|
||||||
// webpack
|
// webpack
|
||||||
if (webpackCfg && webpackCfg.output)
|
function initWebpackCfg(wpCfg)
|
||||||
{
|
{
|
||||||
webpackCfg.output.publicPath = cfg.paths.staticJS;
|
if (wpCfg)
|
||||||
|
{
|
||||||
|
if (wpCfg.output)
|
||||||
|
{
|
||||||
|
wpCfg.output.publicPath = cfg.paths.staticJS;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wpCfg.plugins)
|
||||||
|
{
|
||||||
|
wpCfg.plugins.push(new webpack.DefinePlugin({
|
||||||
|
'RL_COMMUNITY': cfg.community,
|
||||||
|
'RL_ES6': cfg.next,
|
||||||
|
'process.env': {
|
||||||
|
NODE_ENV: '"production"'
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return wpCfg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (webpackCfg && webpackCfg.plugins)
|
function webpackCallback(callback)
|
||||||
{
|
{
|
||||||
webpackCfg.plugins.push(new webpack.DefinePlugin({
|
return function(err, stats) {
|
||||||
'RL_COMMUNITY': !!cfg.community,
|
|
||||||
'process.env': {
|
if (err)
|
||||||
NODE_ENV: '"production"'
|
{
|
||||||
|
if (cfg.watch)
|
||||||
|
{
|
||||||
|
webpackError(err);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new gutil.PluginError('webpack', err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}));
|
else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0])
|
||||||
|
{
|
||||||
|
if (cfg.watch)
|
||||||
|
{
|
||||||
|
_.each(stats.compilation.errors, webpackError);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new gutil.PluginError('webpack', stats.compilation.errors[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
callback();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function webpackError(err) {
|
function webpackError(err) {
|
||||||
|
|
@ -95,18 +135,6 @@ function getHead()
|
||||||
return !cfg.community ? head.rainloop : head.agpl;
|
return !cfg.community ? head.rainloop : head.agpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
function regOtherMinTask(sName, sPath, sInc, sOut, sHeader)
|
|
||||||
{
|
|
||||||
gulp.task(sName, function() {
|
|
||||||
return gulp.src(sPath + sInc)
|
|
||||||
.pipe(uglify())
|
|
||||||
.pipe(header(sHeader || ''))
|
|
||||||
.pipe(rename(sOut))
|
|
||||||
.pipe(eol('\n', true))
|
|
||||||
.pipe(gulp.dest(sPath));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function zipDir(sSrcDir, sDestDir, sFileName)
|
function zipDir(sSrcDir, sDestDir, sFileName)
|
||||||
{
|
{
|
||||||
return gulp.src(sSrcDir + '**/*')
|
return gulp.src(sSrcDir + '**/*')
|
||||||
|
|
@ -170,7 +198,6 @@ cfg.paths.momentLocales = 'rainloop/v/' + cfg.devVersion + '/app/localization/mo
|
||||||
|
|
||||||
cfg.paths.less = {
|
cfg.paths.less = {
|
||||||
main: {
|
main: {
|
||||||
name: 'less.css',
|
|
||||||
src: 'dev/Styles/@Main.less',
|
src: 'dev/Styles/@Main.less',
|
||||||
watch: ['dev/Styles/*.less'],
|
watch: ['dev/Styles/*.less'],
|
||||||
options: {
|
options: {
|
||||||
|
|
@ -198,8 +225,7 @@ cfg.paths.css = {
|
||||||
'node_modules/lightgallery/dist/css/lightgallery.min.css',
|
'node_modules/lightgallery/dist/css/lightgallery.min.css',
|
||||||
'node_modules/lightgallery/dist/css/lg-transitions.min.css',
|
'node_modules/lightgallery/dist/css/lg-transitions.min.css',
|
||||||
'node_modules/Progress.js/minified/progressjs.min.css',
|
'node_modules/Progress.js/minified/progressjs.min.css',
|
||||||
'dev/Styles/_progressjs.css',
|
'dev/Styles/_progressjs.css'
|
||||||
cfg.paths.staticCSS + cfg.paths.less.main.name
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
social: {
|
social: {
|
||||||
|
|
@ -278,48 +304,42 @@ cfg.paths.js = {
|
||||||
};
|
};
|
||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
gulp.task('less:main', function() {
|
|
||||||
var less = require('gulp-less');
|
|
||||||
|
|
||||||
return gulp.src(cfg.paths.less.main.src)
|
gulp.task('css:clean', function() {
|
||||||
|
return cleanDir(cfg.paths.staticCSS + '/*.css');
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('css:main', function() {
|
||||||
|
var autoprefixer = require('gulp-autoprefixer'),
|
||||||
|
less = require('gulp-less'),
|
||||||
|
lessFilter = filter('**/*.less', {restore: true}),
|
||||||
|
src = cfg.paths.css.main.src.concat([cfg.paths.less.main.src]);
|
||||||
|
|
||||||
|
return gulp.src(src)
|
||||||
|
.pipe(lessFilter)
|
||||||
.pipe(gulpif(cfg.watch, plumber({errorHandler: notify.onError("Error: <%= error.message %>")})))
|
.pipe(gulpif(cfg.watch, plumber({errorHandler: notify.onError("Error: <%= error.message %>")})))
|
||||||
.pipe(less({
|
.pipe(less({
|
||||||
'paths': cfg.paths.less.main.options.paths
|
'paths': cfg.paths.less.main.options.paths
|
||||||
}))
|
}))
|
||||||
.pipe(rename(cfg.paths.less.main.name))
|
.pipe(lessFilter.restore)
|
||||||
.pipe(eol('\n', true))
|
|
||||||
.pipe(gulp.dest(cfg.paths.staticCSS))
|
|
||||||
.on('error', gutil.log);
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('css:social', function() {
|
|
||||||
var autoprefixer = require('gulp-autoprefixer');
|
|
||||||
return gulp.src(cfg.paths.css.social.src)
|
|
||||||
.pipe(concat(cfg.paths.css.social.name))
|
|
||||||
.pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'Firefox ESR', 'Opera 12.1'))
|
|
||||||
.pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/'))
|
|
||||||
.pipe(eol('\n', true))
|
|
||||||
.pipe(gulp.dest(cfg.paths.staticCSS));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('css:main-begin', ['less:main', 'css:social'], function() {
|
|
||||||
var autoprefixer = require('gulp-autoprefixer');
|
|
||||||
return gulp.src(cfg.paths.css.main.src)
|
|
||||||
.pipe(concat(cfg.paths.css.main.name))
|
.pipe(concat(cfg.paths.css.main.name))
|
||||||
.pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'Firefox ESR', 'Opera 12.1'))
|
.pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'ie 10', 'ie 11', 'Firefox ESR'))
|
||||||
.pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/'))
|
.pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/'))
|
||||||
.pipe(eol('\n', true))
|
.pipe(eol('\n', true))
|
||||||
.pipe(gulp.dest(cfg.paths.staticCSS))
|
.pipe(gulp.dest(cfg.paths.staticCSS))
|
||||||
.pipe(livereload());
|
.pipe(livereload());
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('css:clear-less', ['css:main-begin'], function() {
|
gulp.task('css:social', function() {
|
||||||
return gulp.src(cfg.paths.staticCSS + cfg.paths.less.main.name, {read: false})
|
var autoprefixer = require('gulp-autoprefixer');
|
||||||
.pipe(require('gulp-rimraf')());
|
return gulp.src(cfg.paths.css.social.src)
|
||||||
|
.pipe(concat(cfg.paths.css.social.name))
|
||||||
|
.pipe(autoprefixer('last 3 versions', '> 1%', 'ie 9', 'ie 10', 'ie 11', 'Firefox ESR'))
|
||||||
|
.pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/'))
|
||||||
|
.pipe(eol('\n', true))
|
||||||
|
.pipe(gulp.dest(cfg.paths.staticCSS));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('css:main', ['css:clear-less']);
|
|
||||||
|
|
||||||
gulp.task('css:main:min', ['css:main'], function() {
|
gulp.task('css:main:min', ['css:main'], function() {
|
||||||
var cleanCSS = require('gulp-clean-css');
|
var cleanCSS = require('gulp-clean-css');
|
||||||
return gulp.src(cfg.paths.staticCSS + cfg.paths.css.main.name)
|
return gulp.src(cfg.paths.staticCSS + cfg.paths.css.main.name)
|
||||||
|
|
@ -355,11 +375,11 @@ gulp.task('js:openpgpworker', function() {
|
||||||
.pipe(gulp.dest(cfg.paths.staticMinJS));
|
.pipe(gulp.dest(cfg.paths.staticMinJS));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('js:moment:locales-clear', function() {
|
gulp.task('moment:locales-clear', function() {
|
||||||
return cleanDir('rainloop/v/' + cfg.devVersion + '/app/localization/moment/*.js');
|
return cleanDir('rainloop/v/' + cfg.devVersion + '/app/localization/moment/*.js');
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('js:moment:locales', ['js:moment:locales-clear'], function() {
|
gulp.task('moment:locales', ['moment:locales-clear'], function() {
|
||||||
return gulp.src(cfg.paths.js.moment.locales)
|
return gulp.src(cfg.paths.js.moment.locales)
|
||||||
.pipe(gulp.dest(cfg.paths.momentLocales));
|
.pipe(gulp.dest(cfg.paths.momentLocales));
|
||||||
});
|
});
|
||||||
|
|
@ -383,36 +403,27 @@ gulp.task('js:ckeditor:beautify', function() {
|
||||||
.pipe(gulp.dest(cfg.paths.static + 'ckeditor/'));
|
.pipe(gulp.dest(cfg.paths.static + 'ckeditor/'));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('js:webpack', function(callback) {
|
gulp.task('js:clean', function() {
|
||||||
webpack(webpackCfg, function(err, stats) {
|
return cleanDir(cfg.paths.staticJS + '/**/*.js');
|
||||||
|
|
||||||
if (err)
|
|
||||||
{
|
|
||||||
if (cfg.watch)
|
|
||||||
{
|
|
||||||
webpackError(err);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new gutil.PluginError('webpack', err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0])
|
|
||||||
{
|
|
||||||
if (cfg.watch)
|
|
||||||
{
|
|
||||||
_.each(stats.compilation.errors, webpackError);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new gutil.PluginError('webpack', stats.compilation.errors[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('js:webpack:main', function(callback) {
|
||||||
|
webpack(initWebpackCfg(webpackCfgBuilder()), webpackCallback(callback));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('js:webpack:next', function(callback) {
|
||||||
|
if (cfg.next)
|
||||||
|
{
|
||||||
|
webpack(initWebpackCfg(webpackCfgBuilder(true)), webpackCallback(callback));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('js:webpack', ['js:webpack:main', 'js:webpack:next']);
|
||||||
|
|
||||||
gulp.task('js:app', ['js:webpack'], function() {
|
gulp.task('js:app', ['js:webpack'], function() {
|
||||||
return gulp.src(cfg.paths.staticJS + cfg.paths.js.app.name)
|
return gulp.src(cfg.paths.staticJS + cfg.paths.js.app.name)
|
||||||
.pipe(header(getHead() + '\n'))
|
.pipe(header(getHead() + '\n'))
|
||||||
|
|
@ -432,8 +443,12 @@ gulp.task('js:admin', ['js:webpack'], function() {
|
||||||
// - min
|
// - min
|
||||||
gulp.task('js:min', ['js:app', 'js:admin', 'js:validate'], function() {
|
gulp.task('js:min', ['js:app', 'js:admin', 'js:validate'], function() {
|
||||||
return gulp.src(cfg.paths.staticJS + '*.js')
|
return gulp.src(cfg.paths.staticJS + '*.js')
|
||||||
|
.pipe(ignore.exclude('*.next.js'))
|
||||||
.pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"'))
|
.pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"'))
|
||||||
.pipe(uglify(cfg.uglify))
|
.pipe(uglify({
|
||||||
|
mangle: true,
|
||||||
|
compress: true
|
||||||
|
}))
|
||||||
.pipe(eol('\n', true))
|
.pipe(eol('\n', true))
|
||||||
.pipe(gulp.dest(cfg.paths.staticMinJS))
|
.pipe(gulp.dest(cfg.paths.staticMinJS))
|
||||||
.on('error', gutil.log);
|
.on('error', gutil.log);
|
||||||
|
|
@ -640,10 +655,20 @@ gulp.task('rainloop:owncloud:shortname', ['rainloop:owncloud:zip'], function(cal
|
||||||
gulp.task('rainloop:owncloud:sign', ['rainloop:owncloud:shortname'], signFileTask);
|
gulp.task('rainloop:owncloud:sign', ['rainloop:owncloud:shortname'], signFileTask);
|
||||||
|
|
||||||
// MAIN
|
// MAIN
|
||||||
gulp.task('js:pgp', ['js:openpgp', 'js:openpgpworker']);
|
gulp.task('moment', ['moment:locales']);
|
||||||
gulp.task('js:moment', ['js:moment:locales']);
|
gulp.task('openpgp', ['js:openpgp', 'js:openpgpworker']);
|
||||||
|
|
||||||
|
gulp.task('js', ['js:libs', 'js:min']);
|
||||||
|
gulp.task('css', ['css:min']);
|
||||||
|
|
||||||
|
gulp.task('vendors', ['moment', 'openpgp', 'ckeditor', 'fontastic', 'lightgallery']);
|
||||||
|
|
||||||
|
gulp.task('clean', ['js:clean', 'css:clean']);
|
||||||
|
|
||||||
|
gulp.task('default', function(callback) {
|
||||||
|
runSequence('clean', ['js', 'css', 'vendors'], callback);
|
||||||
|
});
|
||||||
|
|
||||||
gulp.task('default', ['js:libs', 'js:pgp', 'js:moment', 'js:min', 'css:min', 'ckeditor', 'fontastic', 'lightgallery']);
|
|
||||||
gulp.task('fast', ['js:app', 'js:admin', 'css:main']);
|
gulp.task('fast', ['js:app', 'js:admin', 'css:main']);
|
||||||
|
|
||||||
gulp.task('rainloop:start', ['rainloop:copy', 'rainloop:setup']);
|
gulp.task('rainloop:start', ['rainloop:copy', 'rainloop:setup']);
|
||||||
|
|
|
||||||
608
npm-shrinkwrap.json
generated
608
npm-shrinkwrap.json
generated
File diff suppressed because it is too large
Load diff
10
package.json
10
package.json
|
|
@ -53,8 +53,7 @@
|
||||||
"babel-loader": "^6.1.0",
|
"babel-loader": "^6.1.0",
|
||||||
"babel-plugin-transform-runtime": "^6.9.0",
|
"babel-plugin-transform-runtime": "^6.9.0",
|
||||||
"babel-preset-es2015": "^6.13.2",
|
"babel-preset-es2015": "^6.13.2",
|
||||||
"babel-preset-es2015-loose": "^7.0.0",
|
"babel-preset-es2016": "^6.11.3",
|
||||||
"babel-preset-es2015-loose-native-modules": "^1.0.0",
|
|
||||||
"babel-preset-stage-0": "^6.5.0",
|
"babel-preset-stage-0": "^6.5.0",
|
||||||
"babel-runtime": "^6.1.18",
|
"babel-runtime": "^6.1.18",
|
||||||
"es6-promise-polyfill": "^1.2.0",
|
"es6-promise-polyfill": "^1.2.0",
|
||||||
|
|
@ -66,9 +65,11 @@
|
||||||
"gulp-concat-util": "^0.5.5",
|
"gulp-concat-util": "^0.5.5",
|
||||||
"gulp-eol": "^0.1.2",
|
"gulp-eol": "^0.1.2",
|
||||||
"gulp-eslint": "^3.0.1",
|
"gulp-eslint": "^3.0.1",
|
||||||
"gulp-header": "^1.8.7",
|
"gulp-filter": "^4.0.0",
|
||||||
|
"gulp-header": "^1.8.8",
|
||||||
"gulp-if": "^2.0.1",
|
"gulp-if": "^2.0.1",
|
||||||
"gulp-less": "1.3.6",
|
"gulp-ignore": "^2.0.1",
|
||||||
|
"gulp-less": "^3.1.0",
|
||||||
"gulp-livereload": "~3.8.0",
|
"gulp-livereload": "~3.8.0",
|
||||||
"gulp-notify": "~2.2.0",
|
"gulp-notify": "~2.2.0",
|
||||||
"gulp-plumber": "^1.1.0",
|
"gulp-plumber": "^1.1.0",
|
||||||
|
|
@ -105,6 +106,7 @@
|
||||||
"raw-loader": "^0.5.1",
|
"raw-loader": "^0.5.1",
|
||||||
"rifraf": "^2.0.2",
|
"rifraf": "^2.0.2",
|
||||||
"rimraf": "^2.5.4",
|
"rimraf": "^2.5.4",
|
||||||
|
"run-sequence": "^1.2.2",
|
||||||
"simplestatemanager": "^3.1.3",
|
"simplestatemanager": "^3.1.3",
|
||||||
"tinycon": "github:tommoor/tinycon",
|
"tinycon": "github:tommoor/tinycon",
|
||||||
"underscore": "^1.8.3",
|
"underscore": "^1.8.3",
|
||||||
|
|
|
||||||
|
|
@ -1947,6 +1947,7 @@ NewThemeLink IncludeCss LoadingDescriptionEsc TemplatesLink LangLink IncludeBack
|
||||||
|
|
||||||
$aResult['StaticLibJsLink'] = $this->StaticPath('js/'.($bAppJsDebug ? '' : 'min/').'libs.js');
|
$aResult['StaticLibJsLink'] = $this->StaticPath('js/'.($bAppJsDebug ? '' : 'min/').'libs.js');
|
||||||
$aResult['StaticAppJsLink'] = $this->StaticPath('js/'.($bAppJsDebug ? '' : 'min/').($bAdmin ? 'admin' : 'app').'.js');
|
$aResult['StaticAppJsLink'] = $this->StaticPath('js/'.($bAppJsDebug ? '' : 'min/').($bAdmin ? 'admin' : 'app').'.js');
|
||||||
|
$aResult['StaticAppJsNextLink'] = $this->StaticPath('js/'.($bAdmin ? 'admin' : 'app').'.next.js'); // todo min
|
||||||
$aResult['StaticEditorJsLink'] = $this->StaticPath('ckeditor/ckeditor.js');
|
$aResult['StaticEditorJsLink'] = $this->StaticPath('ckeditor/ckeditor.js');
|
||||||
|
|
||||||
$aResult['EditorDefaultType'] = \in_array($aResult['EditorDefaultType'], array('Plain', 'Html', 'HtmlForced', 'PlainForced')) ?
|
$aResult['EditorDefaultType'] = \in_array($aResult['EditorDefaultType'], array('Plain', 'Html', 'HtmlForced', 'PlainForced')) ?
|
||||||
|
|
|
||||||
1
vendors/bootstrap/.code-changed
vendored
Normal file
1
vendors/bootstrap/.code-changed
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
939
vendors/bootstrap/less/navbar.less
vendored
939
vendors/bootstrap/less/navbar.less
vendored
|
|
@ -1,469 +1,470 @@
|
||||||
//
|
//
|
||||||
// Navbars (Redux)
|
// Navbars (Redux)
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
// COMMON STYLES
|
// COMMON STYLES
|
||||||
// -------------
|
// -------------
|
||||||
|
|
||||||
// Base class and wrapper
|
// Base class and wrapper
|
||||||
.navbar {
|
.navbar {
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
margin-bottom: @baseLineHeight;
|
margin-bottom: @baseLineHeight;
|
||||||
color: @navbarText;
|
color: @navbarText;
|
||||||
|
|
||||||
// Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
|
// Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar
|
||||||
*position: relative;
|
*position: relative;
|
||||||
*z-index: 2;
|
*z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inner for background effects
|
// Inner for background effects
|
||||||
// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
|
// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present
|
||||||
.navbar-inner {
|
.navbar-inner {
|
||||||
min-height: @navbarHeight;
|
min-height: @navbarHeight;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
|
#gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground);
|
||||||
border: 1px solid @navbarBorder;
|
border: 1px solid @navbarBorder;
|
||||||
.border-radius(4px);
|
.border-radius(4px);
|
||||||
.box-shadow(0 1px 4px rgba(0,0,0,.065));
|
.box-shadow(0 1px 4px rgba(0,0,0,.065));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set width to auto for default container
|
// Set width to auto for default container
|
||||||
// We then reset it for fixed navbars in the #gridSystem mixin
|
// We then reset it for fixed navbars in the #gridSystem mixin
|
||||||
.navbar .container {
|
.navbar .container {
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Override the default collapsed state
|
// Override the default collapsed state
|
||||||
.nav-collapse.collapse {
|
.nav-collapse.collapse {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Brand: website or project name
|
// Brand: website or project name
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.navbar .brand {
|
.navbar .brand {
|
||||||
float: left;
|
float: left;
|
||||||
display: block;
|
display: block;
|
||||||
// Vertically center the text given @navbarHeight
|
// Vertically center the text given @navbarHeight
|
||||||
padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);
|
padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2);
|
||||||
margin-left: -20px; // negative indent to left-align the text down the page
|
margin-left: -20px; // negative indent to left-align the text down the page
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
color: @navbarBrandColor;
|
color: @navbarBrandColor;
|
||||||
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
|
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
|
||||||
&:hover {
|
&:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Plain text in topbar
|
// Plain text in topbar
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.navbar-text {
|
.navbar-text {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
line-height: @navbarHeight;
|
line-height: @navbarHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Janky solution for now to account for links outside the .nav
|
// Janky solution for now to account for links outside the .nav
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.navbar-link {
|
.navbar-link {
|
||||||
color: @navbarLinkColor;
|
color: @navbarLinkColor;
|
||||||
&:hover {
|
&:hover {
|
||||||
color: @navbarLinkColorHover;
|
color: @navbarLinkColorHover;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dividers in navbar
|
// Dividers in navbar
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.navbar .divider-vertical {
|
.navbar .divider-vertical {
|
||||||
height: @navbarHeight;
|
height: @navbarHeight;
|
||||||
margin: 0 9px;
|
margin: 0 9px;
|
||||||
border-left: 1px solid @navbarBackground;
|
border-left: 1px solid @navbarBackground;
|
||||||
border-right: 1px solid @navbarBackgroundHighlight;
|
border-right: 1px solid @navbarBackgroundHighlight;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Buttons in navbar
|
// Buttons in navbar
|
||||||
// -------------------------
|
// -------------------------
|
||||||
.navbar .btn,
|
.navbar .btn,
|
||||||
.navbar .btn-group {
|
.navbar .btn-group {
|
||||||
.navbarVerticalAlign(28px); // Vertically center in navbar
|
.navbarVerticalAlign(28px); // Vertically center in navbar
|
||||||
}
|
}
|
||||||
.navbar .btn-group .btn {
|
.navbar .btn-group .btn {
|
||||||
margin: 0; // then undo the margin here so we don't accidentally double it
|
margin: 0; // then undo the margin here so we don't accidentally double it
|
||||||
}
|
}
|
||||||
|
|
||||||
// Navbar forms
|
// Navbar forms
|
||||||
.navbar-form {
|
.navbar-form {
|
||||||
margin-bottom: 0; // remove default bottom margin
|
margin-bottom: 0; // remove default bottom margin
|
||||||
.clearfix();
|
.clearfix();
|
||||||
input,
|
input,
|
||||||
select,
|
select,
|
||||||
.radio,
|
.radio,
|
||||||
.checkbox {
|
.checkbox {
|
||||||
.navbarVerticalAlign(30px); // Vertically center in navbar
|
.navbarVerticalAlign(30px); // Vertically center in navbar
|
||||||
}
|
}
|
||||||
input,
|
input,
|
||||||
select,
|
select,
|
||||||
.btn {
|
.btn {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
input[type="image"],
|
input[type="image"],
|
||||||
input[type="checkbox"],
|
input[type="checkbox"],
|
||||||
input[type="radio"] {
|
input[type="radio"] {
|
||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
}
|
}
|
||||||
.input-append,
|
.input-append,
|
||||||
.input-prepend {
|
.input-prepend {
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
|
white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left
|
||||||
input {
|
input {
|
||||||
margin-top: 0; // remove the margin on top since it's on the parent
|
margin-top: 0; // remove the margin on top since it's on the parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Navbar search
|
// Navbar search
|
||||||
.navbar-search {
|
.navbar-search {
|
||||||
position: relative;
|
position: relative;
|
||||||
float: left;
|
float: left;
|
||||||
.navbarVerticalAlign(30px); // Vertically center in navbar
|
.navbarVerticalAlign(30px); // Vertically center in navbar
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
.search-query {
|
.search-query {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding: 4px 14px;
|
padding: 4px 14px;
|
||||||
#font > .sans-serif(13px, normal, 1);
|
#font > .sans-serif(13px, normal, 1);
|
||||||
.border-radius(15px); // redeclare because of specificity of the type attribute
|
.border-radius(15px); // redeclare because of specificity of the type attribute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Static navbar
|
// Static navbar
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
.navbar-static-top {
|
.navbar-static-top {
|
||||||
position: static;
|
position: static;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-bottom: 0; // remove 18px margin for default navbar
|
margin-bottom: 0; // remove 18px margin for default navbar
|
||||||
.navbar-inner {
|
.navbar-inner {
|
||||||
.border-radius(0);
|
.border-radius(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Fixed navbar
|
// Fixed navbar
|
||||||
// -------------------------
|
// -------------------------
|
||||||
|
|
||||||
// Shared (top/bottom) styles
|
// Shared (top/bottom) styles
|
||||||
.navbar-fixed-top,
|
.navbar-fixed-top,
|
||||||
.navbar-fixed-bottom {
|
.navbar-fixed-bottom {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 0;
|
right: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
z-index: @zindexFixedNavbar;
|
z-index: @zindexFixedNavbar;
|
||||||
margin-bottom: 0; // remove 18px margin for default navbar
|
margin-bottom: 0; // remove 18px margin for default navbar
|
||||||
}
|
}
|
||||||
.navbar-fixed-top,
|
.navbar-fixed-top,
|
||||||
.navbar-fixed-bottom,
|
.navbar-fixed-bottom,
|
||||||
.navbar-static-top {
|
.navbar-static-top {
|
||||||
.navbar-inner {
|
.navbar-inner {
|
||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.navbar-fixed-top .navbar-inner,
|
.navbar-fixed-top .navbar-inner,
|
||||||
.navbar-fixed-bottom .navbar-inner {
|
.navbar-fixed-bottom .navbar-inner {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
.border-radius(0);
|
.border-radius(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset container width
|
// Reset container width
|
||||||
// Required here as we reset the width earlier on and the grid mixins don't override early enough
|
// Required here as we reset the width earlier on and the grid mixins don't override early enough
|
||||||
.navbar-static-top .container,
|
.navbar-static-top .container,
|
||||||
.navbar-fixed-top .container,
|
.navbar-fixed-top .container,
|
||||||
.navbar-fixed-bottom .container {
|
.navbar-fixed-bottom .container {
|
||||||
#grid > .core > .span(@gridColumns);
|
// #grid > .core > .span(@gridColumns); // (less 1.3.6 > 3.1.0)
|
||||||
}
|
width: (@gridColumnWidth * @gridColumns) + (@gridGutterWidth * (@gridColumns - 1));
|
||||||
|
}
|
||||||
// Fixed to top
|
|
||||||
.navbar-fixed-top {
|
// Fixed to top
|
||||||
top: 0;
|
.navbar-fixed-top {
|
||||||
}
|
top: 0;
|
||||||
.navbar-fixed-top,
|
}
|
||||||
.navbar-static-top {
|
.navbar-fixed-top,
|
||||||
.navbar-inner {
|
.navbar-static-top {
|
||||||
.box-shadow(~"inset 0 -1px 0 rgba(0,0,0,.1), 0 1px 10px rgba(0,0,0,.1)");
|
.navbar-inner {
|
||||||
}
|
.box-shadow(~"inset 0 -1px 0 rgba(0,0,0,.1), 0 1px 10px rgba(0,0,0,.1)");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Fixed to bottom
|
|
||||||
.navbar-fixed-bottom {
|
// Fixed to bottom
|
||||||
bottom: 0;
|
.navbar-fixed-bottom {
|
||||||
.navbar-inner {
|
bottom: 0;
|
||||||
.box-shadow(~"inset 0 1px 0 rgba(0,0,0,.1), 0 -1px 10px rgba(0,0,0,.1)");
|
.navbar-inner {
|
||||||
}
|
.box-shadow(~"inset 0 1px 0 rgba(0,0,0,.1), 0 -1px 10px rgba(0,0,0,.1)");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// NAVIGATION
|
|
||||||
// ----------
|
// NAVIGATION
|
||||||
|
// ----------
|
||||||
.navbar .nav {
|
|
||||||
position: relative;
|
.navbar .nav {
|
||||||
left: 0;
|
position: relative;
|
||||||
display: block;
|
left: 0;
|
||||||
float: left;
|
display: block;
|
||||||
margin: 0 10px 0 0;
|
float: left;
|
||||||
}
|
margin: 0 10px 0 0;
|
||||||
.navbar .nav.pull-right {
|
}
|
||||||
float: right; // redeclare due to specificity
|
.navbar .nav.pull-right {
|
||||||
}
|
float: right; // redeclare due to specificity
|
||||||
.navbar .nav > li {
|
}
|
||||||
float: left;
|
.navbar .nav > li {
|
||||||
}
|
float: left;
|
||||||
|
}
|
||||||
// Links
|
|
||||||
.navbar .nav > li > a {
|
// Links
|
||||||
float: none;
|
.navbar .nav > li > a {
|
||||||
// Vertically center the text given @navbarHeight
|
float: none;
|
||||||
padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);
|
// Vertically center the text given @navbarHeight
|
||||||
color: @navbarLinkColor;
|
padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2);
|
||||||
text-decoration: none;
|
color: @navbarLinkColor;
|
||||||
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
|
text-decoration: none;
|
||||||
}
|
text-shadow: 0 1px 0 @navbarBackgroundHighlight;
|
||||||
.navbar .nav .dropdown-toggle .caret {
|
}
|
||||||
margin-top: 8px;
|
.navbar .nav .dropdown-toggle .caret {
|
||||||
}
|
margin-top: 8px;
|
||||||
|
}
|
||||||
// Hover
|
|
||||||
.navbar .nav > li > a:focus,
|
// Hover
|
||||||
.navbar .nav > li > a:hover {
|
.navbar .nav > li > a:focus,
|
||||||
background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
|
.navbar .nav > li > a:hover {
|
||||||
color: @navbarLinkColorHover;
|
background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active
|
||||||
text-decoration: none;
|
color: @navbarLinkColorHover;
|
||||||
}
|
text-decoration: none;
|
||||||
|
}
|
||||||
// Active nav items
|
|
||||||
.navbar .nav > .active > a,
|
// Active nav items
|
||||||
.navbar .nav > .active > a:hover,
|
.navbar .nav > .active > a,
|
||||||
.navbar .nav > .active > a:focus {
|
.navbar .nav > .active > a:hover,
|
||||||
color: @navbarLinkColorActive;
|
.navbar .nav > .active > a:focus {
|
||||||
text-decoration: none;
|
color: @navbarLinkColorActive;
|
||||||
background-color: @navbarLinkBackgroundActive;
|
text-decoration: none;
|
||||||
-webkit-box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
background-color: @navbarLinkBackgroundActive;
|
||||||
-moz-box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
-webkit-box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
||||||
box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
-moz-box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
||||||
}
|
box-shadow: inset 0 3px 8px rgba(0,0,0,.125);
|
||||||
|
}
|
||||||
// Navbar button for toggling navbar items in responsive layouts
|
|
||||||
// These definitions need to come after '.navbar .btn'
|
// Navbar button for toggling navbar items in responsive layouts
|
||||||
.navbar .btn-navbar {
|
// These definitions need to come after '.navbar .btn'
|
||||||
display: none;
|
.navbar .btn-navbar {
|
||||||
float: right;
|
display: none;
|
||||||
padding: 7px 10px;
|
float: right;
|
||||||
margin-left: 5px;
|
padding: 7px 10px;
|
||||||
margin-right: 5px;
|
margin-left: 5px;
|
||||||
.buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));
|
margin-right: 5px;
|
||||||
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
|
.buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%));
|
||||||
}
|
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)");
|
||||||
.navbar .btn-navbar .icon-bar {
|
}
|
||||||
display: block;
|
.navbar .btn-navbar .icon-bar {
|
||||||
width: 18px;
|
display: block;
|
||||||
height: 2px;
|
width: 18px;
|
||||||
background-color: #f5f5f5;
|
height: 2px;
|
||||||
.border-radius(1px);
|
background-color: #f5f5f5;
|
||||||
.box-shadow(0 1px 0 rgba(0,0,0,.25));
|
.border-radius(1px);
|
||||||
}
|
.box-shadow(0 1px 0 rgba(0,0,0,.25));
|
||||||
.btn-navbar .icon-bar + .icon-bar {
|
}
|
||||||
margin-top: 3px;
|
.btn-navbar .icon-bar + .icon-bar {
|
||||||
}
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Dropdown menus
|
|
||||||
// --------------
|
// Dropdown menus
|
||||||
|
// --------------
|
||||||
// Menu position and menu carets
|
|
||||||
.navbar .nav > li > .dropdown-menu {
|
// Menu position and menu carets
|
||||||
&:before {
|
.navbar .nav > li > .dropdown-menu {
|
||||||
content: '';
|
&:before {
|
||||||
display: inline-block;
|
content: '';
|
||||||
border-left: 7px solid transparent;
|
display: inline-block;
|
||||||
border-right: 7px solid transparent;
|
border-left: 7px solid transparent;
|
||||||
border-bottom: 7px solid #ccc;
|
border-right: 7px solid transparent;
|
||||||
border-bottom-color: @dropdownBorder;
|
border-bottom: 7px solid #ccc;
|
||||||
position: absolute;
|
border-bottom-color: @dropdownBorder;
|
||||||
top: -7px;
|
position: absolute;
|
||||||
left: 9px;
|
top: -7px;
|
||||||
}
|
left: 9px;
|
||||||
&:after {
|
}
|
||||||
content: '';
|
&:after {
|
||||||
display: inline-block;
|
content: '';
|
||||||
border-left: 6px solid transparent;
|
display: inline-block;
|
||||||
border-right: 6px solid transparent;
|
border-left: 6px solid transparent;
|
||||||
border-bottom: 6px solid @dropdownBackground;
|
border-right: 6px solid transparent;
|
||||||
position: absolute;
|
border-bottom: 6px solid @dropdownBackground;
|
||||||
top: -6px;
|
position: absolute;
|
||||||
left: 10px;
|
top: -6px;
|
||||||
}
|
left: 10px;
|
||||||
}
|
}
|
||||||
// Menu position and menu caret support for dropups via extra dropup class
|
}
|
||||||
.navbar-fixed-bottom .nav > li > .dropdown-menu {
|
// Menu position and menu caret support for dropups via extra dropup class
|
||||||
&:before {
|
.navbar-fixed-bottom .nav > li > .dropdown-menu {
|
||||||
border-top: 7px solid #ccc;
|
&:before {
|
||||||
border-top-color: @dropdownBorder;
|
border-top: 7px solid #ccc;
|
||||||
border-bottom: 0;
|
border-top-color: @dropdownBorder;
|
||||||
bottom: -7px;
|
border-bottom: 0;
|
||||||
top: auto;
|
bottom: -7px;
|
||||||
}
|
top: auto;
|
||||||
&:after {
|
}
|
||||||
border-top: 6px solid @dropdownBackground;
|
&:after {
|
||||||
border-bottom: 0;
|
border-top: 6px solid @dropdownBackground;
|
||||||
bottom: -6px;
|
border-bottom: 0;
|
||||||
top: auto;
|
bottom: -6px;
|
||||||
}
|
top: auto;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Remove background color from open dropdown
|
|
||||||
.navbar .nav li.dropdown.open > .dropdown-toggle,
|
// Remove background color from open dropdown
|
||||||
.navbar .nav li.dropdown.active > .dropdown-toggle,
|
.navbar .nav li.dropdown.open > .dropdown-toggle,
|
||||||
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
|
.navbar .nav li.dropdown.active > .dropdown-toggle,
|
||||||
background-color: @navbarLinkBackgroundActive;
|
.navbar .nav li.dropdown.open.active > .dropdown-toggle {
|
||||||
color: @navbarLinkColorActive;
|
background-color: @navbarLinkBackgroundActive;
|
||||||
}
|
color: @navbarLinkColorActive;
|
||||||
.navbar .nav li.dropdown > .dropdown-toggle .caret {
|
}
|
||||||
border-top-color: @navbarLinkColor;
|
.navbar .nav li.dropdown > .dropdown-toggle .caret {
|
||||||
border-bottom-color: @navbarLinkColor;
|
border-top-color: @navbarLinkColor;
|
||||||
}
|
border-bottom-color: @navbarLinkColor;
|
||||||
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
|
}
|
||||||
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
|
.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
|
||||||
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
|
.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
|
||||||
border-top-color: @navbarLinkColorActive;
|
.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
|
||||||
border-bottom-color: @navbarLinkColorActive;
|
border-top-color: @navbarLinkColorActive;
|
||||||
}
|
border-bottom-color: @navbarLinkColorActive;
|
||||||
|
}
|
||||||
// Right aligned menus need alt position
|
|
||||||
.navbar .pull-right > li > .dropdown-menu,
|
// Right aligned menus need alt position
|
||||||
.navbar .nav > li > .dropdown-menu.pull-right {
|
.navbar .pull-right > li > .dropdown-menu,
|
||||||
left: auto;
|
.navbar .nav > li > .dropdown-menu.pull-right {
|
||||||
right: 0;
|
left: auto;
|
||||||
&:before {
|
right: 0;
|
||||||
left: auto;
|
&:before {
|
||||||
right: 12px;
|
left: auto;
|
||||||
}
|
right: 12px;
|
||||||
&:after {
|
}
|
||||||
left: auto;
|
&:after {
|
||||||
right: 13px;
|
left: auto;
|
||||||
}
|
right: 13px;
|
||||||
.dropdown-menu {
|
}
|
||||||
left: auto;
|
.dropdown-menu {
|
||||||
right: 100%;
|
left: auto;
|
||||||
margin-left: 0;
|
right: 100%;
|
||||||
margin-right: -1px;
|
margin-left: 0;
|
||||||
.border-radius(6px 0 6px 6px);
|
margin-right: -1px;
|
||||||
}
|
.border-radius(6px 0 6px 6px);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Inverted navbar
|
|
||||||
// -------------------------
|
// Inverted navbar
|
||||||
|
// -------------------------
|
||||||
.navbar-inverse {
|
|
||||||
color: @navbarInverseText;
|
.navbar-inverse {
|
||||||
|
color: @navbarInverseText;
|
||||||
.navbar-inner {
|
|
||||||
#gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);
|
.navbar-inner {
|
||||||
border-color: @navbarInverseBorder;
|
#gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground);
|
||||||
}
|
border-color: @navbarInverseBorder;
|
||||||
|
}
|
||||||
.brand,
|
|
||||||
.nav > li > a {
|
.brand,
|
||||||
color: @navbarInverseLinkColor;
|
.nav > li > a {
|
||||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
color: @navbarInverseLinkColor;
|
||||||
&:hover {
|
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||||
color: @navbarInverseLinkColorHover;
|
&:hover {
|
||||||
}
|
color: @navbarInverseLinkColorHover;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.nav > li > a:focus,
|
|
||||||
.nav > li > a:hover {
|
.nav > li > a:focus,
|
||||||
background-color: @navbarInverseLinkBackgroundHover;
|
.nav > li > a:hover {
|
||||||
color: @navbarInverseLinkColorHover;
|
background-color: @navbarInverseLinkBackgroundHover;
|
||||||
}
|
color: @navbarInverseLinkColorHover;
|
||||||
|
}
|
||||||
.nav .active > a,
|
|
||||||
.nav .active > a:hover,
|
.nav .active > a,
|
||||||
.nav .active > a:focus {
|
.nav .active > a:hover,
|
||||||
color: @navbarInverseLinkColorActive;
|
.nav .active > a:focus {
|
||||||
background-color: @navbarInverseLinkBackgroundActive;
|
color: @navbarInverseLinkColorActive;
|
||||||
}
|
background-color: @navbarInverseLinkBackgroundActive;
|
||||||
|
}
|
||||||
// Inline text links
|
|
||||||
.navbar-link {
|
// Inline text links
|
||||||
color: @navbarInverseLinkColor;
|
.navbar-link {
|
||||||
&:hover {
|
color: @navbarInverseLinkColor;
|
||||||
color: @navbarInverseLinkColorHover;
|
&:hover {
|
||||||
}
|
color: @navbarInverseLinkColorHover;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Dividers in navbar
|
|
||||||
.divider-vertical {
|
// Dividers in navbar
|
||||||
border-left-color: @navbarInverseBackground;
|
.divider-vertical {
|
||||||
border-right-color: @navbarInverseBackgroundHighlight;
|
border-left-color: @navbarInverseBackground;
|
||||||
}
|
border-right-color: @navbarInverseBackgroundHighlight;
|
||||||
|
}
|
||||||
// Dropdowns
|
|
||||||
.nav li.dropdown.open > .dropdown-toggle,
|
// Dropdowns
|
||||||
.nav li.dropdown.active > .dropdown-toggle,
|
.nav li.dropdown.open > .dropdown-toggle,
|
||||||
.nav li.dropdown.open.active > .dropdown-toggle {
|
.nav li.dropdown.active > .dropdown-toggle,
|
||||||
background-color: @navbarInverseLinkBackgroundActive;
|
.nav li.dropdown.open.active > .dropdown-toggle {
|
||||||
color: @navbarInverseLinkColorActive;
|
background-color: @navbarInverseLinkBackgroundActive;
|
||||||
}
|
color: @navbarInverseLinkColorActive;
|
||||||
.nav li.dropdown > .dropdown-toggle .caret {
|
}
|
||||||
border-top-color: @navbarInverseLinkColor;
|
.nav li.dropdown > .dropdown-toggle .caret {
|
||||||
border-bottom-color: @navbarInverseLinkColor;
|
border-top-color: @navbarInverseLinkColor;
|
||||||
}
|
border-bottom-color: @navbarInverseLinkColor;
|
||||||
.nav li.dropdown.open > .dropdown-toggle .caret,
|
}
|
||||||
.nav li.dropdown.active > .dropdown-toggle .caret,
|
.nav li.dropdown.open > .dropdown-toggle .caret,
|
||||||
.nav li.dropdown.open.active > .dropdown-toggle .caret {
|
.nav li.dropdown.active > .dropdown-toggle .caret,
|
||||||
border-top-color: @navbarInverseLinkColorActive;
|
.nav li.dropdown.open.active > .dropdown-toggle .caret {
|
||||||
border-bottom-color: @navbarInverseLinkColorActive;
|
border-top-color: @navbarInverseLinkColorActive;
|
||||||
}
|
border-bottom-color: @navbarInverseLinkColorActive;
|
||||||
|
}
|
||||||
// Navbar search
|
|
||||||
.navbar-search {
|
// Navbar search
|
||||||
.search-query {
|
.navbar-search {
|
||||||
color: @white;
|
.search-query {
|
||||||
background-color: @navbarInverseSearchBackground;
|
color: @white;
|
||||||
border-color: @navbarInverseSearchBorder;
|
background-color: @navbarInverseSearchBackground;
|
||||||
.box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
|
border-color: @navbarInverseSearchBorder;
|
||||||
.transition(none);
|
.box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)");
|
||||||
.placeholder(@navbarInverseSearchPlaceholderColor);
|
.transition(none);
|
||||||
|
.placeholder(@navbarInverseSearchPlaceholderColor);
|
||||||
// Focus states (we use .focused since IE7-8 and down doesn't support :focus)
|
|
||||||
&:focus,
|
// Focus states (we use .focused since IE7-8 and down doesn't support :focus)
|
||||||
&.focused {
|
&:focus,
|
||||||
padding: 5px 15px;
|
&.focused {
|
||||||
color: @grayDark;
|
padding: 5px 15px;
|
||||||
text-shadow: 0 1px 0 @white;
|
color: @grayDark;
|
||||||
background-color: @navbarInverseSearchBackgroundFocus;
|
text-shadow: 0 1px 0 @white;
|
||||||
border: 0;
|
background-color: @navbarInverseSearchBackgroundFocus;
|
||||||
.box-shadow(0 0 3px rgba(0,0,0,.15));
|
border: 0;
|
||||||
outline: 0;
|
.box-shadow(0 0 3px rgba(0,0,0,.15));
|
||||||
}
|
outline: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Navbar collapse button
|
|
||||||
.btn-navbar {
|
// Navbar collapse button
|
||||||
.buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));
|
.btn-navbar {
|
||||||
}
|
.buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%));
|
||||||
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
1
vendors/inputosaurus/.code-changed
vendored
Normal file
1
vendors/inputosaurus/.code-changed
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
vendors/jquery-nanoscroller/.code-changed
vendored
Normal file
1
vendors/jquery-nanoscroller/.code-changed
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
1
vendors/keymaster/.code-changed
vendored
Normal file
1
vendors/keymaster/.code-changed
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
125
webpack.config.builder.js
Normal file
125
webpack.config.builder.js
Normal file
|
|
@ -0,0 +1,125 @@
|
||||||
|
|
||||||
|
var
|
||||||
|
path = require('path'),
|
||||||
|
webpack = require('webpack'),
|
||||||
|
devPath = path.resolve(__dirname, 'dev');
|
||||||
|
|
||||||
|
module.exports = function(es6) {
|
||||||
|
return {
|
||||||
|
entry: es6 ? {
|
||||||
|
'app.next': __dirname + '/dev/app.jsx',
|
||||||
|
'admin.next': __dirname + '/dev/admin.jsx'
|
||||||
|
} : {
|
||||||
|
'boot': __dirname + '/dev/boot.jsx',
|
||||||
|
'app': __dirname + '/dev/app.jsx',
|
||||||
|
'admin': __dirname + '/dev/admin.jsx'
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
pathinfo: true,
|
||||||
|
path: __dirname + '/rainloop/v/0.0.0/static/js/',
|
||||||
|
filename: '[name].js',
|
||||||
|
publicPath: 'rainloop/v/0.0.0/static/js/'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new webpack.optimize.OccurrenceOrderPlugin()
|
||||||
|
],
|
||||||
|
resolve: {
|
||||||
|
modules: [devPath, 'node_modules'],
|
||||||
|
extensions: ['', '.js', '.jsx'],
|
||||||
|
alias: {
|
||||||
|
'Opentip': __dirname + '/dev/External/Opentip.js',
|
||||||
|
'ko': __dirname + '/dev/External/ko.js'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
loaders: [
|
||||||
|
{
|
||||||
|
test: /\.jsx?$/,
|
||||||
|
loader: 'babel',
|
||||||
|
include: [devPath],
|
||||||
|
query: !es6 ? {
|
||||||
|
cacheDirectory: true,
|
||||||
|
presets: [['es2015', {loose: true, modules: false}], 'es2016', 'stage-0'],
|
||||||
|
plugins: ['transform-runtime']
|
||||||
|
} : {
|
||||||
|
cacheDirectory: true,
|
||||||
|
plugins: [
|
||||||
|
// es2015
|
||||||
|
["transform-es2015-template-literals", {loose: true}],
|
||||||
|
"transform-es2015-literals",
|
||||||
|
"transform-es2015-function-name",
|
||||||
|
// ["transform-es2015-arrow-functions")],
|
||||||
|
"transform-es2015-block-scoped-functions",
|
||||||
|
// ["transform-es2015-classes", loose],
|
||||||
|
// "transform-es2015-object-super",
|
||||||
|
"transform-es2015-shorthand-properties",
|
||||||
|
"transform-es2015-duplicate-keys",
|
||||||
|
["transform-es2015-computed-properties", {loose: true}],
|
||||||
|
["transform-es2015-for-of", {loose: true}],
|
||||||
|
"transform-es2015-sticky-regex",
|
||||||
|
"transform-es2015-unicode-regex",
|
||||||
|
// "check-es2015-constants",
|
||||||
|
//["transform-es2015-spread", {loose: true}],
|
||||||
|
// "transform-es2015-parameters",
|
||||||
|
//["transform-es2015-destructuring", {loose: true}],
|
||||||
|
// "transform-es2015-block-scoping",
|
||||||
|
"transform-es2015-typeof-symbol",
|
||||||
|
// ["transform-regenerator", { async: false, asyncGenerators: false }],
|
||||||
|
|
||||||
|
// es2016
|
||||||
|
"transform-exponentiation-operator",
|
||||||
|
|
||||||
|
// stage-0
|
||||||
|
"transform-do-expressions",
|
||||||
|
"transform-function-bind",
|
||||||
|
|
||||||
|
// stage-1
|
||||||
|
"transform-class-constructor-call",
|
||||||
|
"transform-export-extensions",
|
||||||
|
|
||||||
|
// stage-2
|
||||||
|
"transform-class-properties",
|
||||||
|
"transform-object-rest-spread",
|
||||||
|
"transform-decorators",
|
||||||
|
|
||||||
|
// stage-3
|
||||||
|
"syntax-trailing-function-commas",
|
||||||
|
"transform-async-to-generator",
|
||||||
|
"transform-exponentiation-operator",
|
||||||
|
|
||||||
|
// runtime
|
||||||
|
'transform-runtime'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(html|css)$/,
|
||||||
|
loader: 'raw',
|
||||||
|
include: [devPath]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.json$/,
|
||||||
|
loader: 'json',
|
||||||
|
include: [devPath]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
externals: {
|
||||||
|
'window': 'window',
|
||||||
|
'progressJs': 'window.progressJs',
|
||||||
|
'moment': 'window.moment',
|
||||||
|
'ifvisible': 'window.ifvisible',
|
||||||
|
'crossroads': 'window.crossroads',
|
||||||
|
'hasher': 'window.hasher',
|
||||||
|
'Jua': 'window.Jua',
|
||||||
|
'Autolinker': 'window.Autolinker',
|
||||||
|
'Tinycon': 'window.Tinycon',
|
||||||
|
'ssm': 'window.ssm',
|
||||||
|
'key': 'window.key',
|
||||||
|
'_': 'window._',
|
||||||
|
'qr': 'window.qr',
|
||||||
|
'Promise': 'window.Promise',
|
||||||
|
'$': 'window.jQuery'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
|
|
||||||
var
|
|
||||||
path = require('path'),
|
|
||||||
webpack = require('webpack'),
|
|
||||||
jsLoaderQuery = {
|
|
||||||
cacheDirectory: true,
|
|
||||||
presets: ['es2015-loose-native-modules', 'stage-0']
|
|
||||||
}
|
|
||||||
;
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
entry: {
|
|
||||||
'boot': __dirname + '/dev/boot.jsx',
|
|
||||||
'app': __dirname + '/dev/app.jsx',
|
|
||||||
'admin': __dirname + '/dev/admin.jsx'
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
pathinfo: true,
|
|
||||||
path: __dirname + '/rainloop/v/0.0.0/static/js/',
|
|
||||||
filename: '[name].js',
|
|
||||||
publicPath: 'rainloop/v/0.0.0/static/js/'
|
|
||||||
},
|
|
||||||
// devtool: "#source-map",
|
|
||||||
plugins: [
|
|
||||||
// new webpack.optimize.CommonsChunkPlugin('common.js'),
|
|
||||||
new webpack.optimize.OccurrenceOrderPlugin()
|
|
||||||
],
|
|
||||||
resolve: {
|
|
||||||
modules: [path.resolve(__dirname, 'dev'), 'node_modules'],
|
|
||||||
extensions: ['', '.js', '.jsx'],
|
|
||||||
alias: {
|
|
||||||
'Opentip': __dirname + '/dev/External/Opentip.js',
|
|
||||||
'ko': __dirname + '/dev/External/ko.js'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
loaders: [
|
|
||||||
{
|
|
||||||
test: /\.(html|css)$/,
|
|
||||||
loader: 'raw',
|
|
||||||
exclude: /(node_modules|bower_components|vendors)/
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.json$/,
|
|
||||||
loader: 'json',
|
|
||||||
exclude: /(node_modules|bower_components|vendors)/
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.jsx$/,
|
|
||||||
loader: 'babel',
|
|
||||||
exclude: /(node_modules|bower_components|vendors)/,
|
|
||||||
query: jsLoaderQuery
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
externals: {
|
|
||||||
'window': 'window',
|
|
||||||
'progressJs': 'window.progressJs',
|
|
||||||
'moment': 'window.moment',
|
|
||||||
'ifvisible': 'window.ifvisible',
|
|
||||||
'crossroads': 'window.crossroads',
|
|
||||||
'hasher': 'window.hasher',
|
|
||||||
'Jua': 'window.Jua',
|
|
||||||
'Autolinker': 'window.Autolinker',
|
|
||||||
'Tinycon': 'window.Tinycon',
|
|
||||||
'ssm': 'window.ssm',
|
|
||||||
'key': 'window.key',
|
|
||||||
'_': 'window._',
|
|
||||||
'qr': 'window.qr',
|
|
||||||
'Promise': 'window.Promise',
|
|
||||||
'$': 'window.jQuery'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue