Obsoleting some old files
Transition to SPA-style client Basis for Mosaico template editor
96
app.js
|
@ -23,23 +23,13 @@ const passport = require('./lib/passport');
|
||||||
const tools = require('./lib/tools');
|
const tools = require('./lib/tools');
|
||||||
const contextHelpers = require('./lib/context-helpers');
|
const contextHelpers = require('./lib/context-helpers');
|
||||||
|
|
||||||
const routes = require('./routes/index');
|
|
||||||
const lists = require('./routes/lists-legacy');
|
|
||||||
//const settings = require('./routes/settings');
|
|
||||||
const getSettings = nodeifyFunction(require('./models/settings').get);
|
const getSettings = nodeifyFunction(require('./models/settings').get);
|
||||||
const campaigns = require('./routes/campaigns');
|
|
||||||
const links = require('./routes/links');
|
|
||||||
const triggers = require('./routes/triggers');
|
|
||||||
const webhooks = require('./routes/webhooks');
|
|
||||||
const archive = require('./routes/archive');
|
|
||||||
const api = require('./routes/api');
|
const api = require('./routes/api');
|
||||||
const editorapi = require('./routes/editorapi');
|
|
||||||
const grapejs = require('./routes/grapejs');
|
|
||||||
const mosaico = require('./routes/mosaico');
|
|
||||||
|
|
||||||
// These are routes for the new React-based client
|
// These are routes for the new React-based client
|
||||||
const reports = require('./routes/reports');
|
const reports = require('./routes/reports');
|
||||||
const subscription = require('./routes/subscription');
|
const subscription = require('./routes/subscription');
|
||||||
|
const mosaico = require('./routes/mosaico');
|
||||||
|
|
||||||
const namespacesRest = require('./routes/rest/namespaces');
|
const namespacesRest = require('./routes/rest/namespaces');
|
||||||
const usersRest = require('./routes/rest/users');
|
const usersRest = require('./routes/rest/users');
|
||||||
|
@ -57,18 +47,32 @@ const templatesRest = require('./routes/rest/templates');
|
||||||
const blacklistRest = require('./routes/rest/blacklist');
|
const blacklistRest = require('./routes/rest/blacklist');
|
||||||
const editorsRest = require('./routes/rest/editors');
|
const editorsRest = require('./routes/rest/editors');
|
||||||
|
|
||||||
const namespacesLegacyIntegration = require('./routes/namespaces-legacy-integration');
|
const root = require('./routes/root');
|
||||||
const usersLegacyIntegration = require('./routes/users-legacy-integration');
|
|
||||||
const accountLegacyIntegration = require('./routes/account-legacy-integration');
|
|
||||||
const reportsLegacyIntegration = require('./routes/reports-legacy-integration');
|
|
||||||
const listsLegacyIntegration = require('./routes/lists-legacy-integration');
|
|
||||||
const templatesLegacyIntegration = require('./routes/templates-legacy-integration');
|
|
||||||
const blacklistLegacyIntegration = require('./routes/blacklist-legacy-integration');
|
|
||||||
|
|
||||||
const interoperableErrors = require('./shared/interoperable-errors');
|
const interoperableErrors = require('./shared/interoperable-errors');
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
function install404Fallback(url) {
|
||||||
|
app.use(url, (req, res, next) => {
|
||||||
|
let err = new Error(_('Not Found'));
|
||||||
|
err.status = 404;
|
||||||
|
next(err);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.use(url + '/*', (req, res, next) => {
|
||||||
|
let err = new Error(_('Not Found'));
|
||||||
|
err.status = 404;
|
||||||
|
next(err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function useWith404Fallback(url, route) {
|
||||||
|
app.use(url, route);
|
||||||
|
install404Fallback(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// view engine setup
|
// view engine setup
|
||||||
app.set('views', path.join(__dirname, 'views'));
|
app.set('views', path.join(__dirname, 'views'));
|
||||||
app.set('view engine', 'hbs');
|
app.set('view engine', 'hbs');
|
||||||
|
@ -83,8 +87,6 @@ app.disable('x-powered-by');
|
||||||
|
|
||||||
hbs.registerPartials(__dirname + '/views/partials');
|
hbs.registerPartials(__dirname + '/views/partials');
|
||||||
hbs.registerPartials(__dirname + '/views/subscription/partials/');
|
hbs.registerPartials(__dirname + '/views/subscription/partials/');
|
||||||
hbs.registerPartials(__dirname + '/views/report-templates/partials/');
|
|
||||||
hbs.registerPartials(__dirname + '/views/reports/partials/');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We need this helper to make sure that we consume flash messages only
|
* We need this helper to make sure that we consume flash messages only
|
||||||
|
@ -136,7 +138,7 @@ handlebarsHelpers.registerHelpers(hbs.handlebars);
|
||||||
|
|
||||||
|
|
||||||
app.use(compression());
|
app.use(compression());
|
||||||
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
|
app.use(favicon(path.join(__dirname, 'client', 'public', 'favicon.ico')));
|
||||||
|
|
||||||
app.use(logger(config.www.log, {
|
app.use(logger(config.www.log, {
|
||||||
stream: {
|
stream: {
|
||||||
|
@ -150,9 +152,9 @@ app.use(logger(config.www.log, {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
useWith404Fallback('/public', express.static(path.join(__dirname, 'client', 'public')));
|
||||||
app.use('/mailtrain', express.static(path.join(__dirname, 'client', 'dist')));
|
useWith404Fallback('/mailtrain', express.static(path.join(__dirname, 'client', 'dist')));
|
||||||
app.use('/locales', express.static(path.join(__dirname, 'client', 'locales')));
|
useWith404Fallback('/locales', express.static(path.join(__dirname, 'client', 'locales')));
|
||||||
|
|
||||||
app.use(session({
|
app.use(session({
|
||||||
store: config.redis.enabled ? new RedisStore(config.redis) : false,
|
store: config.redis.enabled ? new RedisStore(config.redis) : false,
|
||||||
|
@ -251,42 +253,17 @@ app.use((req, res, next) => {
|
||||||
|
|
||||||
|
|
||||||
// Regular endpoints
|
// Regular endpoints
|
||||||
app.use('/', routes);
|
useWith404Fallback('/subscription', subscription);
|
||||||
app.use('/lists', lists);
|
|
||||||
app.use('/campaigns', campaigns);
|
|
||||||
//app.use('/settings', settings);
|
|
||||||
app.use('/links', links);
|
|
||||||
app.use('/triggers', triggers);
|
|
||||||
app.use('/webhooks', webhooks);
|
|
||||||
app.use('/archive', archive);
|
|
||||||
app.use('/editorapi', editorapi);
|
|
||||||
app.use('/grapejs', grapejs);
|
|
||||||
app.use('/mosaico', mosaico);
|
|
||||||
|
|
||||||
|
if (config.reports && config.reports.enabled === true) {
|
||||||
|
useWith404Fallback('/reports', reports);
|
||||||
|
}
|
||||||
|
|
||||||
app.use('/subscription', subscription);
|
useWith404Fallback('/mosaico', mosaico);
|
||||||
|
|
||||||
|
|
||||||
// API endpoints
|
// API endpoints
|
||||||
app.use('/api', api);
|
useWith404Fallback('/api', api);
|
||||||
|
|
||||||
|
|
||||||
if (config.reports && config.reports.enabled === true) {
|
|
||||||
app.use('/reports', reports);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME - this should be removed once we bind the ReactJS client to / */
|
|
||||||
app.use('/users', usersLegacyIntegration);
|
|
||||||
app.use('/namespaces', namespacesLegacyIntegration);
|
|
||||||
app.use('/account', accountLegacyIntegration);
|
|
||||||
app.use('/lists', listsLegacyIntegration);
|
|
||||||
app.use('/templates', templatesLegacyIntegration);
|
|
||||||
app.use('/blacklist', blacklistLegacyIntegration);
|
|
||||||
|
|
||||||
if (config.reports && config.reports.enabled === true) {
|
|
||||||
app.use('/reports', reports);
|
|
||||||
app.use('/reports', reportsLegacyIntegration);
|
|
||||||
}
|
|
||||||
/* ------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------- */
|
||||||
|
|
||||||
// REST endpoints
|
// REST endpoints
|
||||||
|
@ -308,14 +285,9 @@ if (config.reports && config.reports.enabled === true) {
|
||||||
app.use('/rest', reportTemplatesRest);
|
app.use('/rest', reportTemplatesRest);
|
||||||
app.use('/rest', reportsRest);
|
app.use('/rest', reportsRest);
|
||||||
}
|
}
|
||||||
|
install404Fallback('/rest');
|
||||||
|
|
||||||
|
app.use('/', root);
|
||||||
// catch 404 and forward to error handler
|
|
||||||
app.use((req, res, next) => {
|
|
||||||
let err = new Error(_('Not Found'));
|
|
||||||
err.status = 404;
|
|
||||||
next(err);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Error handlers
|
// Error handlers
|
||||||
|
|
45
client/package-lock.json
generated
|
@ -366,7 +366,6 @@
|
||||||
"version": "6.26.0",
|
"version": "6.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
|
||||||
"integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
|
"integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-runtime": "6.26.0",
|
"babel-runtime": "6.26.0",
|
||||||
"babel-types": "6.26.0",
|
"babel-types": "6.26.0",
|
||||||
|
@ -591,8 +590,7 @@
|
||||||
"babel-plugin-syntax-flow": {
|
"babel-plugin-syntax-flow": {
|
||||||
"version": "6.18.0",
|
"version": "6.18.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz",
|
||||||
"integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=",
|
"integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"babel-plugin-syntax-function-bind": {
|
"babel-plugin-syntax-function-bind": {
|
||||||
"version": "6.13.0",
|
"version": "6.13.0",
|
||||||
|
@ -603,8 +601,7 @@
|
||||||
"babel-plugin-syntax-jsx": {
|
"babel-plugin-syntax-jsx": {
|
||||||
"version": "6.18.0",
|
"version": "6.18.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
|
||||||
"integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
|
"integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"babel-plugin-syntax-object-rest-spread": {
|
"babel-plugin-syntax-object-rest-spread": {
|
||||||
"version": "6.13.0",
|
"version": "6.13.0",
|
||||||
|
@ -946,7 +943,6 @@
|
||||||
"version": "6.22.0",
|
"version": "6.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
|
||||||
"integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
|
"integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-syntax-flow": "6.18.0",
|
"babel-plugin-syntax-flow": "6.18.0",
|
||||||
"babel-runtime": "6.26.0"
|
"babel-runtime": "6.26.0"
|
||||||
|
@ -976,7 +972,6 @@
|
||||||
"version": "6.25.0",
|
"version": "6.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
|
||||||
"integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
|
"integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-runtime": "6.26.0"
|
"babel-runtime": "6.26.0"
|
||||||
}
|
}
|
||||||
|
@ -985,7 +980,6 @@
|
||||||
"version": "6.24.1",
|
"version": "6.24.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
|
||||||
"integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
|
"integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-helper-builder-react-jsx": "6.26.0",
|
"babel-helper-builder-react-jsx": "6.26.0",
|
||||||
"babel-plugin-syntax-jsx": "6.18.0",
|
"babel-plugin-syntax-jsx": "6.18.0",
|
||||||
|
@ -996,7 +990,6 @@
|
||||||
"version": "6.22.0",
|
"version": "6.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
|
||||||
"integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
|
"integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-syntax-jsx": "6.18.0",
|
"babel-plugin-syntax-jsx": "6.18.0",
|
||||||
"babel-runtime": "6.26.0"
|
"babel-runtime": "6.26.0"
|
||||||
|
@ -1006,7 +999,6 @@
|
||||||
"version": "6.22.0",
|
"version": "6.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
|
||||||
"integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
|
"integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-syntax-jsx": "6.18.0",
|
"babel-plugin-syntax-jsx": "6.18.0",
|
||||||
"babel-runtime": "6.26.0"
|
"babel-runtime": "6.26.0"
|
||||||
|
@ -1021,6 +1013,14 @@
|
||||||
"regenerator-transform": "0.10.1"
|
"regenerator-transform": "0.10.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"babel-plugin-transform-runtime": {
|
||||||
|
"version": "6.23.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
|
||||||
|
"integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
|
||||||
|
"requires": {
|
||||||
|
"babel-runtime": "6.26.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"babel-plugin-transform-strict-mode": {
|
"babel-plugin-transform-strict-mode": {
|
||||||
"version": "6.24.1",
|
"version": "6.24.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
|
||||||
|
@ -1092,7 +1092,6 @@
|
||||||
"version": "6.23.0",
|
"version": "6.23.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
|
||||||
"integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
|
"integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-transform-flow-strip-types": "6.22.0"
|
"babel-plugin-transform-flow-strip-types": "6.22.0"
|
||||||
}
|
}
|
||||||
|
@ -1101,7 +1100,6 @@
|
||||||
"version": "6.24.1",
|
"version": "6.24.1",
|
||||||
"resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
|
"resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
|
||||||
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
|
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-plugin-syntax-jsx": "6.18.0",
|
"babel-plugin-syntax-jsx": "6.18.0",
|
||||||
"babel-plugin-transform-react-display-name": "6.25.0",
|
"babel-plugin-transform-react-display-name": "6.25.0",
|
||||||
|
@ -1231,7 +1229,6 @@
|
||||||
"version": "6.26.0",
|
"version": "6.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
|
||||||
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
|
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"babel-runtime": "6.26.0",
|
"babel-runtime": "6.26.0",
|
||||||
"esutils": "2.0.2",
|
"esutils": "2.0.2",
|
||||||
|
@ -2167,8 +2164,7 @@
|
||||||
"esutils": {
|
"esutils": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
|
||||||
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
|
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"events": {
|
"events": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
|
@ -3213,6 +3209,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"load-script": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ="
|
||||||
|
},
|
||||||
"loader-runner": {
|
"loader-runner": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
|
||||||
|
@ -4789,6 +4790,17 @@
|
||||||
"prop-types": "15.6.0"
|
"prop-types": "15.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-ckeditor-component": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-ckeditor-component/-/react-ckeditor-component-1.0.7.tgz",
|
||||||
|
"integrity": "sha1-1aVGuDEYRL9VmTwnWSME8dp5vK4=",
|
||||||
|
"requires": {
|
||||||
|
"babel-plugin-transform-runtime": "6.23.0",
|
||||||
|
"babel-preset-react": "6.24.1",
|
||||||
|
"babel-runtime": "6.26.0",
|
||||||
|
"load-script": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"react-day-picker": {
|
"react-day-picker": {
|
||||||
"version": "6.2.1",
|
"version": "6.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-6.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-6.2.1.tgz",
|
||||||
|
@ -5635,8 +5647,7 @@
|
||||||
"to-fast-properties": {
|
"to-fast-properties": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
|
||||||
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
|
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
|
||||||
"dev": true
|
|
||||||
},
|
},
|
||||||
"tough-cookie": {
|
"tough-cookie": {
|
||||||
"version": "2.3.3",
|
"version": "2.3.3",
|
||||||
|
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
|
@ -46,4 +46,12 @@ tbody>tr.selected {
|
||||||
|
|
||||||
.row-actions .row-action:last-child {
|
.row-actions .row-action:last-child {
|
||||||
padding-right: 0px;
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb {
|
||||||
|
margin-bottom: 8px;
|
||||||
}
|
}
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
BIN
client/public/mosaico/fa/fonts/fontawesome-webfont.eot
Normal file
2671
client/public/mosaico/fa/fonts/fontawesome-webfont.svg
Normal file
After Width: | Height: | Size: 434 KiB |
BIN
client/public/mosaico/fa/fonts/fontawesome-webfont.ttf
Normal file
BIN
client/public/mosaico/fa/fonts/fontawesome-webfont.woff
Normal file
BIN
client/public/mosaico/fa/fonts/fontawesome-webfont.woff2
Normal file
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 965 B After Width: | Height: | Size: 965 B |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
395
client/public/mosaico/lang/LICENSE
Normal file
|
@ -0,0 +1,395 @@
|
||||||
|
Attribution 4.0 International
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||||
|
does not provide legal services or legal advice. Distribution of
|
||||||
|
Creative Commons public licenses does not create a lawyer-client or
|
||||||
|
other relationship. Creative Commons makes its licenses and related
|
||||||
|
information available on an "as-is" basis. Creative Commons gives no
|
||||||
|
warranties regarding its licenses, any material licensed under their
|
||||||
|
terms and conditions, or any related information. Creative Commons
|
||||||
|
disclaims all liability for damages resulting from their use to the
|
||||||
|
fullest extent possible.
|
||||||
|
|
||||||
|
Using Creative Commons Public Licenses
|
||||||
|
|
||||||
|
Creative Commons public licenses provide a standard set of terms and
|
||||||
|
conditions that creators and other rights holders may use to share
|
||||||
|
original works of authorship and other material subject to copyright
|
||||||
|
and certain other rights specified in the public license below. The
|
||||||
|
following considerations are for informational purposes only, are not
|
||||||
|
exhaustive, and do not form part of our licenses.
|
||||||
|
|
||||||
|
Considerations for licensors: Our public licenses are
|
||||||
|
intended for use by those authorized to give the public
|
||||||
|
permission to use material in ways otherwise restricted by
|
||||||
|
copyright and certain other rights. Our licenses are
|
||||||
|
irrevocable. Licensors should read and understand the terms
|
||||||
|
and conditions of the license they choose before applying it.
|
||||||
|
Licensors should also secure all rights necessary before
|
||||||
|
applying our licenses so that the public can reuse the
|
||||||
|
material as expected. Licensors should clearly mark any
|
||||||
|
material not subject to the license. This includes other CC-
|
||||||
|
licensed material, or material used under an exception or
|
||||||
|
limitation to copyright. More considerations for licensors:
|
||||||
|
wiki.creativecommons.org/Considerations_for_licensors
|
||||||
|
|
||||||
|
Considerations for the public: By using one of our public
|
||||||
|
licenses, a licensor grants the public permission to use the
|
||||||
|
licensed material under specified terms and conditions. If
|
||||||
|
the licensor's permission is not necessary for any reason--for
|
||||||
|
example, because of any applicable exception or limitation to
|
||||||
|
copyright--then that use is not regulated by the license. Our
|
||||||
|
licenses grant only permissions under copyright and certain
|
||||||
|
other rights that a licensor has authority to grant. Use of
|
||||||
|
the licensed material may still be restricted for other
|
||||||
|
reasons, including because others have copyright or other
|
||||||
|
rights in the material. A licensor may make special requests,
|
||||||
|
such as asking that all changes be marked or described.
|
||||||
|
Although not required by our licenses, you are encouraged to
|
||||||
|
respect those requests where reasonable. More_considerations
|
||||||
|
for the public:
|
||||||
|
wiki.creativecommons.org/Considerations_for_licensees
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Creative Commons Attribution 4.0 International Public License
|
||||||
|
|
||||||
|
By exercising the Licensed Rights (defined below), You accept and agree
|
||||||
|
to be bound by the terms and conditions of this Creative Commons
|
||||||
|
Attribution 4.0 International Public License ("Public License"). To the
|
||||||
|
extent this Public License may be interpreted as a contract, You are
|
||||||
|
granted the Licensed Rights in consideration of Your acceptance of
|
||||||
|
these terms and conditions, and the Licensor grants You such rights in
|
||||||
|
consideration of benefits the Licensor receives from making the
|
||||||
|
Licensed Material available under these terms and conditions.
|
||||||
|
|
||||||
|
|
||||||
|
Section 1 -- Definitions.
|
||||||
|
|
||||||
|
a. Adapted Material means material subject to Copyright and Similar
|
||||||
|
Rights that is derived from or based upon the Licensed Material
|
||||||
|
and in which the Licensed Material is translated, altered,
|
||||||
|
arranged, transformed, or otherwise modified in a manner requiring
|
||||||
|
permission under the Copyright and Similar Rights held by the
|
||||||
|
Licensor. For purposes of this Public License, where the Licensed
|
||||||
|
Material is a musical work, performance, or sound recording,
|
||||||
|
Adapted Material is always produced where the Licensed Material is
|
||||||
|
synched in timed relation with a moving image.
|
||||||
|
|
||||||
|
b. Adapter's License means the license You apply to Your Copyright
|
||||||
|
and Similar Rights in Your contributions to Adapted Material in
|
||||||
|
accordance with the terms and conditions of this Public License.
|
||||||
|
|
||||||
|
c. Copyright and Similar Rights means copyright and/or similar rights
|
||||||
|
closely related to copyright including, without limitation,
|
||||||
|
performance, broadcast, sound recording, and Sui Generis Database
|
||||||
|
Rights, without regard to how the rights are labeled or
|
||||||
|
categorized. For purposes of this Public License, the rights
|
||||||
|
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||||
|
Rights.
|
||||||
|
|
||||||
|
d. Effective Technological Measures means those measures that, in the
|
||||||
|
absence of proper authority, may not be circumvented under laws
|
||||||
|
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||||
|
Treaty adopted on December 20, 1996, and/or similar international
|
||||||
|
agreements.
|
||||||
|
|
||||||
|
e. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||||
|
any other exception or limitation to Copyright and Similar Rights
|
||||||
|
that applies to Your use of the Licensed Material.
|
||||||
|
|
||||||
|
f. Licensed Material means the artistic or literary work, database,
|
||||||
|
or other material to which the Licensor applied this Public
|
||||||
|
License.
|
||||||
|
|
||||||
|
g. Licensed Rights means the rights granted to You subject to the
|
||||||
|
terms and conditions of this Public License, which are limited to
|
||||||
|
all Copyright and Similar Rights that apply to Your use of the
|
||||||
|
Licensed Material and that the Licensor has authority to license.
|
||||||
|
|
||||||
|
h. Licensor means the individual(s) or entity(ies) granting rights
|
||||||
|
under this Public License.
|
||||||
|
|
||||||
|
i. Share means to provide material to the public by any means or
|
||||||
|
process that requires permission under the Licensed Rights, such
|
||||||
|
as reproduction, public display, public performance, distribution,
|
||||||
|
dissemination, communication, or importation, and to make material
|
||||||
|
available to the public including in ways that members of the
|
||||||
|
public may access the material from a place and at a time
|
||||||
|
individually chosen by them.
|
||||||
|
|
||||||
|
j. Sui Generis Database Rights means rights other than copyright
|
||||||
|
resulting from Directive 96/9/EC of the European Parliament and of
|
||||||
|
the Council of 11 March 1996 on the legal protection of databases,
|
||||||
|
as amended and/or succeeded, as well as other essentially
|
||||||
|
equivalent rights anywhere in the world.
|
||||||
|
|
||||||
|
k. You means the individual or entity exercising the Licensed Rights
|
||||||
|
under this Public License. Your has a corresponding meaning.
|
||||||
|
|
||||||
|
|
||||||
|
Section 2 -- Scope.
|
||||||
|
|
||||||
|
a. License grant.
|
||||||
|
|
||||||
|
1. Subject to the terms and conditions of this Public License,
|
||||||
|
the Licensor hereby grants You a worldwide, royalty-free,
|
||||||
|
non-sublicensable, non-exclusive, irrevocable license to
|
||||||
|
exercise the Licensed Rights in the Licensed Material to:
|
||||||
|
|
||||||
|
a. reproduce and Share the Licensed Material, in whole or
|
||||||
|
in part; and
|
||||||
|
|
||||||
|
b. produce, reproduce, and Share Adapted Material.
|
||||||
|
|
||||||
|
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||||
|
Exceptions and Limitations apply to Your use, this Public
|
||||||
|
License does not apply, and You do not need to comply with
|
||||||
|
its terms and conditions.
|
||||||
|
|
||||||
|
3. Term. The term of this Public License is specified in Section
|
||||||
|
6(a).
|
||||||
|
|
||||||
|
4. Media and formats; technical modifications allowed. The
|
||||||
|
Licensor authorizes You to exercise the Licensed Rights in
|
||||||
|
all media and formats whether now known or hereafter created,
|
||||||
|
and to make technical modifications necessary to do so. The
|
||||||
|
Licensor waives and/or agrees not to assert any right or
|
||||||
|
authority to forbid You from making technical modifications
|
||||||
|
necessary to exercise the Licensed Rights, including
|
||||||
|
technical modifications necessary to circumvent Effective
|
||||||
|
Technological Measures. For purposes of this Public License,
|
||||||
|
simply making modifications authorized by this Section 2(a)
|
||||||
|
(4) never produces Adapted Material.
|
||||||
|
|
||||||
|
5. Downstream recipients.
|
||||||
|
|
||||||
|
a. Offer from the Licensor -- Licensed Material. Every
|
||||||
|
recipient of the Licensed Material automatically
|
||||||
|
receives an offer from the Licensor to exercise the
|
||||||
|
Licensed Rights under the terms and conditions of this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
b. No downstream restrictions. You may not offer or impose
|
||||||
|
any additional or different terms or conditions on, or
|
||||||
|
apply any Effective Technological Measures to, the
|
||||||
|
Licensed Material if doing so restricts exercise of the
|
||||||
|
Licensed Rights by any recipient of the Licensed
|
||||||
|
Material.
|
||||||
|
|
||||||
|
6. No endorsement. Nothing in this Public License constitutes or
|
||||||
|
may be construed as permission to assert or imply that You
|
||||||
|
are, or that Your use of the Licensed Material is, connected
|
||||||
|
with, or sponsored, endorsed, or granted official status by,
|
||||||
|
the Licensor or others designated to receive attribution as
|
||||||
|
provided in Section 3(a)(1)(A)(i).
|
||||||
|
|
||||||
|
b. Other rights.
|
||||||
|
|
||||||
|
1. Moral rights, such as the right of integrity, are not
|
||||||
|
licensed under this Public License, nor are publicity,
|
||||||
|
privacy, and/or other similar personality rights; however, to
|
||||||
|
the extent possible, the Licensor waives and/or agrees not to
|
||||||
|
assert any such rights held by the Licensor to the limited
|
||||||
|
extent necessary to allow You to exercise the Licensed
|
||||||
|
Rights, but not otherwise.
|
||||||
|
|
||||||
|
2. Patent and trademark rights are not licensed under this
|
||||||
|
Public License.
|
||||||
|
|
||||||
|
3. To the extent possible, the Licensor waives any right to
|
||||||
|
collect royalties from You for the exercise of the Licensed
|
||||||
|
Rights, whether directly or through a collecting society
|
||||||
|
under any voluntary or waivable statutory or compulsory
|
||||||
|
licensing scheme. In all other cases the Licensor expressly
|
||||||
|
reserves any right to collect such royalties.
|
||||||
|
|
||||||
|
|
||||||
|
Section 3 -- License Conditions.
|
||||||
|
|
||||||
|
Your exercise of the Licensed Rights is expressly made subject to the
|
||||||
|
following conditions.
|
||||||
|
|
||||||
|
a. Attribution.
|
||||||
|
|
||||||
|
1. If You Share the Licensed Material (including in modified
|
||||||
|
form), You must:
|
||||||
|
|
||||||
|
a. retain the following if it is supplied by the Licensor
|
||||||
|
with the Licensed Material:
|
||||||
|
|
||||||
|
i. identification of the creator(s) of the Licensed
|
||||||
|
Material and any others designated to receive
|
||||||
|
attribution, in any reasonable manner requested by
|
||||||
|
the Licensor (including by pseudonym if
|
||||||
|
designated);
|
||||||
|
|
||||||
|
ii. a copyright notice;
|
||||||
|
|
||||||
|
iii. a notice that refers to this Public License;
|
||||||
|
|
||||||
|
iv. a notice that refers to the disclaimer of
|
||||||
|
warranties;
|
||||||
|
|
||||||
|
v. a URI or hyperlink to the Licensed Material to the
|
||||||
|
extent reasonably practicable;
|
||||||
|
|
||||||
|
b. indicate if You modified the Licensed Material and
|
||||||
|
retain an indication of any previous modifications; and
|
||||||
|
|
||||||
|
c. indicate the Licensed Material is licensed under this
|
||||||
|
Public License, and include the text of, or the URI or
|
||||||
|
hyperlink to, this Public License.
|
||||||
|
|
||||||
|
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||||
|
reasonable manner based on the medium, means, and context in
|
||||||
|
which You Share the Licensed Material. For example, it may be
|
||||||
|
reasonable to satisfy the conditions by providing a URI or
|
||||||
|
hyperlink to a resource that includes the required
|
||||||
|
information.
|
||||||
|
|
||||||
|
3. If requested by the Licensor, You must remove any of the
|
||||||
|
information required by Section 3(a)(1)(A) to the extent
|
||||||
|
reasonably practicable.
|
||||||
|
|
||||||
|
4. If You Share Adapted Material You produce, the Adapter's
|
||||||
|
License You apply must not prevent recipients of the Adapted
|
||||||
|
Material from complying with this Public License.
|
||||||
|
|
||||||
|
|
||||||
|
Section 4 -- Sui Generis Database Rights.
|
||||||
|
|
||||||
|
Where the Licensed Rights include Sui Generis Database Rights that
|
||||||
|
apply to Your use of the Licensed Material:
|
||||||
|
|
||||||
|
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||||
|
to extract, reuse, reproduce, and Share all or a substantial
|
||||||
|
portion of the contents of the database;
|
||||||
|
|
||||||
|
b. if You include all or a substantial portion of the database
|
||||||
|
contents in a database in which You have Sui Generis Database
|
||||||
|
Rights, then the database in which You have Sui Generis Database
|
||||||
|
Rights (but not its individual contents) is Adapted Material; and
|
||||||
|
|
||||||
|
c. You must comply with the conditions in Section 3(a) if You Share
|
||||||
|
all or a substantial portion of the contents of the database.
|
||||||
|
|
||||||
|
For the avoidance of doubt, this Section 4 supplements and does not
|
||||||
|
replace Your obligations under this Public License where the Licensed
|
||||||
|
Rights include other Copyright and Similar Rights.
|
||||||
|
|
||||||
|
|
||||||
|
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||||
|
|
||||||
|
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||||
|
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||||
|
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||||
|
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||||
|
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||||
|
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||||
|
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||||
|
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||||
|
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||||
|
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||||
|
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||||
|
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||||
|
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||||
|
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||||
|
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||||
|
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||||
|
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||||
|
|
||||||
|
c. The disclaimer of warranties and limitation of liability provided
|
||||||
|
above shall be interpreted in a manner that, to the extent
|
||||||
|
possible, most closely approximates an absolute disclaimer and
|
||||||
|
waiver of all liability.
|
||||||
|
|
||||||
|
|
||||||
|
Section 6 -- Term and Termination.
|
||||||
|
|
||||||
|
a. This Public License applies for the term of the Copyright and
|
||||||
|
Similar Rights licensed here. However, if You fail to comply with
|
||||||
|
this Public License, then Your rights under this Public License
|
||||||
|
terminate automatically.
|
||||||
|
|
||||||
|
b. Where Your right to use the Licensed Material has terminated under
|
||||||
|
Section 6(a), it reinstates:
|
||||||
|
|
||||||
|
1. automatically as of the date the violation is cured, provided
|
||||||
|
it is cured within 30 days of Your discovery of the
|
||||||
|
violation; or
|
||||||
|
|
||||||
|
2. upon express reinstatement by the Licensor.
|
||||||
|
|
||||||
|
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||||
|
right the Licensor may have to seek remedies for Your violations
|
||||||
|
of this Public License.
|
||||||
|
|
||||||
|
c. For the avoidance of doubt, the Licensor may also offer the
|
||||||
|
Licensed Material under separate terms or conditions or stop
|
||||||
|
distributing the Licensed Material at any time; however, doing so
|
||||||
|
will not terminate this Public License.
|
||||||
|
|
||||||
|
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||||
|
License.
|
||||||
|
|
||||||
|
|
||||||
|
Section 7 -- Other Terms and Conditions.
|
||||||
|
|
||||||
|
a. The Licensor shall not be bound by any additional or different
|
||||||
|
terms or conditions communicated by You unless expressly agreed.
|
||||||
|
|
||||||
|
b. Any arrangements, understandings, or agreements regarding the
|
||||||
|
Licensed Material not stated herein are separate from and
|
||||||
|
independent of the terms and conditions of this Public License.
|
||||||
|
|
||||||
|
|
||||||
|
Section 8 -- Interpretation.
|
||||||
|
|
||||||
|
a. For the avoidance of doubt, this Public License does not, and
|
||||||
|
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||||
|
conditions on any use of the Licensed Material that could lawfully
|
||||||
|
be made without permission under this Public License.
|
||||||
|
|
||||||
|
b. To the extent possible, if any provision of this Public License is
|
||||||
|
deemed unenforceable, it shall be automatically reformed to the
|
||||||
|
minimum extent necessary to make it enforceable. If the provision
|
||||||
|
cannot be reformed, it shall be severed from this Public License
|
||||||
|
without affecting the enforceability of the remaining terms and
|
||||||
|
conditions.
|
||||||
|
|
||||||
|
c. No term or condition of this Public License will be waived and no
|
||||||
|
failure to comply consented to unless expressly agreed to by the
|
||||||
|
Licensor.
|
||||||
|
|
||||||
|
d. Nothing in this Public License constitutes or may be interpreted
|
||||||
|
as a limitation upon, or waiver of, any privileges and immunities
|
||||||
|
that apply to the Licensor or You, including from the legal
|
||||||
|
processes of any jurisdiction or authority.
|
||||||
|
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Creative Commons is not a party to its public
|
||||||
|
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||||
|
its public licenses to material it publishes and in those instances
|
||||||
|
will be considered the “Licensor.” The text of the Creative Commons
|
||||||
|
public licenses is dedicated to the public domain under the CC0 Public
|
||||||
|
Domain Dedication. Except for the limited purpose of indicating that
|
||||||
|
material is shared under a Creative Commons public license or as
|
||||||
|
otherwise permitted by the Creative Commons policies published at
|
||||||
|
creativecommons.org/policies, Creative Commons does not authorize the
|
||||||
|
use of the trademark "Creative Commons" or any other trademark or logo
|
||||||
|
of Creative Commons without its prior written consent including,
|
||||||
|
without limitation, in connection with any unauthorized modifications
|
||||||
|
to any of its public licenses or any other arrangements,
|
||||||
|
understandings, or agreements concerning use of licensed material. For
|
||||||
|
the avoidance of doubt, this paragraph does not form part of the
|
||||||
|
public licenses.
|
||||||
|
|
||||||
|
Creative Commons may be contacted at creativecommons.org.
|
31
client/public/mosaico/lang/README.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
These files are not yet directly used by mosaico.
|
||||||
|
|
||||||
|
You can use ```Mosaico.init({ strings: #thecontentofoneofthisfiles# })``` to initialize mosaico in a given language.
|
||||||
|
|
||||||
|
You can provide new translations to our mosaico translations project on POEditor: https://poeditor.com/join/project/nsFNi6zyOm
|
||||||
|
|
||||||
|
Please note that this just translate the main Mosaico UI: some parts of the UI are defined by the template and their "labels" cannot be translated by the library because each template defines its own labels/texts. So you may want to create your own "translated" templates by altering the "source" html for the template.
|
||||||
|
|
||||||
|
You can even force mosaico to run the internal translation tool for the template labels by defining a [plugin](https://github.com/voidlabs/mosaico/wiki/Mosaico-Plugins):
|
||||||
|
```javascript
|
||||||
|
var plugin = function(vm) {
|
||||||
|
vm.ut = vm.tt;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Please get in touch with us by sending an email to feedback at mosaico.io including your email and the language you'd like to contribute.
|
||||||
|
|
||||||
|
Thanks to translators:
|
||||||
|
|
||||||
|
- it (Italian): Mosaico Team
|
||||||
|
- de (German): Bernhard Weichel
|
||||||
|
- es (Spanish): Carlos Jacobs
|
||||||
|
- fr (French): Jonathan Loriaux
|
||||||
|
- nl (Dutch): Pieter Emeis
|
||||||
|
- sv (Swedish): P-H Westman
|
||||||
|
- sr_RS (Serbian): Đorđe Kolaković
|
||||||
|
- ru (Russian): Andrey ANM
|
||||||
|
|
||||||
|
Sign-up to POEditor if you want to collaborate or suggest changes to the current languages, or provide PR for full new complete languages.
|
||||||
|
|
||||||
|
Language files are contributed and redistributed under the CC-BY-4.0 (Creative Commons - Attribution) license.
|
88
client/public/mosaico/lang/mosaico-en.json
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{
|
||||||
|
"Download": "Download",
|
||||||
|
"Test": "Test",
|
||||||
|
"Save": "Save",
|
||||||
|
"Downloading...": "Downloading...",
|
||||||
|
"Invalid email address": "Invalid email address",
|
||||||
|
"Test email sent...": "Test email sent...",
|
||||||
|
"Unexpected error talking to server: contact us!": "Unexpected error talking to server: contact us!",
|
||||||
|
"Insert here the recipient email address": "Insert here the recipient email address",
|
||||||
|
"Test email address": "Test email address",
|
||||||
|
"Block removed: use undo button to restore it...": "Block removed: use undo button to restore it...",
|
||||||
|
"New block added after the selected one (__pos__)": "New block added after the selected one (__pos__)",
|
||||||
|
"New block added at the model bottom (__pos__)": "New block added at the model bottom (__pos__)",
|
||||||
|
"Undo (#COUNT#)": "Undo (#COUNT#)",
|
||||||
|
"Redo": "Redo",
|
||||||
|
"Selected element has no editable properties": "Selected element has no editable properties",
|
||||||
|
"This style is specific for this block: click here to remove the custom style and revert to the theme value": "This style is specific for this block: click here to remove the custom style and revert to the theme value",
|
||||||
|
"Switch between global and block level styles editing": "Switch between global and block level styles editing",
|
||||||
|
"Undo last operation": "Undo last operation",
|
||||||
|
"Redo last operation": "Redo last operation",
|
||||||
|
"Show image gallery": "Show image gallery",
|
||||||
|
"Gallery": "Gallery",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"Show live preview": "Show live preview",
|
||||||
|
"Large screen": "Large screen",
|
||||||
|
"Tablet": "Tablet",
|
||||||
|
"Smartphone": "Smartphone",
|
||||||
|
"Show preview and send test": "Show preview and send test",
|
||||||
|
"Download template": "Download template",
|
||||||
|
"Save template": "Save template",
|
||||||
|
"Saved model is obsolete": "Saved model is obsolete",
|
||||||
|
"<p>The saved model has been created with a previous, non completely compatible version, of the template</p><p>Some content or style in the model <b>COULD BE LOST</b> if you will <b>save</b></p><p>Contact us for more informations!</p>": "<p>The saved model has been created with a previous, non completely compatible version, of the template</p><p>Some content or style in the model <b>COULD BE LOST</b> if you will <b>save</b></p><p>Contact us for more informations!</p>",
|
||||||
|
"Blocks": "Blocks",
|
||||||
|
"Blocks ready to be added to the template": "Blocks ready to be added to the template",
|
||||||
|
"Content": "Content",
|
||||||
|
"Edit content options": "Edit content options",
|
||||||
|
"Style": "Style",
|
||||||
|
"Edit style options": "Edit style options",
|
||||||
|
"Block __name__": "Block __name__",
|
||||||
|
"Click or drag to add this block to the template": "Click or drag to add this block to the template",
|
||||||
|
"Add": "Add",
|
||||||
|
"By clicking on message parts you will select a block and content options, if any, will show here": "By clicking on message parts you will select a block and content options, if any, will show here",
|
||||||
|
"By clicking on message parts you will select a block and style options, if available, will show here": "By clicking on message parts you will select a block and style options, if available, will show here",
|
||||||
|
"Click or drag files here": "Click or drag files here",
|
||||||
|
"No images uploaded, yet": "No images uploaded, yet",
|
||||||
|
"Show images from the gallery": "Show images from the gallery",
|
||||||
|
"Loading...": "Loading...",
|
||||||
|
"Load gallery": "Load gallery",
|
||||||
|
"Loading gallery...": "Loading gallery...",
|
||||||
|
"The gallery is empty": "The gallery is empty",
|
||||||
|
"Remove image": "Remove image",
|
||||||
|
"Open the image editing tool": "Open the image editing tool",
|
||||||
|
"Upload a new image": "Upload a new image",
|
||||||
|
"Drop an image here": "Drop an image here",
|
||||||
|
"Drop an image here or click the upload button": "Drop an image here or click the upload button",
|
||||||
|
"Drag this image and drop it on any template image placeholder": "Drag this image and drop it on any template image placeholder",
|
||||||
|
"Gallery:": "Gallery:",
|
||||||
|
"Session images": "Session images",
|
||||||
|
"Recents": "Recents",
|
||||||
|
"Remote gallery": "Remote gallery",
|
||||||
|
"Customized block.<ul><li>In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)</li><li>A <span class=\"customStyled\"><span>\"small cube\" </span></span> icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.</li></ul>": "Customized block.<ul><li>In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)</li><li>A <span class=\"customStyled\"><span>\"small cube\" </span></span> icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.</li></ul>",
|
||||||
|
"Drop here blocks from the \"Blocks\" tab": "Drop here blocks from the \"Blocks\" tab",
|
||||||
|
"Drag this handle to move the block": "Drag this handle to move the block",
|
||||||
|
"Move this block upside": "Move this block upside",
|
||||||
|
"Move this block downside": "Move this block downside",
|
||||||
|
"Delete block": "Delete block",
|
||||||
|
"Duplicate block": "Duplicate block",
|
||||||
|
"Switch block variant": "Switch block variant",
|
||||||
|
"Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.",
|
||||||
|
"Drop here": "Drop here",
|
||||||
|
"Unknown error": "Unknown error",
|
||||||
|
"Uploaded bytes exceed file size": "Uploaded bytes exceed file size",
|
||||||
|
"File type not allowed": "File type not allowed",
|
||||||
|
"File is too large": "File is too large",
|
||||||
|
"The uploaded file exceeds the post_max_size directive in php.ini": "The uploaded file exceeds the post_max_size directive in php.ini",
|
||||||
|
"File is too big": "File is too big",
|
||||||
|
"File is too small": "File is too small",
|
||||||
|
"Filetype not allowed": "Filetype not allowed",
|
||||||
|
"Maximum number of files exceeded": "Maximum number of files exceeded",
|
||||||
|
"Image exceeds maximum width": "Image exceeds maximum width",
|
||||||
|
"Image requires a minimum width": "Image requires a minimum width",
|
||||||
|
"Image exceeds maximum height": "Image exceeds maximum height",
|
||||||
|
"Image requires a minimum height": "Image requires a minimum height",
|
||||||
|
"File upload aborted": "File upload aborted",
|
||||||
|
"Failed to resize image": "Failed to resize image",
|
||||||
|
"Unexpected upload error": "Unexpected upload error",
|
||||||
|
"Unexpected error listing files": "Unexpected error listing files"
|
||||||
|
}
|
88
client/public/mosaico/lang/mosaico-it.json
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{
|
||||||
|
"Download": "Download",
|
||||||
|
"Test": "Test",
|
||||||
|
"Save": "Salva",
|
||||||
|
"Downloading...": "Download in corso...",
|
||||||
|
"Invalid email address": "Indirizzo email invalido",
|
||||||
|
"Test email sent...": "Email di test inviata...",
|
||||||
|
"Unexpected error talking to server: contact us!": "Errore di comunicazione con il server: contattaci!",
|
||||||
|
"Insert here the recipient email address": "Inserisci qui l'indirizzo email a cui spedire",
|
||||||
|
"Test email address": "Indirizzo email di test",
|
||||||
|
"Block removed: use undo button to restore it...": "Blocco eliminato: usa il pulsante annulla per recuperarlo...",
|
||||||
|
"New block added after the selected one (__pos__)": "Nuovo blocco aggiunto sotto a quello selezionato (__pos__)",
|
||||||
|
"New block added at the model bottom (__pos__)": "Nuovo blocco aggiunto in fondo al modello (__pos__)",
|
||||||
|
"Undo (#COUNT#)": "Annulla (#COUNT#)",
|
||||||
|
"Redo": "Ripristina",
|
||||||
|
"Selected element has no editable properties": "L'elemento selezionato non fornisce proprietà editabili",
|
||||||
|
"This style is specific for this block: click here to remove the custom style and revert to the theme value": "Questo stile è specifico di questo blocco: clicca qui per annullare lo stile personalizzato",
|
||||||
|
"Switch between global and block level styles editing": "Permette di specificare se si vuole modificare lo stile generale o solamente quello specifico del blocco selezionato",
|
||||||
|
"Undo last operation": "Annulla ultima operazione",
|
||||||
|
"Redo last operation": "Ripeti operazione annullata",
|
||||||
|
"Show image gallery": "Visualizza galleria immagini",
|
||||||
|
"Gallery": "Galleria",
|
||||||
|
"Preview": "Anteprima",
|
||||||
|
"Show live preview": "Mostra anteprima live",
|
||||||
|
"Large screen": "Schermo grande",
|
||||||
|
"Tablet": "Tablet",
|
||||||
|
"Smartphone": "Smartphone",
|
||||||
|
"Show preview and send test": "Visualizza una anteprima e fai un invio di test",
|
||||||
|
"Download template": "Scarica il template",
|
||||||
|
"Save template": "Salva il template",
|
||||||
|
"Saved model is obsolete": "Il modello salvato è obsoleto",
|
||||||
|
"<p>The saved model has been created with a previous, non completely compatible version, of the template</p><p>Some content or style in the model <b>COULD BE LOST</b> if you will <b>save</b></p><p>Contact us for more informations!</p>": "<p>Il modello salvato è stato creato con una versione precedente del template non del tutto compatibile</p><p>Alcuni contenuti o stili del modello <b>POTREBBERO ESSERE PERSI</b> se procederai e deciderai di <b>salvare</b></p><p>Contattaci se hai dei dubbi!</p>",
|
||||||
|
"Blocks": "Blocchi",
|
||||||
|
"Blocks ready to be added to the template": "Elenco contenuti aggiungibili al messaggio",
|
||||||
|
"Content": "Contenuto",
|
||||||
|
"Edit content options": "Modifica opzioni contenuti",
|
||||||
|
"Style": "Stile",
|
||||||
|
"Edit style options": "Modifica opzioni grafiche",
|
||||||
|
"Block __name__": "Blocco __name__",
|
||||||
|
"Click or drag to add this block to the template": "Clicca o trascina per aggiungere al messaggio",
|
||||||
|
"Add": "Aggiungi",
|
||||||
|
"By clicking on message parts you will select a block and content options, if any, will show here": "Cliccando su alcune parti del messaggio selezionerai un blocco e le opzioni contenutistiche, se disponibili, compariranno qui",
|
||||||
|
"By clicking on message parts you will select a block and style options, if available, will show here": "Cliccando su alcune parti del messaggio selezionerai un blocco e le opzioni di stile, se disponibili, compariranno qui",
|
||||||
|
"Click or drag files here": "Clicca o trascina i file qui!",
|
||||||
|
"No images uploaded, yet": "Non hai ancora caricato immagini",
|
||||||
|
"Show images from the gallery": "Visualizza le immagini caricate nella tua area",
|
||||||
|
"Loading...": "Caricamento...",
|
||||||
|
"Load gallery": "Carica galleria",
|
||||||
|
"Loading gallery...": "Caricamento in corso...",
|
||||||
|
"The gallery is empty": "Nessuna immagine nella galleria",
|
||||||
|
"Remove image": "Rimuovi immagine",
|
||||||
|
"Open the image editing tool": "Avvia strumento modifica immagine",
|
||||||
|
"Upload a new image": "Carica una nuova immagine",
|
||||||
|
"Drop an image here": "Trascina una immagine qui",
|
||||||
|
"Drop an image here or click the upload button": "Trascina una immagine qui o clicca sul pulsante di caricamento",
|
||||||
|
"Drag this image and drop it on any template image placeholder": "Trascina questa immagine sulla posizione in cui vuoi inserirla",
|
||||||
|
"Gallery:": "Galleria:",
|
||||||
|
"Session images": "Immagini di sessione",
|
||||||
|
"Recents": "Recenti",
|
||||||
|
"Remote gallery": "Galleria remota",
|
||||||
|
"Customized block.<ul><li>In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)</li><li>A <span class=\"customStyled\"><span>\"small cube\" </span></span> icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.</li></ul>": "Blocco personalizzato.<ul><li>In questa modalità se cambi una proprietà verrà modificata solamente per questo specifico blocco (invece che per tutti i blocchi della stessa sezione).</li><li>Per segnalare la personalizzazione apparirà l'icona <span class=\"customStyled\"><span> del \"cubetto\"</span></span> a fianco delle proprietà. Cliccando questa icona tornerai al valore comune.</li></ul>",
|
||||||
|
"Drop here blocks from the \"Blocks\" tab": "Trascina qui i blocchi dalla scheda 'Blocchi'",
|
||||||
|
"Drag this handle to move the block": "Trascina per spostare il blocco altrove",
|
||||||
|
"Move this block upside": "Sposta il blocco in su",
|
||||||
|
"Move this block downside": "Sposta il blocco in giu",
|
||||||
|
"Delete block": "Elimina blocco",
|
||||||
|
"Duplicate block": "Duplica blocco",
|
||||||
|
"Switch block variant": "Cambia variante blocco",
|
||||||
|
"Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Colori Tema,Colori Standard,Colori Web,Colori Tema,Torna alla tavolozza,Storico,storico colori vuoto",
|
||||||
|
"Drop here": "Rilascia qui",
|
||||||
|
"Unknown error": "Errore sconosciuto durante il caricamento",
|
||||||
|
"Uploaded bytes exceed file size": "Errore inaspettato durante il caricamento (uploaded bytes)",
|
||||||
|
"File type not allowed": "Tipo di file non supportato",
|
||||||
|
"File is too large": "File troppo grande",
|
||||||
|
"The uploaded file exceeds the post_max_size directive in php.ini": "Il server ha rifiutato il file perchè troppo grande (post_max_size)",
|
||||||
|
"File is too big": "Il server ha rifiutato il file perchè troppo grande (max_file_size)",
|
||||||
|
"File is too small": "Il server ha rifiutato il file perchè troppo piccolo",
|
||||||
|
"Filetype not allowed": "Il server ha rifiutato questo tipo di file",
|
||||||
|
"Maximum number of files exceeded": "Numero massimo di file caricabili superato (max_number_of_files)",
|
||||||
|
"Image exceeds maximum width": "L'Immagine supera la larghezza massima consentita",
|
||||||
|
"Image requires a minimum width": "L'Immagine non è abbastanza larga",
|
||||||
|
"Image exceeds maximum height": "L'Immagine supera l'altezza massima consentita",
|
||||||
|
"Image requires a minimum height": "L'Immagine non è abbastanza alta",
|
||||||
|
"File upload aborted": "Caricamento del file annullato",
|
||||||
|
"Failed to resize image": "Impossibile ridimensionare l'immagine",
|
||||||
|
"Unexpected upload error": "Errore inaspettato durante il caricamento",
|
||||||
|
"Unexpected error listing files": "Errore inaspettato caricando la lista dei file"
|
||||||
|
}
|
88
client/public/mosaico/lang/mosaico-ru.json
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{
|
||||||
|
"Download": "Скачать",
|
||||||
|
"Test": "Тест",
|
||||||
|
"Save": "Сохранить",
|
||||||
|
"Downloading...": "Загрузка...",
|
||||||
|
"Invalid email address": "Неверный адрес электронной почты",
|
||||||
|
"Test email sent...": "Сообщение для проверки электронной почты отправлено...",
|
||||||
|
"Unexpected error talking to server: contact us!": "Неожиданная ошибка при общении с сервером: свяжитесь с нами!",
|
||||||
|
"Insert here the recipient email address": "Вставьте здесь адрес электронной почты получателя",
|
||||||
|
"Test email address": "Проверить адрес электронной почты",
|
||||||
|
"Block removed: use undo button to restore it...": "Блок удален: используйте кнопку отмены, чтобы восстановить его...",
|
||||||
|
"New block added after the selected one (__pos__)": "Новый блок, добавленный после выбранного (__pos__)",
|
||||||
|
"New block added at the model bottom (__pos__)": "Новый блок, добавленный в нижней части модели (__pos__)",
|
||||||
|
"Undo (#COUNT#)": "Отменить (#COUNT#)",
|
||||||
|
"Redo": "Повторить",
|
||||||
|
"Selected element has no editable properties": "Выбранный элемент не имеет редактируемых свойств",
|
||||||
|
"This style is specific for this block: click here to remove the custom style and revert to the theme value": "Этот стиль специфичен для данного блока: щелкните здесь, чтобы удалить пользовательский стиль и вернуться к значению темы",
|
||||||
|
"Switch between global and block level styles editing": "Переключение между глобальным и блочным стилями редактирования",
|
||||||
|
"Undo last operation": "Отменить последнюю операцию",
|
||||||
|
"Redo last operation": "Повторить последнюю операцию",
|
||||||
|
"Show image gallery": "Показать галерею изображений",
|
||||||
|
"Gallery": "Галерея",
|
||||||
|
"Preview": "Просмотр",
|
||||||
|
"Show live preview": "Показать интерактивный просмотр",
|
||||||
|
"Large screen": "Большой экран",
|
||||||
|
"Tablet": "Планшет",
|
||||||
|
"Smartphone": "Смартфон",
|
||||||
|
"Show preview and send test": "Показать предварительный просмотр и отправить тест",
|
||||||
|
"Download template": "Загрузить шаблон",
|
||||||
|
"Save template": "Сохранить шаблон",
|
||||||
|
"Saved model is obsolete": "Сохраненная модель устарела",
|
||||||
|
"<p>The saved model has been created with a previous, non completely compatible version, of the template</p><p>Some content or style in the model <b>COULD BE LOST</b> if you will <b>save</b></p><p>Contact us for more informations!</p>": "<p>Сохраненная модель была создана с помощью предыдущей, не полностью совместимой версии шаблона</p><p>Часть содержимого или стиль в модели<b>МОЖЕТ БЫТЬ ПОТЕРЯНО</b> если вы <b>сохраните</b></p><p>Свяжитесь с нами для получения дополнительных сведений!</p>",
|
||||||
|
"Blocks": "Блоки",
|
||||||
|
"Blocks ready to be added to the template": "Блоки готовы к добавлению в шаблон",
|
||||||
|
"Content": "Содержимое",
|
||||||
|
"Edit content options": "Изменить параметры содержимого",
|
||||||
|
"Style": "Стиль",
|
||||||
|
"Edit style options": "Изменить параметры стиля",
|
||||||
|
"Block __name__": "Блок __name__",
|
||||||
|
"Click or drag to add this block to the template": "Щелкните или перетащите, чтобы добавить этот блок в шаблон",
|
||||||
|
"Add": "Добавить",
|
||||||
|
"By clicking on message parts you will select a block and content options, if any, will show here": "При нажатии на части сообщения будут выбраны параметры блока и содержимого, если таковые будут здесь отображаться.",
|
||||||
|
"By clicking on message parts you will select a block and style options, if available, will show here": "При нажатии на части сообщения будут выбраны параметры блока и стиля, если они доступны, будут показаны здесь",
|
||||||
|
"Click or drag files here": "Щелкните или перетащите сюда файлы",
|
||||||
|
"No images uploaded, yet": "Нет загруженных изображений",
|
||||||
|
"Show images from the gallery": "Показать изображения из галереи",
|
||||||
|
"Loading...": "Загрузка...",
|
||||||
|
"Load gallery": "Загрузить галерею",
|
||||||
|
"Loading gallery...": "Загрузка галереи...",
|
||||||
|
"The gallery is empty": "Галерея пуста",
|
||||||
|
"Remove image": "Удалить изображение",
|
||||||
|
"Open the image editing tool": "Открыть инструмент редактирования изображений",
|
||||||
|
"Upload a new image": "Загрузить новое изображение",
|
||||||
|
"Drop an image here": "Бросьте изображение здесь",
|
||||||
|
"Drop an image here or click the upload button": "Бросьте изображение здесь или нажмите кнопку загрузки",
|
||||||
|
"Drag this image and drop it on any template image placeholder": "Перетащите это изображение и поместите его на любой заполнитель шаблона",
|
||||||
|
"Gallery:": "Галерея:",
|
||||||
|
"Session images": "Изображения сеанса",
|
||||||
|
"Recents": "Недавние",
|
||||||
|
"Remote gallery": "Удаленная галерея",
|
||||||
|
"Customized block.<ul><li>In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)</li><li>A <span class=\"customStyled\"><span>\"small cube\" </span></span> icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.</li></ul>": "Настраиваемый блок.<ul><li>В этом статусе изменения свойств будут специфичны для текущего блока (вместо того, чтобы быть глобальными для всех блоков в том же разделе).</li><li>Значок<span class=\"customStyled\"><span>\"маленький куб\"</span></span>рядом с объектом отметит настройку. Нажав на этот значок, значение свойства вернется к значению, определенному для раздела.</li></ul>",
|
||||||
|
"Drop here blocks from the \"Blocks\" tab": "Бросьте сюда блоки с вкладки \"блоки\"",
|
||||||
|
"Drag this handle to move the block": "Перетащите этот маркер для перемещения блока",
|
||||||
|
"Move this block upside": "Переместите этот блок вверх",
|
||||||
|
"Move this block downside": "Переместите этот блок вниз",
|
||||||
|
"Delete block": "Удалить блок",
|
||||||
|
"Duplicate block": "Дублировать блок",
|
||||||
|
"Switch block variant": "Переключение варианта блока",
|
||||||
|
"Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Тематические цвета, Стандартные цвета, Цветовая гамма, Цвет темы, Назад в палитру, История, История еще не существует.",
|
||||||
|
"Drop here": "Бросьте сюда",
|
||||||
|
"Unknown error": "Неизвестная ошибка",
|
||||||
|
"Uploaded bytes exceed file size": "Загруженные байты превышают размер файла",
|
||||||
|
"File type not allowed": "Тип файла не разрешен",
|
||||||
|
"File is too large": "Слишком большой файл",
|
||||||
|
"The uploaded file exceeds the post_max_size directive in php.ini": "Выгруженный файл post_max_size превышает директиву в php.ini",
|
||||||
|
"File is too big": "Слишком большой файл",
|
||||||
|
"File is too small": "Файл слишком мал",
|
||||||
|
"Filetype not allowed": "Тип файла не разрешен",
|
||||||
|
"Maximum number of files exceeded": "Превышение максимального числа файлов",
|
||||||
|
"Image exceeds maximum width": "Размер изображения превышает максимальную ширину",
|
||||||
|
"Image requires a minimum width": "Размер изображения превышает минимальную ширину",
|
||||||
|
"Image exceeds maximum height": "Размер изображения превышает максимальную длину",
|
||||||
|
"Image requires a minimum height": "Размер изображения превышает минимальную длину",
|
||||||
|
"File upload aborted": "Выгрузка файла прервана",
|
||||||
|
"Failed to resize image": "Не удалось изменить размер изображения.",
|
||||||
|
"Unexpected upload error": "Неожиданная ошибка загрузки",
|
||||||
|
"Unexpected error listing files": "Неожиданная ошибка при просмотре файлов"
|
||||||
|
}
|
88
client/public/mosaico/lang/mosaico-sr_RS.json
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{
|
||||||
|
"Download": "Preuzmi",
|
||||||
|
"Test": "Testiraj",
|
||||||
|
"Save": "Sačuvaj",
|
||||||
|
"Downloading...": "Preuzimanje...",
|
||||||
|
"Invalid email address": "Nevažeća email adresa",
|
||||||
|
"Test email sent...": "Test email poslat...",
|
||||||
|
"Unexpected error talking to server: contact us!": "Neočekivana greška pri komunikaciji sa serverom: kontaktirajte nas!",
|
||||||
|
"Insert here the recipient email address": "Unesite email primaoca",
|
||||||
|
"Test email address": "Testiraj email adresu",
|
||||||
|
"Block removed: use undo button to restore it...": "Blok uklonjen: Koristite dugme Povrati da povratite blok...",
|
||||||
|
"New block added after the selected one (__pos__)": "Novi blok dodat nakon odabranog (__pos__)",
|
||||||
|
"New block added at the model bottom (__pos__)": "Novi blok dodat na dnu (__pos__)",
|
||||||
|
"Undo (#COUNT#)": "Povrati (#COUNT#)",
|
||||||
|
"Redo": "Ponovo izvrši",
|
||||||
|
"Selected element has no editable properties": "Odabrani element nema svojstva koja se mogu urediti",
|
||||||
|
"This style is specific for this block: click here to remove the custom style and revert to the theme value": "Stil je specifičan za ovaj blok: Kliknite ovde da izmenite prilagođeni stil i povratite na podrazumevanu vrednost teme",
|
||||||
|
"Switch between global and block level styles editing": "Uređenje globalnog stila ili stila na nivou bloka",
|
||||||
|
"Undo last operation": "Povrati poslednju operaciju",
|
||||||
|
"Redo last operation": "Ponovo izvrši poslednju operaciju",
|
||||||
|
"Show image gallery": "Prikaži galeriju sa slikama",
|
||||||
|
"Gallery": "Galerija",
|
||||||
|
"Preview": "Pregledaj",
|
||||||
|
"Show live preview": "Prikaži pregled uživo",
|
||||||
|
"Large screen": "Veliki ekran",
|
||||||
|
"Tablet": "Tablet",
|
||||||
|
"Smartphone": "Smartfon",
|
||||||
|
"Show preview and send test": "Prikaži pregled i pošalji test",
|
||||||
|
"Download template": "Preuzmi šablon",
|
||||||
|
"Save template": "Sačuvaj šablon",
|
||||||
|
"Saved model is obsolete": "Sačuvani model je prevaziđen",
|
||||||
|
"<p>The saved model has been created with a previous, non completely compatible version, of the template</p><p>Some content or style in the model <b>COULD BE LOST</b> if you will <b>save</b></p><p>Contact us for more informations!</p>": "<p>Sačuvani model je kreiran sa prethodnom verzijom šablona, koja nije u potpunosti kompatibilna</p><p>Neki sadržaj ili stil u modelu<b>MOŽE BITI IZGUBLJEN</b>ukoliko <b>sačuvate model</b><p>Kontaktirajte nas za više informacija!</p>",
|
||||||
|
"Blocks": "Blokovi",
|
||||||
|
"Blocks ready to be added to the template": "Blokovi koji su spremni za dodavanje u šablo",
|
||||||
|
"Content": "Sadržaj",
|
||||||
|
"Edit content options": "Uredi opcije sadržaja",
|
||||||
|
"Style": "Stil",
|
||||||
|
"Edit style options": "Uredi opcije stila",
|
||||||
|
"Block __name__": "Blok __ime__",
|
||||||
|
"Click or drag to add this block to the template": "Kliknite ili prevucite ovaj blok u šablon",
|
||||||
|
"Add": "Dodaj",
|
||||||
|
"By clicking on message parts you will select a block and content options, if any, will show here": "Klikom na delove poruke ćete izabrati blok i opcije za sadržaj, ukoliko postoje će biti prikazane ovde",
|
||||||
|
"By clicking on message parts you will select a block and style options, if available, will show here": "Klikom na delove poruke ćete izabrati blok i opcije za stil će, ukoliko postoje biti prikazane ovde",
|
||||||
|
"Click or drag files here": "Kliknite ili prevucite fajlove ovde",
|
||||||
|
"No images uploaded, yet": "Još uvek nema postavljenih slika",
|
||||||
|
"Show images from the gallery": "Prikaži slike iz galerije",
|
||||||
|
"Loading...": "Učitavanje...",
|
||||||
|
"Load gallery": "Učitaj galeriju",
|
||||||
|
"Loading gallery...": "Učitavanje galerije...",
|
||||||
|
"The gallery is empty": "Galerija je prazna",
|
||||||
|
"Remove image": "Ukloni sliku",
|
||||||
|
"Open the image editing tool": "Otvori alatku za uređivanje slika",
|
||||||
|
"Upload a new image": "Postavi novu sliku",
|
||||||
|
"Drop an image here": "Ubaci sliku ovde",
|
||||||
|
"Drop an image here or click the upload button": "Ubacite sliku ovde ili kliknite na dugme za postavljanje",
|
||||||
|
"Drag this image and drop it on any template image placeholder": "Prevucite ovu sliku na poziciju za sliku u šablonu",
|
||||||
|
"Gallery:": "Galerija:",
|
||||||
|
"Session images": "Slike sesije",
|
||||||
|
"Recents": "Poslednje",
|
||||||
|
"Remote gallery": "Odaljena galerija",
|
||||||
|
"Customized block.<ul><li>In this status changes to properties will be specific to the current block (instead of being global to all blocks in the same section)</li><li>A <span class=\"customStyled\"><span>\"small cube\" </span></span> icon beside the property will mark the customization. By clicking this icon the property value will be reverted to the value defined for the section.</li></ul>": "Prilagođeni blok. <ul><li>U ovom statusu će promene svojstava biti direktno vezane za trenutno odabrani blok (umesto da se vezuju za sve blokove u istoj sekciji)</li><li>Ikonica<span class=\"customStyled\"> <span>\"mala kocka\"</span></span> pored svojstva će obeležiti prilagođavanje. Klikom na ovu ikonicu, svojstvo će biti vraćeno na podrazumevanu vrednost definisanu u sekciji.</li></ul>",
|
||||||
|
"Drop here blocks from the \"Blocks\" tab": "Ovde možete dodati blokove sa \"Blok\" kartice",
|
||||||
|
"Drag this handle to move the block": "Pomeranjem ove ručice možete menjati poziciju bloka",
|
||||||
|
"Move this block upside": "Pomerite ovaj blok gore",
|
||||||
|
"Move this block downside": "Pomerite ovaj blok dole",
|
||||||
|
"Delete block": "Obriši blok",
|
||||||
|
"Duplicate block": "Dupliraj blok",
|
||||||
|
"Switch block variant": "Promeni varijantu bloka",
|
||||||
|
"Theme Colors,Standard Colors,Web Colors,Theme Colors,Back to Palette,History,No history yet.": "Boje teme, standardne boje, web boje, boje teme, nazad na paletu, prethodno, bez zapisa o prethodnim akcijama.",
|
||||||
|
"Drop here": "Prevucite ovde",
|
||||||
|
"Unknown error": "Nepoznata greška",
|
||||||
|
"Uploaded bytes exceed file size": "Postavljeni fajl je veći od očekivane veličine",
|
||||||
|
"File type not allowed": "Tip fajla nije podržan",
|
||||||
|
"File is too large": "Fajl je prevelik",
|
||||||
|
"The uploaded file exceeds the post_max_size directive in php.ini": "Postavljeni fajl je veći od post_max_size direktive u php.ini",
|
||||||
|
"File is too big": "Fajl je prevelik",
|
||||||
|
"File is too small": "Fajl je premali",
|
||||||
|
"Filetype not allowed": "Tip fajla nije podržan",
|
||||||
|
"Maximum number of files exceeded": "Više od maksimalnog broja fajlova",
|
||||||
|
"Image exceeds maximum width": "Slika je šira od maksimalne podržane širine",
|
||||||
|
"Image requires a minimum width": "Slika mora imati minimalnu širinu",
|
||||||
|
"Image exceeds maximum height": "Slika ima veću visinu od maksimalne podržane",
|
||||||
|
"Image requires a minimum height": "Slika mora imati minimalnu visinu",
|
||||||
|
"File upload aborted": "Postavljanje fajla prekinuto",
|
||||||
|
"Failed to resize image": "Izmena dimenzija slike nije uspela",
|
||||||
|
"Unexpected upload error": "Neočekivana greška pri postavljanju",
|
||||||
|
"Unexpected error listing files": "Neočekivana greška pri listingu fajlova"
|
||||||
|
}
|
5
client/public/mosaico/mosaico-material.min.css
vendored
Normal file
1
client/public/mosaico/mosaico-material.min.css.map
Normal file
5
client/public/mosaico/mosaico.min.css
vendored
Normal file
1
client/public/mosaico/mosaico.min.css.map
Normal file
6688
client/public/mosaico/mosaico.min.js
vendored
Normal file
147
client/public/mosaico/mosaico.min.js.map
Normal file
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 215 B |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 169 B After Width: | Height: | Size: 169 B |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 858 B After Width: | Height: | Size: 858 B |
Before Width: | Height: | Size: 876 B After Width: | Height: | Size: 876 B |
Before Width: | Height: | Size: 967 B After Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 996 B |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 939 B After Width: | Height: | Size: 939 B |
Before Width: | Height: | Size: 972 B After Width: | Height: | Size: 972 B |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1,011 B After Width: | Height: | Size: 1,011 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
2
client/public/mosaico/vendor/canvas-to-blob.min.js
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
!function(t){"use strict";var e=t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype,o=t.Blob&&function(){try{return Boolean(new Blob)}catch(t){return!1}}(),n=o&&t.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(t){return!1}}(),r=t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,a=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,i=(o||r)&&t.atob&&t.ArrayBuffer&&t.Uint8Array&&function(t){var e,i,l,u,c,f,b,d,B;if(!(e=t.match(a)))throw new Error("invalid data URI");for(i=e[2]?e[1]:"text/plain"+(e[3]||";charset=US-ASCII"),l=!!e[4],u=t.slice(e[0].length),c=l?atob(u):decodeURIComponent(u),f=new ArrayBuffer(c.length),b=new Uint8Array(f),d=0;d<c.length;d+=1)b[d]=c.charCodeAt(d);return o?new Blob([n?b:f],{type:i}):((B=new r).append(f),B.getBlob(i))};t.HTMLCanvasElement&&!e.toBlob&&(e.mozGetAsFile?e.toBlob=function(t,o,n){var r=this;setTimeout(function(){t(n&&e.toDataURL&&i?i(r.toDataURL(o,n)):r.mozGetAsFile("blob",o))})}:e.toDataURL&&i&&(e.toBlob=function(t,e,o){var n=this;setTimeout(function(){t(i(n.toDataURL(e,o)))})})),"function"==typeof define&&define.amd?define(function(){return i}):"object"==typeof module&&module.exports?module.exports=i:t.dataURLtoBlob=i}(window);
|
||||||
|
//# sourceMappingURL=canvas-to-blob.min.js.map
|
215
client/public/mosaico/vendor/jquery-migrate.min.js
vendored
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
/*! jQuery Migrate v3.0.1 | (c) jQuery Foundation and other contributors | jquery.org/license */
|
||||||
|
|
||||||
|
void 0 === jQuery.migrateMute && (jQuery.migrateMute = !0), function(e) {
|
||||||
|
"function" == typeof define && define.amd ? define([ "jquery" ], window, e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery"), window) : e(jQuery, window);
|
||||||
|
}(function(e, t) {
|
||||||
|
"use strict";
|
||||||
|
function r(r) {
|
||||||
|
var n = t.console;
|
||||||
|
o[r] || (o[r] = !0, e.migrateWarnings.push(r), n && n.warn && !e.migrateMute && (n.warn("JQMIGRATE: " + r),
|
||||||
|
e.migrateTrace && n.trace && n.trace()));
|
||||||
|
}
|
||||||
|
function n(e, t, n, a) {
|
||||||
|
Object.defineProperty(e, t, {
|
||||||
|
configurable: !0,
|
||||||
|
enumerable: !0,
|
||||||
|
get: function() {
|
||||||
|
return r(a), n;
|
||||||
|
},
|
||||||
|
set: function(e) {
|
||||||
|
r(a), n = e;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function a(e, t, n, a) {
|
||||||
|
e[t] = function() {
|
||||||
|
return r(a), n.apply(this, arguments);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
e.migrateVersion = "3.0.1", function() {
|
||||||
|
var r = /^[12]\./;
|
||||||
|
t.console && t.console.log && (e && !r.test(e.fn.jquery) || t.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),
|
||||||
|
e.migrateWarnings && t.console.log("JQMIGRATE: Migrate plugin loaded multiple times"),
|
||||||
|
t.console.log("JQMIGRATE: Migrate is installed" + (e.migrateMute ? "" : " with logging active") + ", version " + e.migrateVersion));
|
||||||
|
}();
|
||||||
|
var o = {};
|
||||||
|
e.migrateWarnings = [], void 0 === e.migrateTrace && (e.migrateTrace = !0), e.migrateReset = function() {
|
||||||
|
o = {}, e.migrateWarnings.length = 0;
|
||||||
|
}, "BackCompat" === t.document.compatMode && r("jQuery is not compatible with Quirks Mode");
|
||||||
|
var i = e.fn.init, s = e.isNumeric, u = e.find, c = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/, l = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
|
||||||
|
e.fn.init = function(e) {
|
||||||
|
var t = Array.prototype.slice.call(arguments);
|
||||||
|
return "string" == typeof e && "#" === e && (r("jQuery( '#' ) is not a valid selector"),
|
||||||
|
t[0] = []), i.apply(this, t);
|
||||||
|
}, e.fn.init.prototype = e.fn, e.find = function(e) {
|
||||||
|
var n = Array.prototype.slice.call(arguments);
|
||||||
|
if ("string" == typeof e && c.test(e)) try {
|
||||||
|
t.document.querySelector(e);
|
||||||
|
} catch (a) {
|
||||||
|
e = e.replace(l, function(e, t, r, n) {
|
||||||
|
return "[" + t + r + '"' + n + '"]';
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
t.document.querySelector(e), r("Attribute selector with '#' must be quoted: " + n[0]),
|
||||||
|
n[0] = e;
|
||||||
|
} catch (e) {
|
||||||
|
r("Attribute selector with '#' was not fixed: " + n[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return u.apply(this, n);
|
||||||
|
};
|
||||||
|
var d;
|
||||||
|
for (d in u) Object.prototype.hasOwnProperty.call(u, d) && (e.find[d] = u[d]);
|
||||||
|
e.fn.size = function() {
|
||||||
|
return r("jQuery.fn.size() is deprecated and removed; use the .length property"),
|
||||||
|
this.length;
|
||||||
|
}, e.parseJSON = function() {
|
||||||
|
return r("jQuery.parseJSON is deprecated; use JSON.parse"), JSON.parse.apply(null, arguments);
|
||||||
|
}, e.isNumeric = function(t) {
|
||||||
|
var n = s(t), a = function(t) {
|
||||||
|
var r = t && t.toString();
|
||||||
|
return !e.isArray(t) && r - parseFloat(r) + 1 >= 0;
|
||||||
|
}(t);
|
||||||
|
return n !== a && r("jQuery.isNumeric() should not be called on constructed objects"),
|
||||||
|
a;
|
||||||
|
}, a(e, "holdReady", e.holdReady, "jQuery.holdReady is deprecated"), a(e, "unique", e.uniqueSort, "jQuery.unique is deprecated; use jQuery.uniqueSort"),
|
||||||
|
n(e.expr, "filters", e.expr.pseudos, "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"),
|
||||||
|
n(e.expr, ":", e.expr.pseudos, "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos");
|
||||||
|
var p = e.ajax;
|
||||||
|
e.ajax = function() {
|
||||||
|
var e = p.apply(this, arguments);
|
||||||
|
return e.promise && (a(e, "success", e.done, "jQXHR.success is deprecated and removed"),
|
||||||
|
a(e, "error", e.fail, "jQXHR.error is deprecated and removed"), a(e, "complete", e.always, "jQXHR.complete is deprecated and removed")),
|
||||||
|
e;
|
||||||
|
};
|
||||||
|
var f = e.fn.removeAttr, y = e.fn.toggleClass, m = /\S+/g;
|
||||||
|
e.fn.removeAttr = function(t) {
|
||||||
|
var n = this;
|
||||||
|
return e.each(t.match(m), function(t, a) {
|
||||||
|
e.expr.match.bool.test(a) && (r("jQuery.fn.removeAttr no longer sets boolean properties: " + a),
|
||||||
|
n.prop(a, !1));
|
||||||
|
}), f.apply(this, arguments);
|
||||||
|
}, e.fn.toggleClass = function(t) {
|
||||||
|
return void 0 !== t && "boolean" != typeof t ? y.apply(this, arguments) : (r("jQuery.fn.toggleClass( boolean ) is deprecated"),
|
||||||
|
this.each(function() {
|
||||||
|
var r = this.getAttribute && this.getAttribute("class") || "";
|
||||||
|
r && e.data(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : e.data(this, "__className__") || "");
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
var h = !1;
|
||||||
|
e.swap && e.each([ "height", "width", "reliableMarginRight" ], function(t, r) {
|
||||||
|
var n = e.cssHooks[r] && e.cssHooks[r].get;
|
||||||
|
n && (e.cssHooks[r].get = function() {
|
||||||
|
var e;
|
||||||
|
return h = !0, e = n.apply(this, arguments), h = !1, e;
|
||||||
|
});
|
||||||
|
}), e.swap = function(e, t, n, a) {
|
||||||
|
var o, i, s = {};
|
||||||
|
h || r("jQuery.swap() is undocumented and deprecated");
|
||||||
|
for (i in t) s[i] = e.style[i], e.style[i] = t[i];
|
||||||
|
o = n.apply(e, a || []);
|
||||||
|
for (i in t) e.style[i] = s[i];
|
||||||
|
return o;
|
||||||
|
};
|
||||||
|
var g = e.data;
|
||||||
|
e.data = function(t, n, a) {
|
||||||
|
var o;
|
||||||
|
if (n && "object" == typeof n && 2 === arguments.length) {
|
||||||
|
o = e.hasData(t) && g.call(this, t);
|
||||||
|
var i = {};
|
||||||
|
for (var s in n) s !== e.camelCase(s) ? (r("jQuery.data() always sets/gets camelCased names: " + s),
|
||||||
|
o[s] = n[s]) : i[s] = n[s];
|
||||||
|
return g.call(this, t, i), n;
|
||||||
|
}
|
||||||
|
return n && "string" == typeof n && n !== e.camelCase(n) && (o = e.hasData(t) && g.call(this, t)) && n in o ? (r("jQuery.data() always sets/gets camelCased names: " + n),
|
||||||
|
arguments.length > 2 && (o[n] = a), o[n]) : g.apply(this, arguments);
|
||||||
|
};
|
||||||
|
var v = e.Tween.prototype.run, j = function(e) {
|
||||||
|
return e;
|
||||||
|
};
|
||||||
|
e.Tween.prototype.run = function() {
|
||||||
|
e.easing[this.easing].length > 1 && (r("'jQuery.easing." + this.easing.toString() + "' should use only one argument"),
|
||||||
|
e.easing[this.easing] = j), v.apply(this, arguments);
|
||||||
|
}, e.fx.interval = e.fx.interval || 13, t.requestAnimationFrame && n(e.fx, "interval", e.fx.interval, "jQuery.fx.interval is deprecated");
|
||||||
|
var Q = e.fn.load, b = e.event.add, w = e.event.fix;
|
||||||
|
e.event.props = [], e.event.fixHooks = {}, n(e.event.props, "concat", e.event.props.concat, "jQuery.event.props.concat() is deprecated and removed"),
|
||||||
|
e.event.fix = function(t) {
|
||||||
|
var n, a = t.type, o = this.fixHooks[a], i = e.event.props;
|
||||||
|
if (i.length) for (r("jQuery.event.props are deprecated and removed: " + i.join()); i.length; ) e.event.addProp(i.pop());
|
||||||
|
if (o && !o._migrated_ && (o._migrated_ = !0, r("jQuery.event.fixHooks are deprecated and removed: " + a),
|
||||||
|
(i = o.props) && i.length)) for (;i.length; ) e.event.addProp(i.pop());
|
||||||
|
return n = w.call(this, t), o && o.filter ? o.filter(n, t) : n;
|
||||||
|
}, e.event.add = function(e, n) {
|
||||||
|
return e === t && "load" === n && "complete" === t.document.readyState && r("jQuery(window).on('load'...) called after load event occurred"),
|
||||||
|
b.apply(this, arguments);
|
||||||
|
}, e.each([ "load", "unload", "error" ], function(t, n) {
|
||||||
|
e.fn[n] = function() {
|
||||||
|
var e = Array.prototype.slice.call(arguments, 0);
|
||||||
|
return "load" === n && "string" == typeof e[0] ? Q.apply(this, e) : (r("jQuery.fn." + n + "() is deprecated"),
|
||||||
|
e.splice(0, 0, n), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e),
|
||||||
|
this));
|
||||||
|
};
|
||||||
|
}), e.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(t, n) {
|
||||||
|
e.fn[n] = function(e, t) {
|
||||||
|
return r("jQuery.fn." + n + "() event shorthand is deprecated"), arguments.length > 0 ? this.on(n, null, e, t) : this.trigger(n);
|
||||||
|
};
|
||||||
|
}), e(function() {
|
||||||
|
e(t.document).triggerHandler("ready");
|
||||||
|
}), e.event.special.ready = {
|
||||||
|
setup: function() {
|
||||||
|
this === t.document && r("'ready' event is deprecated");
|
||||||
|
}
|
||||||
|
}, e.fn.extend({
|
||||||
|
bind: function(e, t, n) {
|
||||||
|
return r("jQuery.fn.bind() is deprecated"), this.on(e, null, t, n);
|
||||||
|
},
|
||||||
|
unbind: function(e, t) {
|
||||||
|
return r("jQuery.fn.unbind() is deprecated"), this.off(e, null, t);
|
||||||
|
},
|
||||||
|
delegate: function(e, t, n, a) {
|
||||||
|
return r("jQuery.fn.delegate() is deprecated"), this.on(t, e, n, a);
|
||||||
|
},
|
||||||
|
undelegate: function(e, t, n) {
|
||||||
|
return r("jQuery.fn.undelegate() is deprecated"), 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n);
|
||||||
|
},
|
||||||
|
hover: function(e, t) {
|
||||||
|
return r("jQuery.fn.hover() is deprecated"), this.on("mouseenter", e).on("mouseleave", t || e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var x = e.fn.offset;
|
||||||
|
e.fn.offset = function() {
|
||||||
|
var n, a = this[0], o = {
|
||||||
|
top: 0,
|
||||||
|
left: 0
|
||||||
|
};
|
||||||
|
return a && a.nodeType ? (n = (a.ownerDocument || t.document).documentElement, e.contains(n, a) ? x.apply(this, arguments) : (r("jQuery.fn.offset() requires an element connected to a document"),
|
||||||
|
o)) : (r("jQuery.fn.offset() requires a valid DOM element"), o);
|
||||||
|
};
|
||||||
|
var k = e.param;
|
||||||
|
e.param = function(t, n) {
|
||||||
|
var a = e.ajaxSettings && e.ajaxSettings.traditional;
|
||||||
|
return void 0 === n && a && (r("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),
|
||||||
|
n = a), k.call(this, t, n);
|
||||||
|
};
|
||||||
|
var A = e.fn.andSelf || e.fn.addBack;
|
||||||
|
e.fn.andSelf = function() {
|
||||||
|
return r("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),
|
||||||
|
A.apply(this, arguments);
|
||||||
|
};
|
||||||
|
var S = e.Deferred, q = [ [ "resolve", "done", e.Callbacks("once memory"), e.Callbacks("once memory"), "resolved" ], [ "reject", "fail", e.Callbacks("once memory"), e.Callbacks("once memory"), "rejected" ], [ "notify", "progress", e.Callbacks("memory"), e.Callbacks("memory") ] ];
|
||||||
|
return e.Deferred = function(t) {
|
||||||
|
var n = S(), a = n.promise();
|
||||||
|
return n.pipe = a.pipe = function() {
|
||||||
|
var t = arguments;
|
||||||
|
return r("deferred.pipe() is deprecated"), e.Deferred(function(r) {
|
||||||
|
e.each(q, function(o, i) {
|
||||||
|
var s = e.isFunction(t[o]) && t[o];
|
||||||
|
n[i[1]](function() {
|
||||||
|
var t = s && s.apply(this, arguments);
|
||||||
|
t && e.isFunction(t.promise) ? t.promise().done(r.resolve).fail(r.reject).progress(r.notify) : r[i[0] + "With"](this === a ? r.promise() : this, s ? [ t ] : arguments);
|
||||||
|
});
|
||||||
|
}), t = null;
|
||||||
|
}).promise();
|
||||||
|
}, t && t.call(n, n), n;
|
||||||
|
}, e.Deferred.exceptionHook = S.exceptionHook, e;
|
||||||
|
});
|