From 5f64e7f33695c44c2a77ab37c6a4f131c346e370 Mon Sep 17 00:00:00 2001 From: Vishal-Dhimmar Date: Tue, 4 Sep 2018 18:42:17 +0530 Subject: [PATCH 01/92] multipe progressbar on upload --- client/src/components/SchemaForm.vue | 7 + client/src/components/SchemaSubForm.1.vue | 393 ++++++++++++++++++++++ client/src/components/SchemaSubForm.vue | 152 +++++++-- client/src/components/SchemaView.vue | 4 +- client/src/pages/flow/List.vue | 2 +- client/src/pages/flow/New.vue | 20 +- 6 files changed, 540 insertions(+), 38 deletions(-) create mode 100644 client/src/components/SchemaSubForm.1.vue diff --git a/client/src/components/SchemaForm.vue b/client/src/components/SchemaForm.vue index d438d24..072c7d9 100644 --- a/client/src/components/SchemaForm.vue +++ b/client/src/components/SchemaForm.vue @@ -39,6 +39,7 @@ + @@ -91,7 +92,13 @@
{{val}} +
+ {{val}} + + +
+
diff --git a/client/src/components/SchemaSubForm.1.vue b/client/src/components/SchemaSubForm.1.vue new file mode 100644 index 0000000..17ffc68 --- /dev/null +++ b/client/src/components/SchemaSubForm.1.vue @@ -0,0 +1,393 @@ + + + + + + diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 17ffc68..a2ddcc2 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -16,6 +16,7 @@
+ @@ -49,13 +50,23 @@ - + {{field.name}} + + + + + -
-
- {{val}} + + +
+
+ {{val}} + +
@@ -76,13 +87,13 @@
- diff --git a/service/src/services/dataquery/dataquery.class.js b/service/src/services/dataquery/dataquery.class.js new file mode 100644 index 0000000..72a19f9 --- /dev/null +++ b/service/src/services/dataquery/dataquery.class.js @@ -0,0 +1,42 @@ +/* eslint-disable no-unused-vars */ +class Service { + constructor (options) { + this.options = options || {}; + } + + find (params) { + return Promise.resolve([]); + } + + get (id, params) { + return Promise.resolve({ + id, text: `A new message with ID: ${id}!` + }); + } + + create (data, params) { + if (Array.isArray(data)) { + return Promise.all(data.map(current => this.create(current))); + } + + return Promise.resolve(data); + } + + update (id, data, params) { + return Promise.resolve(data); + } + + patch (id, data, params) { + return Promise.resolve(data); + } + + remove (id, params) { + return Promise.resolve({ id }); + } +} + +module.exports = function (options) { + return new Service(options); +}; + +module.exports.Service = Service; diff --git a/service/src/services/dataquery/dataquery.filters.js b/service/src/services/dataquery/dataquery.filters.js new file mode 100644 index 0000000..c3b648c --- /dev/null +++ b/service/src/services/dataquery/dataquery.filters.js @@ -0,0 +1,6 @@ +/* eslint no-console: 1 */ +console.warn('You are using the default filter for the dataquery service. For more information about event filters see https://docs.feathersjs.com/api/events.html#event-filtering'); // eslint-disable-line no-console + +module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars + return data; +}; diff --git a/service/src/services/dataquery/dataquery.hooks.js b/service/src/services/dataquery/dataquery.hooks.js new file mode 100644 index 0000000..e4fea74 --- /dev/null +++ b/service/src/services/dataquery/dataquery.hooks.js @@ -0,0 +1,74 @@ + + +module.exports = { + before: { + all: [], + find: [ + hook => beforeFind(hook) + ], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + after: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + error: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + } +}; + + +function beforeFind(hook) { + let query = {}; + // console.log('__________________________________________________') + if (hook.params.query.hasOwnProperty('$all')) { + delete hook.params.query.$all + + // ----------------------------- || Get Last Record Data || -------------------------- + query = hook.app.services.finstance.createQuery(hook.params.query) + hook.params.rethinkdb = query.hasFields('stageReference').filter(function(mdoc) { + return mdoc("stageReference").count().gt(0) + }).map(function(item) { + return item.merge({ + 'stageReference': item('stageReference').map(function(doc1) { + return doc1.merge(function(doc) { + // return {data: doc1.getField('stageRecordId')} + // return {data: r.db('FlowzEngine').table('flowzdata').get(doc1.getField('stageRecordId')).getField('data')} + return {data: hook.app.services.flowzdata.table.get(doc1.getField('stageRecordId')).getField('data')} + }) + }) + }) + }) + } else if (hook.params.query.hasOwnProperty("$last")) { + delete hook.params.query.$last + + // ----------------------------- || Get Last Record Data || -------------------------- + query = hook.app.services.finstance.createQuery(hook.params.query) + hook.params.rethinkdb = query.outerJoin(hook.app.services.flowzdata.table ,function(instance,data){ + return instance.hasFields('stageReference').and( + instance('stageReference').count().gt(0).and( + data('id').eq(instance('stageReference').nth(-1).getField('stageRecordId')) + )) + }).without({"right": {"id": true}}) + .zip() + } + // console.log('__________________________________________________') + // console.log('hook.params.rethinkdb', hook.params.rethinkdb) +} \ No newline at end of file diff --git a/service/src/services/dataquery/dataquery.service.js b/service/src/services/dataquery/dataquery.service.js new file mode 100644 index 0000000..522a4fc --- /dev/null +++ b/service/src/services/dataquery/dataquery.service.js @@ -0,0 +1,50 @@ +// // Initializes the `dataquery` service on path `/dataquery` +// const createService = require('./dataquery.class.js'); +// const hooks = require('./dataquery.hooks'); +// const filters = require('./dataquery.filters'); + +// module.exports = function () { +// const app = this; +// const paginate = app.get('paginate'); + +// const options = { +// name: 'dataquery', +// paginate +// }; + +// // Initialize our service with any options it requires +// app.use('/dataquery', createService(options)); + +// // Get our initialized service so that we can register hooks and filters +// const service = app.service('dataquery'); + +// service.hooks(hooks); + +// if (service.filter) { +// service.filter(filters); +// } +// }; + +// Initializes the `databases` service on path `/databases` +const createService = require('feathers-rethinkdb'); +const hooks = require('./dataquery.hooks'); + +module.exports = function () { + const app = this; + const Model = app.get('rethinkdbClient'); + const paginate = app.get('paginate'); + + const options = { + name: 'dataquery', + Model, + paginate + }; + + // Initialize our service with any options it requires + app.use('/dataquery', createService(options)); + + // Get our initialized service so that we can register hooks and filters + const service = app.service('dataquery'); + + service.hooks(hooks); +}; diff --git a/service/src/services/finstance/finstance.hooks.js b/service/src/services/finstance/finstance.hooks.js index 5bda07f..4025c3d 100644 --- a/service/src/services/finstance/finstance.hooks.js +++ b/service/src/services/finstance/finstance.hooks.js @@ -7,7 +7,9 @@ let _ = require('lodash'); module.exports = { before: { all: [], - find: [], + find: [ + hook => beforeFind(hook) + ], get: [], create: [ hook => beforeCreate(hook) @@ -42,6 +44,40 @@ module.exports = { } }; +function beforeFind (hook) { + console.log('hook.params', hook.params) + const query = hook.service.createQuery(hook.params.query); + + // const searchString = "my search string"; + // console.log('__________________________________________________') + // console.log('hook.service', hook.app.services.flowzdata.table) + console.log('__________________________________________________') + // ----------------------------- || Get Last Record Data || -------------------------- + // hook.params.rethinkdb = query.outerJoin(hook.app.services.flowzdata.table ,function(instance,data){ + // return instance.hasFields('stageReference').and( + // instance('stageReference').count().gt(0).and( + // data('id').eq(instance('stageReference').nth(-1).getField('stageRecordId')) + // )) + // }).without({"right": {"id": true}}) + // .zip() + + // ----------------------------- || Get Last Record Data || -------------------------- + // hook.params.rethinkdb = query.hasFields('stageReference').filter(function(mdoc) { + // return mdoc("stageReference").count().gt(0) + // }).map(function(item) { + // return item.merge({ + // 'stageReference': item('stageReference').map(function(doc1) { + // return doc1.merge(function(doc) { + // // return {data: doc1.getField('stageRecordId')} + // // return {data: r.db('FlowzEngine').table('flowzdata').get(doc1.getField('stageRecordId')).getField('data')} + // return {data: hook.app.services.flowzdata.table.get(doc1.getField('stageRecordId')).getField('data')} + // }) + // }) + // }) + // }) + console.log('__________________________________________________') + // console.log('hook.params.rethinkdb', hook.params.rethinkdb) +} function beforeUpdate (hook) { hook.data.modifiedAt = new Date().toISOString(); diff --git a/service/src/services/index.js b/service/src/services/index.js index 27da941..fc9e12e 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -18,6 +18,7 @@ const finstance = require('./finstance/finstance.service.js'); const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); +const dataquery = require('./dataquery/dataquery.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); @@ -40,4 +41,5 @@ module.exports = function() { app.configure(flowzdata); app.configure(sendmail); app.configure(emailReceive); + app.configure(dataquery); }; \ No newline at end of file diff --git a/service/test/services/dataquery.test.js b/service/test/services/dataquery.test.js new file mode 100644 index 0000000..c2e7063 --- /dev/null +++ b/service/test/services/dataquery.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const app = require('../../src/app'); + +describe('\'dataquery\' service', () => { + it('registered the service', () => { + const service = app.service('dataquery'); + + assert.ok(service, 'Registered the service'); + }); +}); From 560d7e1275f882f453ee447510a4933b47dcd70f Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Wed, 5 Sep 2018 14:01:27 +0530 Subject: [PATCH 04/92] Added view for grid/list view --- client/src/pages/flow/analytics.vue | 90 +++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 4 deletions(-) diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index af6f972..86b2af9 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -17,9 +17,17 @@ - - - +
+ + + +
+ + + + +
+
@@ -76,7 +84,14 @@ -
+
+ +
+
+
+
+
+ @@ -84,6 +99,7 @@ diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 92dbede..cf53a0a 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -35,12 +35,11 @@ - + {{field.name}} -
@@ -52,26 +51,15 @@ {{field.name}} - - - - - -
- - - -
+
@@ -94,71 +82,54 @@
- - + + + diff --git a/client/src/main.js b/client/src/main.js index 0692319..311112b 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -334,6 +334,7 @@ router.afterEach(route => { sync(store, router) // console.log('process.env.accesskey', process.env.accesskey) + new Vue({ el: '#app', router, diff --git a/client/src/masterLayout/Header.vue b/client/src/masterLayout/Header.vue index d9e7c2b..ffd8e46 100644 --- a/client/src/masterLayout/Header.vue +++ b/client/src/masterLayout/Header.vue @@ -23,6 +23,12 @@ Home --> + + + + Email Template + + diff --git a/client/src/router/index.js b/client/src/router/index.js index cd1ba94..e032efd 100644 --- a/client/src/router/index.js +++ b/client/src/router/index.js @@ -68,6 +68,7 @@ import FlowOverview from '@/pages/flow/FlowOverview' import ManageBPMNPlugin from '@/pages/BPMNPlugins/Manage' import SchemaView from '@/components/SchemaView' +import emailtemplate from '@/components/emailtemplate' Vue.use(VueRouter) @@ -167,6 +168,12 @@ const mroutes = [ } ] }, + { // Schema + path: 'emailtemplate', + component: emailtemplate, + name: 'emailtemplate', + meta: { description: 'emailtemplate' } + }, { // Flow path: 'flow', component: Flow, diff --git a/service/src/services/email-templates/email-templates.filters.js b/service/src/services/email-templates/email-templates.filters.js new file mode 100644 index 0000000..31945d7 --- /dev/null +++ b/service/src/services/email-templates/email-templates.filters.js @@ -0,0 +1,6 @@ +/* eslint no-console: 1 */ +console.warn('You are using the default filter for the email-templates service. For more information about event filters see https://docs.feathersjs.com/api/events.html#event-filtering'); // eslint-disable-line no-console + +module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars + return data; +}; diff --git a/service/src/services/email-templates/email-templates.hooks.js b/service/src/services/email-templates/email-templates.hooks.js new file mode 100644 index 0000000..1022974 --- /dev/null +++ b/service/src/services/email-templates/email-templates.hooks.js @@ -0,0 +1,33 @@ + + +module.exports = { + before: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + after: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + error: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + } +}; diff --git a/service/src/services/email-templates/email-templates.service.js b/service/src/services/email-templates/email-templates.service.js new file mode 100644 index 0000000..aada60d --- /dev/null +++ b/service/src/services/email-templates/email-templates.service.js @@ -0,0 +1,28 @@ +// Initializes the `email-templates` service on path `/email-templates` +const createService = require('feathers-rethinkdb'); +const hooks = require('./email-templates.hooks'); +const filters = require('./email-templates.filters'); + +module.exports = function () { + const app = this; + const Model = app.get('rethinkdbClient'); + const paginate = app.get('paginate'); + + const options = { + name: 'email_templates', + Model, + paginate + }; + + // Initialize our service with any options it requires + app.use('/email-templates', createService(options)); + + // Get our initialized service so that we can register hooks and filters + const service = app.service('email-templates'); + + service.hooks(hooks); + + if (service.filter) { + service.filter(filters); + } +}; diff --git a/service/src/services/index.js b/service/src/services/index.js index fc9e12e..8b3e2f6 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -19,6 +19,7 @@ const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); const dataquery = require('./dataquery/dataquery.service.js'); +const emailTemplates = require('./email-templates/email-templates.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); @@ -42,4 +43,5 @@ module.exports = function() { app.configure(sendmail); app.configure(emailReceive); app.configure(dataquery); + app.configure(emailTemplates); }; \ No newline at end of file diff --git a/service/test/services/email-templates.test.js b/service/test/services/email-templates.test.js new file mode 100644 index 0000000..7381d83 --- /dev/null +++ b/service/test/services/email-templates.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const app = require('../../src/app'); + +describe('\'email-templates\' service', () => { + it('registered the service', () => { + const service = app.service('email-templates'); + + assert.ok(service, 'Registered the service'); + }); +}); From 12553c8c550d1d4b61f91f301c003025d51a189f Mon Sep 17 00:00:00 2001 From: Vishal-Dhimmar Date: Thu, 6 Sep 2018 19:06:39 +0530 Subject: [PATCH 17/92] Resolve Name --- client/src/pages/flow/List.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 3e5dde0..b145ccc 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -423,16 +423,12 @@ export default { }, { title: 'Name', - key: 'ProcessName' + key: 'name' }, { title: 'Id', key: 'id' }, - { - title: 'Notes', - key: 'notes' - }, { title: 'Action', key: 'action', From 4b50d667d30b9b5a7562547adad229b519dc661d Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 6 Sep 2018 19:07:50 +0530 Subject: [PATCH 18/92] Fixes after flow definition change --- client/src/components/ListInstances.vue | 19 +++++++++---------- client/src/components/SchemaView.vue | 12 +++++------- client/src/pages/user/SchemaList.vue | 2 +- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/client/src/components/ListInstances.vue b/client/src/components/ListInstances.vue index 5e70079..732ecb6 100644 --- a/client/src/components/ListInstances.vue +++ b/client/src/components/ListInstances.vue @@ -106,10 +106,10 @@ export default { component: { }, methods: { - valueStatus (value) { - if (!value) return '' - return _.find(this.flowzData.json.processList, {id: value}).name - }, + // valueStatus (value) { + // if (!value) return '' + // return _.find(this.flowzData.json.processList, {id: value}).name + // }, async getRecord (item) { // DeepRecord.deepRecord.getRecord(client, item, async (err, resp) => { // let stageRecordId = resp.stageReference[(resp.stageReference.length) - 1].stageRecordId @@ -120,7 +120,7 @@ export default { // let result = await DeepRecord.deepRecord.getCurrentTraget(instanceId, resp.currentStatus) // // let currentState = resp.currentStatus.toLowerCase() // // let schemaId = resp[currentState].schemaId - let currentObj = _.find(this.flowzData.json.processList, {id: item.currentStatus}) + let currentObj = this.flowzData.processList[item.currentStatus] // console.log('this.flowzData.schema', this.flowzData) let values = { id: this.flowzData.schema, @@ -158,13 +158,12 @@ export default { if (stateid) { query.currentStatus = stateid } - await flowzModal.get(id, { - $select: ['json', 'schema'] - }).then(async res => { + await flowzModal.get(id).then(async res => { this.flowzData = res.data - this.breadItem.name = this.flowzData.json.name + this.breadItem.name = this.flowzData.name if (stateid) { - let m = _.find(this.flowzData.json.processList, {id: stateid}) + // let m = _.find(this.flowzData.json.processList, {id: stateid}) + let m = this.flowzData.processList[stateid] if (m && m !== null && Object.keys(m).length > 0) { this.breadItem.state = m.name } diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index d9e3976..15d73f8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -748,12 +748,12 @@ export default { this.item = values.item this.formTitle = values.formName this.flowData = values.flowzData - let targetObj = _.find(values.flowzData.json.processList, {id: values.currentState}) + let targetObj = values.flowzData.processList[values.currentState] if (Object.keys(targetObj).length > 0) { if (targetObj.target.length > 1) { let opts = [] for (let m of targetObj.target) { - let label = _.find(values.flowzData.json.processList, {id: m.id}).name + let label = values.flowzData.processList[m.id].name opts.push({ label: label, value: m.id @@ -801,8 +801,8 @@ export default { id: this.$route.params.id }) .then( (res) => { - // console.log('res flowz get call: ', res.data.data[0]) - let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + console.log('res flowz get call: ', res.data.data[0]) + // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) let inputschemaId = res.data.data[0].schema schemaModel.getAll(inputschemaId).then(async res => { this.dataSchema = res @@ -827,9 +827,7 @@ export default { // console.error('Error: ', err) // }) - await flowzModel.get(this.$route.params.id, { - $select: ['json', 'schema'] - }).then(async res => { + await flowzModel.get(this.$route.params.id).then(async res => { this.flowzData = res.data // if (this.$route.params.stateid) { // let m = _.find(this.flowzData.json.processList, {id: this.$route.params.stateid}) diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index fb3ba6e..f6977b7 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -240,7 +240,7 @@ // console.log('indexfind: ', indexFind) // this.$emit('setValues', this.instanceEntries[indexFind]) // console.log('Click: ', params.row, params.index) - let currentObj = _.find(this.flowzData.json.processList, {id: this.instanceEntries[indexFind].currentStatus}) + let currentObj = this.flowzData.processList[this.instanceEntries[indexFind].currentStatus] // console.log('this.flowzData.schema SchemaList', this.flowzData.schema) let values = { id: this.flowzData.schema, From 6814f70ec9d56eb5bfdb2c81ca8df78ff033fadc Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 6 Sep 2018 19:11:40 +0530 Subject: [PATCH 19/92] back-end-changes-based-on-flows-change --- .../src/services/finstance/finstance.hooks.js | 52 ++++++++++--------- .../src/services/flowzdata/flowzdata.hooks.js | 19 ++----- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/service/src/services/finstance/finstance.hooks.js b/service/src/services/finstance/finstance.hooks.js index 4025c3d..4321234 100644 --- a/service/src/services/finstance/finstance.hooks.js +++ b/service/src/services/finstance/finstance.hooks.js @@ -84,23 +84,29 @@ function beforeUpdate (hook) { } function beforeCreate (hook) { - hook.params.query.$select = ['json']; hook.data.createdAt = new Date().toISOString(); - // const query = Object.assign({}, hook.params.query); - // console.log('___________________________________________________________________________') - // console.log('hook.params.userPackageDetails', hook.params) - // console.log('___________________________________________________________________________') if (hook.data.fid) { - // hook.params.headers = hook.params.headers return hook.app.service('flowz').get(hook.data.fid, hook.params).then(res => { - // console.log('res++++++++++++++++++++++++++++++', res) - let startObj = _.find(res.json.processList, {"type": "start"}); - let nextTargetObj = getNextTarget(res.json.processList, startObj.target[0].id); - // console.log('nextTargetObj', nextTargetObj) - hook.data.currentStatus = nextTargetObj.id; - hook.data.mainStatus = 'inprocess'; - hook.data.stageReference = []; - return hook; + if (res.startId.length > 0) { + let startObj = getStartObject(res.startId, res.processList) + if (startObj !== 0) { + // let nextTargetObj = getNextTarget(res.processList, startObj.target[0].id); + let nextTargetObj = res.processList[startObj.target[0].id]; + // console.log('nextTargetObj', nextTargetObj) + hook.data.currentStatus = nextTargetObj.id; + hook.data.mainStatus = 'inprocess'; + hook.data.stageReference = []; + return hook; + } else { + throw new errors.BadRequest('Error', { + errors: { message: err.toString() } + }); + } + } else { + throw new errors.BadRequest('Error', { + errors: { message: err.toString() } + }); + } }).catch(err => { console.log('err', err) throw new errors.BadRequest('Error', { @@ -110,13 +116,11 @@ function beforeCreate (hook) { } }; -function getNextTarget (processList, targetId) { - let targetObj = _.find(processList,{"id": targetId}) - // if (targetObj.type === 'start' || targetObj.type === 'endevent' || targetObj.type === 'intermediatethrowevent') { - // return targetObj; - // } - // if(targetObj.inputProperty.length === 0) { - // targetObj = getNextTarget(processList, targetObj.target[0].id) - // } - return targetObj; -}; +function getStartObject (startStates, processList) { + for (let item of startStates) { + if (processList[item].target.length > 0) { + return processList[item] + } + } + return 0 +} diff --git a/service/src/services/flowzdata/flowzdata.hooks.js b/service/src/services/flowzdata/flowzdata.hooks.js index f7407c4..924395f 100644 --- a/service/src/services/flowzdata/flowzdata.hooks.js +++ b/service/src/services/flowzdata/flowzdata.hooks.js @@ -49,14 +49,16 @@ function beforeCreate (hook) { function afterCreate (hook) { if (hook.params.hasOwnProperty('isdone') && hook.params.isdone) { hook.params.query = {}; - hook.params.query.$select = ['json']; + // hook.params.query.$select = ['json']; const query = Object.assign({}, hook.params.query); // console.log('++++++++++++++++++++++++++++++++++++++++++++++++++++++') // console.log('hook.params', hook.params) // console.log('++++++++++++++++++++++++++++++++++++++++++++++++++++++') return hook.app.service('flowz').get(hook.data.fid, {query}).then(res => { - let cuurentObj = _.find(res.json.processList, {id: hook.data.state}); - let nextTargetObj = getNextTarget(res.json.processList, cuurentObj.target[0].id); + // let cuurentObj = _.find(res.json.processList, {id: hook.data.state}); + let cuurentObj = res.processList[hook.data.state]; + // let nextTargetObj = getNextTarget(res.json.processList, cuurentObj.target[0].id); + let nextTargetObj = res.processList[cuurentObj.target[0].id]; return hook.app.service('finstance').get(hook.data.iid).then(finstRes => { let mdata = { currentStatus: nextTargetObj.id, @@ -114,14 +116,3 @@ function afterCreate (hook) { }); } } - -function getNextTarget (processList, targetId) { - let targetObj = _.find(processList,{'id': targetId}); - // if (targetObj.type === 'start' || targetObj.type === 'endevent' || targetObj.type === 'intermediatethrowevent') { - // return targetObj; - // } - // // if(targetObj.inputProperty.length === 0) { - // targetObj = getNextTarget(processList, targetObj.target[0].id); - // // } - return targetObj; -} From bbead817fe7d9c00834f9b1f95bd302561604711 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 6 Sep 2018 19:37:46 +0530 Subject: [PATCH 20/92] smtp config added to sendproofmail --- client/src/pages/flow/New.vue | 86 ++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 341984a..533c561 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -34,6 +34,7 @@ diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 43a0e24..6dcfb4a 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -808,93 +808,197 @@ export default { return(returnData) }, - async init () { - this.isFlowzLoaded = false - this.$Loading.start() - this.schemabinding = false - this.email = false - await flowzModel.get(null, { + async getFlowz () { + return await flowzModel.get(null, { id: this.$route.params.id }) - .then( async (res) => { - // console.log('res flowz get call: ', res.data.data[0]) - this.flowzData = res.data.data[0] - - let startId = this.flowzData.startId - let firstState = '' - for (let startItems of startId) { - // console.log('startItems: ', startItems) - if (this.flowzData.processList[startItems].target.length > 0) { - firstState = this.flowzData.processList[startItems].target[0].id - break - } + .then((res) => { + return (res.data.data[0]) + }).catch(err => { + console.log('Error: ', err) + return + }) + }, + + async getSchema (id) { + return await schemaModel.getAll(id).then(res => { + return res + }).catch(err => { + console.log('Error: ', err) + return + }) + }, + + flowzLogic () { + let startId = this.flowzData.startId + let firstState = '' + for (let startItems of startId) { + // console.log('startItems: ', startItems) + if (this.flowzData.processList[startItems].target.length > 0) { + firstState = this.flowzData.processList[startItems].target[0].id + break } - if (firstState === this.$route.params.stateid) { - this.itsFirstState = true + } + if (firstState === this.$route.params.stateid) { + this.itsFirstState = true + } else { + this.itsFirstState = false + } + // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + let inputschemaId = this.flowzData.schema + }, + + async schemaLogic (schema) { + console.log('Schema Logic called: ', schema) + this.dataSchema = schema + this.email = false + this.htmlcontent = false + this.id = null + + let query = { + fid: this.$route.params.id, + currentStatus: this.$route.params.stateid, + '$paginate': false + } + + await dataQuerymodel.get(null, { + $last: true, + fid: this.$route.params.id, + currentStatus: this.$route.params.stateid + }).then(queryresp => { + if (queryresp.data.data.length > 0) { + this.instanceEntries = queryresp.data.data + + this.dataData = this.instanceEntries + // this.$Spin.hide() + this.$Loading.finish() } else { - this.itsFirstState = false + this.instanceEntries = null + this.dataData = [] + this.itsFirstState = true + // this.$Spin.hide() + this.$Loading.finish() } - // console.log('target : ', firstState) - - // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) - let inputschemaId = res.data.data[0].schema - await schemaModel.getAll(inputschemaId).then(async res => { - this.dataSchema = res - this.email = false - this.htmlcontent = false - this.id = null - // this.$Spin.show() - - let query = { - fid: this.$route.params.id, - currentStatus: this.$route.params.stateid, - '$paginate': false - } - await dataQuerymodel.get(null, { - $last: true, - fid: this.$route.params.id, - currentStatus: this.$route.params.stateid - }).then(queryresp => { - if (queryresp.data.data.length > 0) { - // console.log('Response DataQuery: ', queryresp) - this.instanceEntries = queryresp.data.data - - // for (let i = 0; i < this.instanceEntries.length; i++) { - // if (this.instanceEntries[i].data) { - // this.itsFirstState = false - // this.instanceEntries[i].data['iid'] = this.instanceEntries[i].id - // } else { - // this.itsFirstState = true - // } - // } - // this.dataData = _.map(this.instanceEntries, (o) => { return o.data }) - // this.dataData = _.map(this.instanceEntries, (o) => { - // for (let k in o.data) { - // o[k] = o.data[k] - // } - // return o - // }) - this.dataData = this.instanceEntries - // this.$Spin.hide() - this.$Loading.finish() - } else { - this.itsFirstState = true - // this.$Spin.hide() - this.$Loading.finish() - } - }).catch(err => { - console.error('Error: ', err) - // this.$Spin.hide() - this.$Loading.error() - }) - }).catch(err => { - console.error('Error: ', err) - this.$Loading.error() - }) }).catch(err => { console.error('Error: ', err) + // this.$Spin.hide() this.$Loading.error() }) + }, + + async init () { + this.isFlowzLoaded = false + this.$Loading.start() + this.schemabinding = false + this.email = false + + let cachedFlowz = _.find(this.$store.state.flowz, (o) => { return o.id === this.$route.params.id}) + let cachedSchema = _.find(this.$store.state.schema, (o) => { return o.id === cachedFlowz.schema}) + if (cachedFlowz) { + this.flowzData = cachedFlowz + await this.flowzLogic() + + // check cached schema + if (cachedSchema) { + await this.schemaLogic(cachedSchema) + } else { + let unCachedSchema = await this.getSchema(cachedFlowz.schema) + await this.schemaLogic(unCachedSchema) + } + } else { + this.flowzData = await this.getFlowz() + await this.flowzLogic() + if (cachedSchema) { + await this.schemaLogic() + } else { + let unCachedSchema = await this.getSchema(this.flowzData.schema) + await this.schemaLogic(unCachedSchema) + } + + } + + // await flowzModel.get(null, { + // id: this.$route.params.id + // }) + // .then( async (res) => { + // // console.log('res flowz get call: ', res.data.data[0]) + // this.flowzData = res.data.data[0] + + // let startId = this.flowzData.startId + // let firstState = '' + // for (let startItems of startId) { + // // console.log('startItems: ', startItems) + // if (this.flowzData.processList[startItems].target.length > 0) { + // firstState = this.flowzData.processList[startItems].target[0].id + // break + // } + // } + // if (firstState === this.$route.params.stateid) { + // this.itsFirstState = true + // } else { + // this.itsFirstState = false + // } + // // console.log('target : ', firstState) + + // // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + // let inputschemaId = res.data.data[0].schema + // await schemaModel.getAll(inputschemaId).then(async res => { + // this.dataSchema = res + // this.email = false + // this.htmlcontent = false + // this.id = null + // // this.$Spin.show() + + // let query = { + // fid: this.$route.params.id, + // currentStatus: this.$route.params.stateid, + // '$paginate': false + // } + // await dataQuerymodel.get(null, { + // $last: true, + // fid: this.$route.params.id, + // currentStatus: this.$route.params.stateid + // }).then(queryresp => { + // if (queryresp.data.data.length > 0) { + // // console.log('Response DataQuery: ', queryresp) + // this.instanceEntries = queryresp.data.data + + // // for (let i = 0; i < this.instanceEntries.length; i++) { + // // if (this.instanceEntries[i].data) { + // // this.itsFirstState = false + // // this.instanceEntries[i].data['iid'] = this.instanceEntries[i].id + // // } else { + // // this.itsFirstState = true + // // } + // // } + // // this.dataData = _.map(this.instanceEntries, (o) => { return o.data }) + // // this.dataData = _.map(this.instanceEntries, (o) => { + // // for (let k in o.data) { + // // o[k] = o.data[k] + // // } + // // return o + // // }) + // this.dataData = this.instanceEntries + // // this.$Spin.hide() + // this.$Loading.finish() + // } else { + // this.itsFirstState = true + // // this.$Spin.hide() + // this.$Loading.finish() + // } + // }).catch(err => { + // console.error('Error: ', err) + // // this.$Spin.hide() + // this.$Loading.error() + // }) + // }).catch(err => { + // console.error('Error: ', err) + // this.$Loading.error() + // }) + // }).catch(err => { + // console.error('Error: ', err) + // this.$Loading.error() + // }) this.isFlowzLoaded = true }, From fc35871ba5e9caa9227c0973bd4a410a41dfebde Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 12:31:58 +0530 Subject: [PATCH 38/92] Schema cached in app.vue --- client/src/App.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/App.vue b/client/src/App.vue index 808a877..ebf9165 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -9,10 +9,10 @@ export default { name: 'app', mounted () { - this.$store.state.schema = [] + // this.$store.state.schema = [] this.$store.dispatch('getSchema') this.$store.state.flowz = [] - this.$store.dispatch('getFlowzdata') + // this.$store.dispatch('getFlowzdata') } } From 09a72f51e1399223f0d0fab6af07f9cb1356e268 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 12:33:31 +0530 Subject: [PATCH 39/92] Removed console --- client/src/components/SchemaView.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 6dcfb4a..5dce3e8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -849,7 +849,6 @@ export default { }, async schemaLogic (schema) { - console.log('Schema Logic called: ', schema) this.dataSchema = schema this.email = false this.htmlcontent = false From 756331217fe5a0df4db5a274691d8b6f818daa17 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 10 Sep 2018 17:03:14 +0530 Subject: [PATCH 40/92] table pagination --- client/src/components/ListInstances.vue | 1 - client/src/components/SchemaView.vue | 19 ++++++++++++--- client/src/pages/user/SchemaList.vue | 32 +++++++++++++++++++++++-- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/client/src/components/ListInstances.vue b/client/src/components/ListInstances.vue index e3e06d8..1db5648 100644 --- a/client/src/components/ListInstances.vue +++ b/client/src/components/ListInstances.vue @@ -67,7 +67,6 @@ import flowzdataModal from '@/api/flowzdata' import _ from 'lodash' // const DeepRecord = require('@/assets/js/deepstream/deepRecord') - // const client = deepstream('ws://204.48.26.167:6020').login() // let instanceId = '39c53741_ec14_4ceb_a9db_97d7066cd424' // let instanceId1 = '39c53741-ec14-4ceb-a9db-97d7066cd424' diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index ed8d0dc..f3869f8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -66,7 +66,7 @@ - +
@@ -198,6 +198,10 @@ export default { }, data () { return { + skip: 0, + limit: 10, + dataTotal: 0, + pageno: 1, isFlowzLoaded: false, htmlcontent: false, schemabinding: false, @@ -255,6 +259,13 @@ export default { this.isEmailDone = true await this.handleSubmit('formSchemaInstance') }, + async pagination (skip, limit, page){ + console.log(skip,limit,page) + this.skip = skip + this.limit = limit + this.pageno = page + this.init() + }, info (item, index, button) { this.modalInfo.title = `Row index: ${index}` this.modalInfo.content = JSON.stringify(item, null, 2) @@ -853,10 +864,12 @@ export default { await dataQuerymodel.get(null, { $last: true, fid: this.$route.params.id, - currentStatus: this.$route.params.stateid + currentStatus: this.$route.params.stateid, + $skip: this.skip, + $limit: this.limit }).then(queryresp => { + this.dataTotal = queryresp.data.total if (queryresp.data.data.length > 0) { - console.log('Response DataQuery: ', queryresp) this.instanceEntries = queryresp.data.data // for (let i = 0; i < this.instanceEntries.length; i++) { diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index fcd1195..252065e 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -57,7 +57,12 @@
-
+
+
+
+ +
+
@@ -74,10 +79,15 @@ 'configuration': Boolean, 'dynamicData': Boolean, 'flowzData': Object, - 'instanceEntries': Array + 'instanceEntries': Array, + 'dataTotal': Number, + 'pageno': Number }, data () { return { + limit: 10, + skip: 0, + total: 0, searchQuery: null, filterBy: [ { @@ -323,6 +333,8 @@ } }, mounted () { + console.log('this.page1 ', this.pageno) + this.total = this.dataTotal this.mdata = this.data // if (this.dynamicData) { // await flowzModal.get(id, { @@ -344,6 +356,22 @@ methods: { handleConfiguration () { this.isShow = !this.isShow + }, + // mockTableData1 () { + // console.log('this.data ', this.data) + // let data = [] + // for (let i = 0; i < 10; i++) { + // data.push(this.data[i]) + // } + // return data + // }, + handlePage (page) { + this.skip = (page * this.limit) - this.limit + this.$emit('on-paginate', this.skip, this.limit, page) + }, + handlePagesize (size) { + this.limit = size + this.skip = 0 } }, feathers: { From 82345314fd8017de3ff8bffd3b50e0304f6394a4 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 10 Sep 2018 17:04:11 +0530 Subject: [PATCH 41/92] remove logs --- client/src/pages/user/SchemaList.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index 252065e..8530861 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -333,7 +333,6 @@ } }, mounted () { - console.log('this.page1 ', this.pageno) this.total = this.dataTotal this.mdata = this.data // if (this.dynamicData) { From 664e1c2e6d6c1ce598d1a09ba0393a57315e3796 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed <33310500+fsaiyedOB@users.noreply.github.com> Date: Mon, 10 Sep 2018 17:38:21 +0530 Subject: [PATCH 42/92] Update SchemaView.vue --- client/src/components/SchemaView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 28d46b6..dca2e3d 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -874,8 +874,11 @@ export default { await dataQuerymodel.get(null, { $last: true, fid: this.$route.params.id, - currentStatus: this.$route.params.stateid + currentStatus: this.$route.params.stateid, + $skip: this.skip, + $limit: this.limit }).then(queryresp => { + this.dataTotal = queryresp.data.total if (queryresp.data.data.length > 0) { this.instanceEntries = queryresp.data.data From f90d1dbf7da076215f3b295f2397f9cc83fee9f4 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 17:39:13 +0530 Subject: [PATCH 43/92] Last task added in flowzdata --- client/src/components/SchemaView.vue | 34 +++++++++++----------------- client/src/pages/flow/New.vue | 11 ++++++++- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 5dce3e8..c063d6c 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -494,7 +494,7 @@ export default { }, makeObj () { - var obj = this.schema + const obj = this.schema obj.Schemaid = this.schema.id obj.data = this.formSchemaInstance.data return obj @@ -829,26 +829,15 @@ export default { }) }, - flowzLogic () { - let startId = this.flowzData.startId - let firstState = '' - for (let startItems of startId) { - // console.log('startItems: ', startItems) - if (this.flowzData.processList[startItems].target.length > 0) { - firstState = this.flowzData.processList[startItems].target[0].id - break - } - } + async populateTables (schema) { + + let firstState = this.flowzData.first if (firstState === this.$route.params.stateid) { this.itsFirstState = true } else { this.itsFirstState = false } - // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) - let inputschemaId = this.flowzData.schema - }, - async schemaLogic (schema) { this.dataSchema = schema this.email = false this.htmlcontent = false @@ -887,31 +876,34 @@ export default { async init () { this.isFlowzLoaded = false + this.itsFirstState = true this.$Loading.start() this.schemabinding = false this.email = false let cachedFlowz = _.find(this.$store.state.flowz, (o) => { return o.id === this.$route.params.id}) let cachedSchema = _.find(this.$store.state.schema, (o) => { return o.id === cachedFlowz.schema}) + + // this.flowzData = cachedFlowz ? cachedFlowz : await this.getFlowz() + // this.populateTables(cachedSchema ? cachedSchema : await this.getSchema(this.flowzData.schema)) + if (cachedFlowz) { this.flowzData = cachedFlowz - await this.flowzLogic() // check cached schema if (cachedSchema) { - await this.schemaLogic(cachedSchema) + await this.populateTables(cachedSchema) } else { let unCachedSchema = await this.getSchema(cachedFlowz.schema) - await this.schemaLogic(unCachedSchema) + await this.populateTables(unCachedSchema) } } else { this.flowzData = await this.getFlowz() - await this.flowzLogic() if (cachedSchema) { - await this.schemaLogic() + await this.populateTables() } else { let unCachedSchema = await this.getSchema(this.flowzData.schema) - await this.schemaLogic(unCachedSchema) + await this.populateTables(unCachedSchema) } } diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 18e800b..137e600 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -81,7 +81,8 @@ intermediateId: [], processList: {}, xml: '', - svg: '' + svg: '', + first: '' } } }, @@ -206,6 +207,14 @@ } } } + + for (let startItems of this.flowObject.startId) { + // console.log('startItems: ', startItems) + if (this.flowObject.processList[startItems].target.length > 0) { + this.flowObject.first = this.flowObject.processList[startItems].target[0].id + break + } + } let actions = [] let filteredProcesses = _.filter(allProcess, (o) => { if (o.type !== 'startevent' && o.type !== 'endevent' && o.type !== 'intermediatethrowevent') { From bae6f23d4775580679bf935ba21d9e30d7d7374c Mon Sep 17 00:00:00 2001 From: nikitam Date: Mon, 10 Sep 2018 18:52:18 +0530 Subject: [PATCH 44/92] schema-new-optimized --- client/index.html | 22 +- client/src/pages/schema/New.vue | 1205 ++++--------------- service/src/services/schema/schema.hooks.js | 8 +- 3 files changed, 250 insertions(+), 985 deletions(-) diff --git a/client/index.html b/client/index.html index 7829335..8fd5bc3 100644 --- a/client/index.html +++ b/client/index.html @@ -4,7 +4,7 @@ flowz-schema - + @@ -17,11 +17,11 @@ - - + + - + - + - - - + + + - - + + diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index 2c5da3a..28664fc 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -30,35 +30,29 @@ diff --git a/client/src/area/Dashboard.vue b/client/src/area/Dashboard.vue index 8269eb3..86347b2 100644 --- a/client/src/area/Dashboard.vue +++ b/client/src/area/Dashboard.vue @@ -161,19 +161,25 @@ export default { }, methods: { init () { - flowzModel.get(null, {}) + flowzModel.get(null, { + $limit: 0 + }) .then((res) => { this.countFlowz = res.data.total }) - finstanceModel.get(null, {}) + finstanceModel.get(null, { + $limit: 0 + }) .then((res) => { this.countInstances = res.data.total }) - flowzDataModel.get(null, {}) + flowzDataModel.get(null, { + $limit: 0 + }) .then((res) => { - console.log('resp data:', res) + // console.log('resp data:', res) this.countData = res.total }) }, diff --git a/client/static/img/favicon.ico b/client/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..44da78e4ce75fbfe863ff19c7da249947e4341b5 GIT binary patch literal 1150 zcma)+yG{Z@6owCKymVB=4q{=bL@PUA!I;=snkXT5Jb@-A`T|Dq3AC`b)(#V0)=RQc z+?7O0G{M*)Y|!O*&MdPGyLeeLJ23Nq|C~8<2BMhw#N#C1DawryC5R|3nivuz{rHTSR5W6B?lX3fwOPC1D@5 zAx~;p8)k18&ZO>cN#gR=`2>ul#&^9~t9#gDUA2bJvx&1Fp8$oM|ox=`CC*G`+aRE%BgsnZI~J8=T}Yvov)rprwu%B1NLgjr+a=} z1A6_icm1%(t8d}_GoxylYf;rN^A`!A^`J<<*Yh8)U-t2uV{meXU@w=Gz}s>fIz!b&TkAm}o2JxA1?2`mN?! H%M7#MO(`hF literal 0 HcmV?d00001 From 30b65d7a235f872d1c867757b973e365b262306f Mon Sep 17 00:00:00 2001 From: harshp Date: Tue, 11 Sep 2018 11:24:41 +0530 Subject: [PATCH 46/92] remove ununsed npm packages --- client/package.json | 17 +- client/src/assets/js/deepstream/deepRecord.js | 146 - client/src/assets/js/deepstream/recordRun.js | 84 - .../src/assets/js/deepstream/recordStart.js | 80 - client/static/css/grapes.min.css | 4 - client/static/css/select2.min.css | 1 - client/static/grapes.min.css | 6675 ----- client/static/grapes.min.js | 21169 ---------------- client/static/grapesjs-mjml.min.js | 108 - client/static/gridmanager.js | 1585 -- client/static/js/aviary-editor.js | 4 - client/static/js/grapesjs-aviary.min.js | 2 - .../js/grapesjs-component-countdown.min.js | 2 - client/static/js/grapesjs-navbar.min.js | 2 - .../static/js/grapesjs-plugin-export.min.js | 18 - client/static/js/grapesjs-plugin-forms.min.js | 1173 - client/static/js/grapesjs-preset-webpage.js | 151 - client/static/js/product-plugin-old.js | 284 - client/static/js/product-plugin.js | 1047 - client/static/js/select2.min.js | 3 - 20 files changed, 4 insertions(+), 32551 deletions(-) delete mode 100644 client/src/assets/js/deepstream/deepRecord.js delete mode 100644 client/src/assets/js/deepstream/recordRun.js delete mode 100644 client/src/assets/js/deepstream/recordStart.js delete mode 100644 client/static/css/grapes.min.css delete mode 100644 client/static/css/select2.min.css delete mode 100644 client/static/grapes.min.css delete mode 100644 client/static/grapes.min.js delete mode 100644 client/static/grapesjs-mjml.min.js delete mode 100644 client/static/gridmanager.js delete mode 100644 client/static/js/aviary-editor.js delete mode 100644 client/static/js/grapesjs-aviary.min.js delete mode 100644 client/static/js/grapesjs-component-countdown.min.js delete mode 100644 client/static/js/grapesjs-navbar.min.js delete mode 100644 client/static/js/grapesjs-plugin-export.min.js delete mode 100644 client/static/js/grapesjs-plugin-forms.min.js delete mode 100644 client/static/js/grapesjs-preset-webpage.js delete mode 100644 client/static/js/product-plugin-old.js delete mode 100644 client/static/js/product-plugin.js delete mode 100644 client/static/js/select2.min.js diff --git a/client/package.json b/client/package.json index 8c88892..36dbe86 100644 --- a/client/package.json +++ b/client/package.json @@ -17,7 +17,6 @@ "@deveodk/vue-tinymce": "^1.0.0", "@feathersjs/errors": "^3.3.2", "@tinymce/tinymce-vue": "^1.0.9", - "FormData": "^0.10.1", "animate.css": "^3.7.0", "aws": "0.0.3-2", "aws-sdk": "^2.309.0", @@ -31,25 +30,19 @@ "camunda-bpmn-moddle": "^0.13.0", "child_process": "^1.0.2", "codemirror": "^5.40.0", - "deepstream.io-client-js": "^2.3.0", "diagram-js": "^0.21.1", "element-ui": "^1.4.13", "feathers-hooks": "^2.1.0", "feathers-socketio": "^2.0.0", + "file-loader": "^2.0.0", "flowz-subscription": "^0.2.8", "fs": "0.0.1-security", - "grapesjs": "^0.10.8", - "grapesjs-blocks-basic": "^0.1.3", - "grapesjs-mjml": "0.0.8", - "grapesjs-plugin-forms": "^0.2.5", "inherits": "^2.0.3", "iview": "^2.9.2", "jQuery": "^1.7.4", "jquery": "^3.3.1", "jquery-ui": "^1.12.1", "js-cookie": "^2.2.0", - "jsdom": "^11.12.0", - "json-daex": "0.0.13", "location": "0.0.1", "lodash": "^4.17.4", "moment": "^2.20.1", @@ -58,6 +51,8 @@ "papaparse": "^4.6.0", "psl": "^1.1.29", "split.js": "^1.3.5", + "strip-ansi": "^4.0.0", + "timers-browserify": "^2.0.10", "tls": "0.0.1", "vue": "^2.5.17", "vue-async-computed": "^3.4.1", @@ -109,11 +104,9 @@ "eventsource-polyfill": "^0.9.6", "express": "^4.16.2", "extract-text-webpack-plugin": "^2.1.2", - "file-loader": "^0.11.1", "friendly-errors-webpack-plugin": "^1.1.3", "html-webpack-plugin": "^2.28.0", "http-proxy-middleware": "^0.17.3", - "inject-loader": "^3.0.0", "karma": "^1.4.1", "karma-coverage": "^1.1.1", "karma-mocha": "^1.3.0", @@ -125,13 +118,11 @@ "karma-webpack": "^2.0.6", "less": "^2.7.2", "less-loader": "^4.0.5", - "lolex": "^1.5.2", "mocha": "^3.2.0", "nightwatch": "^0.9.12", "opn": "^5.2.0", "optimize-css-assets-webpack-plugin": "^2.0.0", "ora": "^1.4.0", - "phantomjs-prebuilt": "^2.1.14", "rimraf": "^2.6.0", "selenium-server": "^3.14.0", "semver": "^5.5.1", @@ -143,7 +134,7 @@ "vue-particles": "^1.0.9", "vue-style-loader": "^3.1.2", "vue-template-compiler": "^2.5.17", - "webpack": "^2.6.1", + "webpack": "^2.7.0", "webpack-bundle-analyzer": "^2.10.0", "webpack-dev-middleware": "^1.12.2", "webpack-hot-middleware": "^2.23.1", diff --git a/client/src/assets/js/deepstream/deepRecord.js b/client/src/assets/js/deepstream/deepRecord.js deleted file mode 100644 index dbfd3b4..0000000 --- a/client/src/assets/js/deepstream/deepRecord.js +++ /dev/null @@ -1,146 +0,0 @@ - // - // -import axios from 'axios' -import _ from 'lodash' - -let options = { - flowzApiURL: 'https://api.flowzcluster.tk/eng/flowz/', - cacheAPIURL: 1000 * 60 -} -let flowCache = [] - -export const deepRecord = { - addRecord: async function (dpClient, instanceId, recordName, payload) { - return new Promise(async (resolve, reject) => { - try { - let id = instanceId + recordName + '/' + dpClient.getUid() - let recordObj = dpClient.record.getRecord(id) - recordObj.whenReady((record) => { - record.set(payload) - resolve({recordId: id, recordObj: record}) - }) - } catch (err) { - reject(err) - } - }) - }, - getRecord: async function (dpClient, recordName, callback) { - dpClient.record.snapshot(recordName, callback) - }, - recordSubscribe: async function (dpClient, recordName, callback) { - return new Promise(async (resolve, reject) => { - try { - let recordObj = dpClient.record.getRecord(recordName) - recordObj.subscribe(callback) - } catch (err) { - reject(err) - } - }) - }, - getRecordObject: async function (dpClient, recordName) { - return new Promise(async (resolve, reject) => { - try { - let recordObj = dpClient.record.getRecord(recordName) - recordObj.whenReady((record) => { - resolve(record) - }) - } catch (err) { - reject(err) - } - }) - }, - // removeRecord: async function (dpClient, recordName, recordObj) { - // dpClient.record.getRecord( recordName ).delete(); - // let listName = recordName.substring(0,recordName.indexOf('/')) - // dpClient.record.getList(recordName).removeEntry(id); - // }, - getFlow: async function (instanceId) { - if (flowCache[instanceId] !== undefined) { - return flowCache[instanceId] - } - let orignalInstanceId = await this.replaceAll(instanceId, '_', '-') - let flowData = await axios.get(options.flowzApiURL + orignalInstanceId + '?$select[]=json') - flowCache[instanceId] = { - timeStamp: new Date(), - dataObj: flowData.data.json - } - return flowCache[instanceId] - }, - getNextTraget: async function (instanceId, targetId) { - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let targetObj = _.find(flowData.processList, {'id': targetId}) - if (targetObj.type === 'start' || - targetObj.type === 'endevent' || - targetObj.type === 'intermediatethrowevent') { - return targetObj - } - if (targetObj.inputProperty.length === 0) { - targetObj = this.getNextTraget(instanceId, targetObj.target[0].id) - } - return targetObj - }, - getCurrentTraget: async function (instanceId, targetId) { - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let targetObj = _.find(flowData.processList, {'id': targetId}) - return targetObj - }, - replaceAll: function replaceAll (str, find, replace) { - return str.replace(new RegExp(find, 'g'), replace) - }, - startInstance: async function (dpClient, instanceId) { - return new Promise(async (resolve, reject) => { - instanceId = await this.replaceAll(instanceId, '-', '_') - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let startObj = _.find(flowData.processList, {'type': 'start'}) - let nextTargetObj = await this.getNextTraget(instanceId, startObj.target[0].id) - let payload = { - instanceId, - 'currentStatus': nextTargetObj.id, - stageReference: [], - 'mainStatus': 'inprocess' - } - let instanceListName = instanceId + 'List' - let returnObj = await this.addRecord(dpClient, instanceId, '', payload).catch((err) => { console.log(err) }) - let instanceListObj = dpClient.record.getList(instanceListName) - instanceListObj.addEntry(returnObj.recordId) - resolve({instanceListName, instanceListObj, recordId: returnObj.recordId, recordObj: returnObj.recordObj}) - }) - }, - setNextStage: async function (dpClient, instanceRecordId, stageRecordId) { - return new Promise(async (resolve, reject) => { - let getRecordData = await this.getRecordObject(dpClient, instanceRecordId) - let instanceId = getRecordData.get('instanceId') - let currentStatus = getRecordData.get('currentStatus') - let currentTargetObj = await this.getCurrentTraget(instanceId, currentStatus) - let nextTargetObj = await this.getNextTraget(instanceId, currentTargetObj.target[0].id) - let stageReference = getRecordData.get('stageReference') - stageReference.push({StageName: currentStatus, stageRecordId}) - - let updateInstance = getRecordData.get() - updateInstance.currentStatus = nextTargetObj.id - updateInstance.stageReference = stageReference - if (nextTargetObj.type === 'endevent') { - updateInstance.mainStatus = 'completed' - } - getRecordData.set(updateInstance) - resolve('completed') - }) - }, - instanceStageSubmit: async function (dpClient, instanceRecordId, payload) { - return new Promise(async (resolve, reject) => { - let getRecordData = await this.getRecordObject(dpClient, instanceRecordId) - let instanceId = getRecordData.get('instanceId') - let StageName = getRecordData.get('currentStatus') - let stageListName = StageName + 'List' - payload[instanceId] = instanceId - let returnObj = await this.addRecord(dpClient, instanceId, StageName, payload).catch((err) => { console.log(err) }) - let stageListObj = dpClient.record.getList(stageListName) - stageListObj.addEntry(returnObj.recordId) - await this.setNextStage(dpClient, instanceRecordId, returnObj.recordId) - resolve({stageListName, stageListObj, recordId: returnObj.recordId, recordObj: returnObj.recordObj}) - }) - } -} diff --git a/client/src/assets/js/deepstream/recordRun.js b/client/src/assets/js/deepstream/recordRun.js deleted file mode 100644 index bab313b..0000000 --- a/client/src/assets/js/deepstream/recordRun.js +++ /dev/null @@ -1,84 +0,0 @@ -const deepstream = require('deepstream.io-client-js') -const client = deepstream('ws://167.99.233.211:6020').login() -const DeepRecord = require('./deepRecord') - -let id = 0 - -async function startFlow () { - let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' - let instanceRecordId = '39c53741_ec14_4ceb_a9db_97d7066cd424/jkkuymzw-2pe2i4djunm' - let payload = { - 'firstName': 'Test', - 'lastName': 'Xyz', - 'po_number': Math.random() - } - // ==================Flow initiated============================== - let instanceObj = await DeepRecord.instanceStageSubmit(client, instanceRecordId, payload) - // // ==================OrderEntry============================== - // let StageName = 'OrderEntry' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random() - // }; - // let returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','ArtWork') - // // ==================OrderEntry============================== - // // ==================ArtWork============================== - // StageName = 'ArtWork' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded" - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Proof') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Proof' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'Print' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Print') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'completed' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','completed') - // // ================================================ - // // ==================completed============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'End' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','End') - // // ================================================ -} - -startFlow() - -// setInterval(() => { -// startFlow() -// },20) -// -// setInterval(() => { -// startFlow() -// },20) diff --git a/client/src/assets/js/deepstream/recordStart.js b/client/src/assets/js/deepstream/recordStart.js deleted file mode 100644 index 3e60b2a..0000000 --- a/client/src/assets/js/deepstream/recordStart.js +++ /dev/null @@ -1,80 +0,0 @@ -const deepstream = require('deepstream.io-client-js') -const client = deepstream('ws://167.99.233.211:6020').login() -const DeepRecord = require('./deepRecord') - -let id = 0 - -async function startFlow () { - let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' - // ==================Flow initiated============================== - let instanceObj = await DeepRecord.startInstance(client, instanceId) - instanceObj.recordObj.subscribe((data) => { - }) - // // ==================OrderEntry============================== - // let StageName = 'OrderEntry' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random() - // }; - // let returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','ArtWork') - // // ==================OrderEntry============================== - // // ==================ArtWork============================== - // StageName = 'ArtWork' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded" - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Proof') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Proof' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'Print' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Print') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'completed' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','completed') - // // ================================================ - // // ==================completed============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'End' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','End') - // // ================================================ -} - -startFlow() - -// setInterval(() => { -// startFlow() -// },20) -// -// setInterval(() => { -// startFlow() -// },20) diff --git a/client/static/css/grapes.min.css b/client/static/css/grapes.min.css deleted file mode 100644 index 4ccd388..0000000 --- a/client/static/css/grapes.min.css +++ /dev/null @@ -1,4 +0,0 @@ -.sp-container{position:absolute;top:0;left:0;display:inline-block;*display:inline;*zoom:1;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid black;background:white;opacity:.8}.sp-alpha{display:none;position:absolute;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:solid 1px #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0px;right:0;bottom:0;left:84%;height:28px}.sp-container,.sp-replacer,.sp-preview,.sp-dragger,.sp-slider,.sp-alpha,.sp-clear,.sp-alpha-handle,.sp-container.sp-dragging .sp-input,.sp-container button{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear, 0 0, 100% 0, from(#fff), to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-moz-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-o-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-ms-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:linear-gradient(to right, #fff, rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear, 0 100%, 0 0, from(#000), to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-o-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:linear-gradient(to top, #000, rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-ms-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-o-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-webkit-gradient(linear, left top, left bottom, from(red), color-stop(0.17, #ff0), color-stop(0.33, lime), color-stop(0.5, cyan), color-stop(0.67, blue), color-stop(0.83, #f0f), to(red));background:-webkit-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:linear-gradient(to bottom, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000')}.sp-hidden{display:none !important}.sp-cf:before,.sp-cf:after{content:"";display:table}.sp-cf:after{clear:both}.sp-cf{*zoom:1}@media (max-device-width: 480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:white;opacity:.8}.sp-container{border-radius:0;background-color:#ECECEC;border:solid 1px #f0c49B;padding:0}.sp-container,.sp-container button,.sp-container input,.sp-color,.sp-hue,.sp-clear{font:normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-color,.sp-hue,.sp-clear{border:solid 1px #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px !important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:transparent;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-picker-container,.sp-palette-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left;border:solid 1px #333}.sp-initial span{width:30px;height:25px;border:none;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-palette-button-container,.sp-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;*zoom:1;*display:inline;border:solid 1px #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer:hover,.sp-replacer.sp-active{border-color:#F0C49B;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;float:left;font-size:10px}.sp-preview{position:relative;width:25px;height:20px;border:solid 1px #222;margin-right:5px;float:left;z-index:0}.sp-palette{*width:220px;max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:solid 1px #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eeeeee;background-image:-webkit-linear-gradient(top, #eee, #ccc);background-image:-moz-linear-gradient(top, #eee, #ccc);background-image:-ms-linear-gradient(top, #eee, #ccc);background-image:-o-linear-gradient(top, #eee, #ccc);background-image:linear-gradient(to bottom, #eee, #ccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#dddddd;background-image:-webkit-linear-gradient(top, #ddd, #bbb);background-image:-moz-linear-gradient(top, #ddd, #bbb);background-image:-ms-linear-gradient(top, #ddd, #bbb);background-image:-o-linear-gradient(top, #ddd, #bbb);background-image:linear-gradient(to bottom, #ddd, #bbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-moz-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-ms-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-o-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee}.sp-cancel{font-size:11px;color:#d93f3f !important;margin:0;padding:2px;margin-right:5px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f !important;text-decoration:underline}.sp-palette span:hover,.sp-palette span.sp-thumb-active{border-color:#000}.sp-preview,.sp-alpha,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-preview-inner,.sp-alpha-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)}/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.CodeMirror{font-family:monospace;height:300px;color:black}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{0%{}50%{background-color:transparent}100%{}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}100%{}}@keyframes blink{0%{}50%{background-color:transparent}100%{}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:#f00}.cm-invalidchar{color:#f00}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,0.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,0.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42 !important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0px}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498 !important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom{color:#c85e7c}.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:white !important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}@font-face{font-family:'font3336';src:url("../fonts/main-fonts.eot?v=20");src:url("../fonts/main-fonts.woff?v=20") format("woff"),url("../fonts/main-fonts.ttf?v=20") format("truetype"),url("../fonts/main-fonts.svg?v=20") format("svg"),url("../fonts/main-fonts.eot?v=20") format("embedded-opentype");font-weight:normal;font-style:normal}.gjs-active-color{color:#71b7f1}.gjs-warn-color{color:#ffca6f}.gjs-fonts::before{display:block;font:normal normal normal 14px font3336;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:5em}.gjs-f-b1::before{content:'Q'}.gjs-f-b2::before{content:'W'}.gjs-f-b3::before{content:'E'}.gjs-f-b37::before{content:'R'}.gjs-f-hero::before{content:'T'}.gjs-f-h1p::before{content:'y'}.gjs-f-3ba::before{content:'u'}.gjs-f-image::before{content:'I'}.gjs-f-text::before{content:'o'}.gjs-f-quo::before{content:'p'}.gjs-f-button::before{content:'B'}.gjs-f-divider::before{content:'D'}.gjs-invis-invis,.gjs-clm-tags #gjs-clm-new,.gjs-no-app{background-color:transparent;border:none;color:inherit}.gjs-no-app{height:10px}.gjs-test::btn{color:'#fff'}.opac50,.gjs-clm-tags #gjs-clm-close{opacity:.5;filter:alpha(opacity=50)}.gjs-checker-bg,.gjs-field-colorp-c,.checker-bg,.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==")}.gjs-no-user-select,.gjs-grabbing,.gjs-grabbing *,.gjs-nav-comp-name{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.gjs-no-pointer-events,.gjs-resizer-c,.gjs-margin-v-el,.gjs-padding-v-el,.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{pointer-events:none}.gjs-bg-main,.gjs-off-prv,.gjs-select option,.gjs-clm-select option,.gjs-sm-select option,.gjs-sm-unit option,.gjs-pn-panel,.gjs-nv-item .gjs-nv-title-c,.gjs-field-select option,.gjs-sm-sector .gjs-sm-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c,.gjs-block,.gjs-mdl-dialog,#gjs-rte-toolbar,.sp-container{background-color:#444}.gjs-color-main,.gjs-off-prv,.gjs-btn-prim,.gjs-pn-panel,.gjs-pn-btn,.gjs-btnt,.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field,.gjs-sm-sector .gjs-sm-stack #gjs-sm-add,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add,.gjs-block-svg-path,.gjs-mdl-dialog,#gjs-rte-toolbar .gjs-rte-btn{color:#ddd;fill:#ddd}.gjs-color-active,.gjs-pn-btn.gjs-pn-active,.gjs-btnt.gjs-pn-active{color:#f8f8f8;fill:#f8f8f8}.gjs-bdrag{pointer-events:none !important;position:absolute !important;z-index:10 !important;width:auto}.gjs-drag-helper{background-color:#3b97e3 !important;pointer-events:none !important;position:absolute !important;z-index:10 !important;transform:scale(0.3) !important;transform-origin:top left !important;-webkit-transform-origin:top left !important;margin:15px !important;transition:none !important;outline:none !important}.gjs-grabbing,.gjs-grabbing *{cursor:grabbing !important;cursor:-webkit-grabbing !important}.gjs-grabbing{overflow:hidden}.gjs-off-prv{position:relative;z-index:10;padding:5px;cursor:pointer}.gjs-editor-cont ::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.gjs-editor-cont ::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0.2)}.gjs-editor-cont ::-webkit-scrollbar{width:8px}.clear{clear:both}.no-select,.gjs-com-no-select,.gjs-com-no-select img,.gjs-category-title,.gjs-sm-sector .gjs-sm-title,.gjs-clm-tags .gjs-sm-title,.gjs-block-category .gjs-title,.gjs-clm-tags #gjs-clm-close,.gjs-clm-tags #gjs-clm-tag-label{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.gjs-editor{font-family:Helvetica,sans-serif;background-color:#444;position:relative;box-sizing:border-box;height:100%}.gjs-freezed,.gjs-nv-freezed{opacity:.5;filter:alpha(opacity=50);pointer-events:none}.gjs-btn-prim{background-color:rgba(255,255,255,0.1);border-radius:2px;padding:3px 6px;cursor:pointer;padding:0.5em;border:none}.gjs-btn-prim:active{background-color:rgba(255,255,255,0.1)}.gjs-input,.gjs-select{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);border-radius:2px;box-shadow:1px 1px 0 rgba(255,255,255,0.1);box-sizing:border-box;color:#ddd;padding:0.5em 1em}div.gjs-select{padding:0}.gjs-select select{padding-right:10px}.gjs-select:-moz-focusring,.gjs-select select:-moz-focusring{color:transparent;text-shadow:0 0 0 rgba(255,255,255,0.7)}.gjs-input:focus,.gjs-select:focus,.gjs-button:focus,.gjs-btn-prim:focus,.gjs-select:focus,.gjs-select select:focus{outline:none}.gjs-traits-label{border-bottom:1px solid rgba(0,0,0,0.3);font-size:13px;font-weight:lighter;margin-bottom:5px;padding:10px;text-align:left}.gjs-trt-trait{display:flex;justify-content:start;padding:5px 10px;font-size:0.75em;font-weight:lighter}.gjs-trt-trait .gjs-label{width:30%;text-align:left}.gjs-trt-trait .gjs-field{width:70%}.gjs-cv-canvas{background-color:rgba(0,0,0,0.15);box-sizing:border-box;position:absolute;width:85%;height:100%;bottom:0;left:0;overflow:hidden;padding-top:40px;z-index:1}.gjs-cv-canvas>iframe{height:100%;outline:medium none;width:100%;border:none;margin:0 auto;display:block}.gjs-cv-canvas .gjs-ghost{display:none;pointer-events:none;background-color:#5b5b5b;border:2px dashed #ccc;position:absolute;z-index:10;opacity:.55;filter:alpha(opacity=55)}.gjs-cv-canvas .gjs-highlighter,.gjs-cv-canvas .gjs-highlighter-sel{position:absolute;outline:1px solid #3b97e3;pointer-events:none}.gjs-cv-canvas .gjs-highlighter-warning{outline:3px solid #ffca6f}.gjs-cv-canvas .gjs-highlighter-sel{outline:3px solid #3b97e3}.gjs-cv-canvas #gjs-tools{width:100%;position:absolute;top:0;left:0;outline:none}.gjs-cv-canvas>div:first-child{background-color:#fff;position:relative;height:100%;overflow:auto;width:100%}.gjs-cv-canvas *{box-sizing:border-box}.gjs-frame{transition:width 0.35s ease}.gjs-toolbar{position:absolute;background-color:#3b97e3;color:white;z-index:10}.gjs-toolbar-item{padding:5px 7px;font-size:0.8rem;cursor:pointer}.gjs-resizer-c{position:absolute;z-index:9}.gjs-margin-v-el,.gjs-padding-v-el,.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{opacity:.1;filter:alpha(opacity=10);position:absolute;background-color:yellow}.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{opacity:.2;filter:alpha(opacity=20)}.gjs-padding-v-el,.gjs-fixedpadding-v-el{background-color:navy}.gjs-resizer-h{pointer-events:all;position:absolute;border:3px solid #3b97e3;width:10px;height:10px;background-color:#fff;margin:-5px}.gjs-resizer-h-tl{top:0;left:0;cursor:nwse-resize}.gjs-resizer-h-tr{top:0;right:0;cursor:nesw-resize}.gjs-resizer-h-tc{top:0;margin:-5px auto;left:0;right:0;cursor:ns-resize}.gjs-resizer-h-cl{left:0;margin:auto -5px;top:0;bottom:0;cursor:ew-resize}.gjs-resizer-h-cr{margin:auto -5px;top:0;bottom:0;right:0;cursor:ew-resize}.gjs-resizer-h-bl{bottom:0;left:0;cursor:nesw-resize}.gjs-resizer-h-bc{bottom:0;margin:-5px auto;left:0;right:0;cursor:ns-resize}.gjs-resizer-h-br{bottom:0;right:0;cursor:nwse-resize}.gjs-pn-panel .gjs-resizer-h{background-color:rgba(0,0,0,0.2);border:none;opacity:0;transition:opacity 0.25s}.gjs-pn-panel .gjs-resizer-h:hover{opacity:1}.gjs-pn-panel .gjs-resizer-h-tc,.gjs-pn-panel .gjs-resizer-h-bc{margin:0 auto;width:100%}.gjs-pn-panel .gjs-resizer-h-cr,.gjs-pn-panel .gjs-resizer-h-cl{margin:auto 0;height:100%}.gjs-resizing .gjs-highlighter,.gjs-resizing .gjs-badge{display:none !important}.gjs-resizing-tl *{cursor:nwse-resize !important}.gjs-resizing-tr *{cursor:nesw-resize !important}.gjs-resizing-tc *{cursor:ns-resize !important}.gjs-resizing-cl *{cursor:ew-resize !important}.gjs-resizing-cr *{cursor:ew-resize !important}.gjs-resizing-bl *{cursor:nesw-resize !important}.gjs-resizing-bc *{cursor:ns-resize !important}.gjs-resizing-br *{cursor:nwse-resize !important}.btn-cl,.gjs-mdl-dialog .gjs-mdl-btn-close,.gjs-am-assets-cont #gjs-am-close{opacity:.3;filter:alpha(opacity=30);font-size:25px;cursor:pointer}.btn-cl:hover,.gjs-mdl-dialog .gjs-mdl-btn-close:hover,.gjs-am-assets-cont #gjs-am-close:hover{opacity:.7;filter:alpha(opacity=70)}#commands.panel{min-width:35px;height:100%;z-index:3}#options.panel{z-index:4;bottom:0}#views.panel{width:16.5%;font-weight:lighter;color:#ddd;right:0;top:0;z-index:3;height:100%;padding:0}#views.panel .c{height:100%}#commands.panel,#options.panel{width:3.5%;left:0}#options .c{display:table;margin:0 auto}body.dragging,body.dragging *{cursor:move !important}.dragged{position:absolute;opacity:.5;filter:alpha(opacity=50);z-index:2000}ol.example li.placeholder{position:relative}ol.example li.placeholder:before{position:absolute}.no-dots,.ui-resizable-handle{border:none !important;margin:0 !important;outline:none !important}.gjs-com-dashed *{outline:1px dashed #888;outline-offset:-2px;box-sizing:border-box}.gjs-cv-canvas .gjs-comp-selected{outline:3px solid #3b97e3 !important}*.gjs-com-hover,div.gjs-com-hover{outline:1px solid #3b97e3}*.gjs-com-hover-delete,div.gjs-com-hover-delete{outline:2px solid #dd3636;opacity:.5;filter:alpha(opacity=50)}*.gjs-com-hover-move,div.gjs-com-hover-move{outline:3px solid #ffca6f}.gjs-com-badge,.gjs-com-badge-red,.gjs-badge{pointer-events:none;background-color:#3b97e3;color:#fff;padding:2px 5px;position:absolute;z-index:1;font-size:12px;outline:none;display:none}.gjs-com-badge-red{background-color:#dd3636}.gjs-badge-warning{background-color:#ffca6f}.gjs-placeholder,.gjs-com-placeholder,.gjs-nv-placeholder{position:absolute;z-index:10;pointer-events:none;display:none}.gjs-placeholder,.gjs-nv-placeholder{border-style:solid !important;border-color:#62c462;outline:none;box-sizing:border-box}.gjs-placeholder-int,.gjs-com-placeholder-int,.gjs-nv-placeholder-int{background-color:#62c462;box-shadow:0 0 3px rgba(0,0,0,0.2);height:100%;width:100%;pointer-events:none;padding:1.5px;outline:none}.gjs-pn-panel{display:inline-block;padding:5px;position:absolute;box-sizing:border-box;text-align:center;z-index:3}.gjs-pn-panel#gjs-pn-commands,.gjs-pn-panel#gjs-pn-options2{width:85%;left:0;top:0;box-shadow:0 0 5px rgba(0,0,0,0.3)}.gjs-pn-panel#gjs-pn-options{right:15%;top:0}.gjs-pn-panel#gjs-pn-options2{bottom:150px;height:auto}.gjs-pn-panel .icon-undo,.gjs-pn-panel .icon-redo{font-size:20px;height:30px;width:25px}.gjs-pn-panel#gjs-pn-views{border-bottom:2px solid rgba(0,0,0,0.3);right:0;width:15%;z-index:4}.gjs-pn-panel#gjs-pn-views-container{height:100%;padding:42px 0 0;right:0;width:15%;overflow:auto;box-shadow:0 0 5px rgba(0,0,0,0.3)}.gjs-pn-buttons{align-items:center;display:flex;justify-content:center}.gjs-pn-btn,.gjs-btnt{box-sizing:border-box;height:30px;width:30px;line-height:21px;background-color:transparent;border:none;font-size:18px;margin-right:5px;border-radius:2px;cursor:pointer;padding:5px;position:relative}.gjs-pn-btn.gjs-pn-active,.gjs-btnt.gjs-pn-active{background-color:rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.25) inset}.gjs-pn-btn>.gjs-pn-arrow-rd,.gjs-btnt>.gjs-pn-arrow-rd{border-bottom:5px solid rgba(255,255,255,0.7);border-left:5px solid transparent;bottom:2px;right:2px;position:absolute}.gjs-pn-btn>.gjs-pn-buttons,.gjs-btnt>.gjs-pn-buttons{background-color:#444;border-radius:2px;position:absolute;display:none;left:50px;top:0;padding:5px}.gjs-pn-btn>.gjs-pn-buttons.gjs-pn-visible,.gjs-btnt>.gjs-pn-buttons.gjs-pn-visible{display:block}.gjs-pn-btn>.gjs-pn-buttons>.gjs-pn-arrow-l,.gjs-btnt>.gjs-pn-buttons>.gjs-pn-arrow-l{border-bottom:5px solid transparent;border-right:5px solid #444;border-top:5px solid transparent;left:-5px;top:15px;position:absolute}.gjs-nv-selected-parent{border:1px solid #ffca6f}.gjs-nv-opac50{opacity:.5;filter:alpha(opacity=50)}.gjs-nv-navigator{position:relative;height:100%}.gjs-nv-navigator #gjs-nv-placeholder{width:100%;position:absolute}.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int{height:100%;padding:1px}.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int.gjs-nv-insert{background-color:#62c462}.gjs-nv-navigator .gjs-nv-item{font-weight:lighter;text-align:left;position:relative;background-color:rgba(0,0,0,0.1)}.gjs-nv-navigator .gjs-nv-item.gjs-nv-hide{opacity:.55;filter:alpha(opacity=55)}.gjs-nv-navigator .gjs-nv-item #gjs-nv-counter{font-size:10px;position:absolute;right:27px;top:9px}.gjs-nv-navigator .gjs-nv-item #gjs-nv-btn-eye{height:auto !important;width:auto !important;font-size:13px;left:0;top:0;padding:7px 5px 7px 10px;position:absolute;cursor:pointer;z-index:1}.gjs-nv-item #gjs-nv-caret{font-size:7px;width:8px;padding:5px;cursor:pointer;opacity:.7;filter:alpha(opacity=70)}.gjs-nv-item #gjs-nv-caret:hover{opacity:1;filter:alpha(opacity=100)}.gjs-nv-title{background-color:rgba(0,0,0,0.1);font-size:11px;letter-spacing:1px;padding:3px 10px 5px 30px;border-bottom:1px solid rgba(0,0,0,0.3);border-top:1px solid rgba(255,255,255,0.1);display:flex;align-items:center}.gjs-nv-item .gjs-nv-children .gjs-nv-title{border-left:1px solid rgba(5,5,5,0.3)}.gjs-nv-item>.gjs-nv-children{margin-left:7px;display:none}.gjs-nv-item.open>.gjs-nv-children{display:block}.gjs-nv-item>.gjs-nv-no-chld>#gjs-nv-caret::before{content:''}.gjs-nv-no-chld>#gjs-nv-caret{display:none}.gjs-nv-item>#gjs-nv-move{position:absolute;cursor:move;font-size:12px;right:0;top:0;padding:7px 10px 7px 5px}.gjs-nv-selected .gjs-nv-title{background-color:rgba(255,255,255,0.1)}.gjs-nv-nav-item-edit{visibility:hidden;padding:5px;font-size:10px;opacity:.7;filter:alpha(opacity=70)}.gjs-nv-nav-item-edit:hover{opacity:1;filter:alpha(opacity=100)}.gjs-nv-title-c:hover .gjs-nv-nav-item-edit{visibility:visible;cursor:pointer}.gjs-nav-comp-name{padding:5px;box-sizing:content-box}.btn.expand,.gjs-nv-navigator .gjs-nv-item .expand#gjs-nv-btn-eye{background-image:none}.gjs-comp-image-placeholder{display:block;background-color:#f5f5f5;color:#777;height:50px;width:50px;line-height:50px;outline:3px solid #ffca6f;outline-offset:-3px;text-align:center;font-size:16.66667px;cursor:pointer}.gjs-comp-image-placeholder.fa-picture-o::after{content:"\f03e"}.gjs-label{line-height:18px}.gjs-field{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);box-shadow:1px 1px 0 rgba(255,255,255,0.1);border-radius:2px;box-sizing:border-box;padding:0;position:relative}.gjs-field input,.gjs-field select,.gjs-field textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:rgba(255,255,255,0.7);border:none;background-color:transparent;box-sizing:border-box;width:100%;position:relative;padding:3px 4px 4px;z-index:1}.gjs-field textarea{resize:vertical}.gjs-field select{height:20px;padding-right:12px}.gjs-field option{padding:3px 0}.gjs-field .gjs-sel-arrow{height:100%;width:9px;position:absolute;right:0;top:0;z-index:0}.gjs-field .gjs-d-s-arrow{bottom:7px;border-top:4px solid rgba(255,255,255,0.7);position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;cursor:pointer}.gjs-field-color input{padding-right:22px;box-sizing:border-box}.gjs-field-colorp{border-left:1px solid rgba(0,0,0,0.3);box-sizing:border-box;height:100%;padding:2px;position:absolute;right:0;top:0;width:22px;z-index:10}.gjs-field-colorp .gjs-checker-bg,.gjs-field-colorp .gjs-field-colorp-c{height:100%;width:100%;border-radius:1px}.gjs-field-colorp-c{height:100%;position:relative;width:100%}.gjs-field-color-picker{background-color:#ddd;cursor:pointer;height:100%;width:100%;box-shadow:0 0 1px rgba(0,0,0,0.3);border-radius:1px;position:absolute;top:0}.gjs-field-radio{float:left;overflow:hidden;padding:0;width:auto}.gjs-field-checkbox{padding:0;width:auto !important}.gjs-field-checkbox input{display:none}.gjs-field-checkbox input:checked+.gjs-chk-icon{border-color:rgba(255,255,255,0.5);border-width:0 2px 2px 0;border-style:solid}.gjs-radio-item{float:left;border-left:1px solid rgba(0,0,0,0.3)}.gjs-radio-item:first-child{border:none}.gjs-radio-item:hover{background:rgba(0,0,0,0.3)}.gjs-radio-item input{display:none}.gjs-radio-item input:checked+.gjs-radio-item-label{background-color:rgba(255,255,255,0.2)}.gjs-radio-item-label{cursor:pointer;display:block;padding:5px}.gjs-field-units{position:absolute;right:0;top:0}.gjs-field-units select{padding:0 12px 0 0}.gjs-field-unit{position:absolute;right:10px;top:3px;font-size:10px;color:rgba(255,255,255,0.7);cursor:pointer}.gjs-field-arrows{z-index:10;cursor:ns-resize;height:100%;position:absolute;right:0;top:0;width:9px}.gjs-field-arrow-u,.gjs-field-arrow-d{position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,0.7);bottom:4px;cursor:pointer}.gjs-field-arrow-u{border-bottom:4px solid rgba(255,255,255,0.7);border-top:none;top:4px}.gjs-field-select{padding:0}.gjs-field-range{background-color:transparent;border:none;box-shadow:none;padding:0}.gjs-field-range input{margin:0}.gjs-field-range input::-moz-range-thumb{height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-5px;height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-ms-thumb{height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-moz-range-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-field-range input::-webkit-slider-runnable-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-field-range input::-ms-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-chk-icon{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);box-sizing:border-box;display:block;height:14px;margin:0 5px;width:6px;cursor:pointer}.gjs-add-trasp{background:none;border:none;color:#ddd;cursor:pointer;font-size:1em;border-radius:2px;opacity:.75;filter:alpha(opacity=75)}.gjs-add-trasp:hover{opacity:1;filter:alpha(opacity=100)}.gjs-add-trasp:active{background-color:rgba(0,0,0,0.2)}.gjs-devices-c{display:flex;align-items:center;padding:4px}.gjs-devices-c .gjs-device-label{flex-grow:2;font-size:0.7em;text-align:left;margin-right:10px}.gjs-devices-c .gjs-select{flex-grow:20}.gjs-devices-c .gjs-add-trasp{flex-grow:1;margin-left:5px}.gjs-category-open,.gjs-sm-sector.gjs-sm-open,.gjs-sm-open.gjs-clm-tags,.gjs-block-category.gjs-open{border-bottom:1px solid rgba(0,0,0,0.25)}.gjs-category-title,.gjs-sm-sector .gjs-sm-title,.gjs-clm-tags .gjs-sm-title,.gjs-block-category .gjs-title{font-weight:lighter;background-color:rgba(0,0,0,0.1);font-size:13px;letter-spacing:1px;padding:9px 10px 9px 20px;border-bottom:1px solid rgba(0,0,0,0.25);text-align:left;position:relative;cursor:pointer}.gjs-sm-clear{font-size:1rem;line-height:0;cursor:pointer}.gjs-sm-close-btn,.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close{display:block;font-size:23px;position:absolute;cursor:pointer;right:5px;top:0;opacity:.2;filter:alpha(opacity=20)}.gjs-sm-close-btn:hover,.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover{opacity:.7;filter:alpha(opacity=70)}.gjs-sm-header{font-size:11px;font-weight:lighter;padding:10px}.gjs-sm-sector,.gjs-clm-tags{clear:both;font-weight:lighter;text-align:left}.gjs-sm-sector #gjs-sm-caret,.gjs-clm-tags #gjs-sm-caret{padding-right:5px;font-size:11px}.gjs-sm-sector .gjs-sm-label,.gjs-clm-tags .gjs-sm-label{margin:5px 5px 2px 0}.gjs-sm-sector .gjs-sm-field,.gjs-clm-tags .gjs-sm-field,.gjs-sm-sector .gjs-clm-field,.gjs-clm-tags .gjs-clm-field{width:100%;position:relative}.gjs-sm-sector .gjs-sm-field input,.gjs-clm-tags .gjs-sm-field input,.gjs-sm-sector .gjs-clm-field input,.gjs-clm-tags .gjs-clm-field input,.gjs-sm-sector .gjs-sm-field select,.gjs-clm-tags .gjs-sm-field select,.gjs-sm-sector .gjs-clm-field select,.gjs-clm-tags .gjs-clm-field select{background-color:transparent;color:rgba(255,255,255,0.7);border:none;width:100%}.gjs-sm-sector .gjs-sm-field input,.gjs-clm-tags .gjs-sm-field input,.gjs-sm-sector .gjs-clm-field input,.gjs-clm-tags .gjs-clm-field input{box-sizing:border-box}.gjs-sm-sector .gjs-sm-field select,.gjs-clm-tags .gjs-sm-field select,.gjs-sm-sector .gjs-clm-field select,.gjs-clm-tags .gjs-clm-field select{position:relative;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gjs-sm-sector .gjs-sm-field select::-ms-expand,.gjs-clm-tags .gjs-sm-field select::-ms-expand,.gjs-sm-sector .gjs-clm-field select::-ms-expand,.gjs-clm-tags .gjs-clm-field select::-ms-expand{display:none}.gjs-sm-sector .gjs-sm-field select:-moz-focusring,.gjs-clm-tags .gjs-sm-field select:-moz-focusring,.gjs-sm-sector .gjs-clm-field select:-moz-focusring,.gjs-clm-tags .gjs-clm-field select:-moz-focusring{color:transparent;text-shadow:0 0 0 rgba(255,255,255,0.7)}.gjs-sm-sector .gjs-sm-field input:focus,.gjs-clm-tags .gjs-sm-field input:focus,.gjs-sm-sector .gjs-clm-field input:focus,.gjs-clm-tags .gjs-clm-field input:focus,.gjs-sm-sector .gjs-sm-field select:focus,.gjs-clm-tags .gjs-sm-field select:focus,.gjs-sm-sector .gjs-clm-field select:focus,.gjs-clm-tags .gjs-clm-field select:focus{outline:none}.gjs-sm-sector .gjs-sm-field .gjs-sm-unit,.gjs-clm-tags .gjs-sm-field .gjs-sm-unit,.gjs-sm-sector .gjs-clm-field .gjs-sm-unit,.gjs-clm-tags .gjs-clm-field .gjs-sm-unit{position:absolute;right:10px;top:3px;font-size:10px;color:rgba(255,255,255,0.7);cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-clm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-sel-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-int-arrows,.gjs-clm-tags .gjs-sm-field .gjs-sm-int-arrows,.gjs-sm-sector .gjs-clm-field .gjs-sm-int-arrows,.gjs-clm-tags .gjs-clm-field .gjs-sm-int-arrows,.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow{height:100%;width:9px;position:absolute;right:0;top:0;cursor:ns-resize}.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow{cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow{position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow{border-bottom:4px solid rgba(255,255,255,0.7);top:4px}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow{border-top:4px solid rgba(255,255,255,0.7);bottom:4px}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow{bottom:7px}.gjs-sm-sector .gjs-sm-field.gjs-sm-color,.gjs-clm-tags .gjs-sm-field.gjs-sm-color,.gjs-sm-sector .gjs-sm-color.gjs-clm-field,.gjs-clm-tags .gjs-sm-color.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-input,.gjs-clm-tags .gjs-sm-field.gjs-sm-input,.gjs-sm-sector .gjs-sm-input.gjs-clm-field,.gjs-clm-tags .gjs-sm-input.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-integer,.gjs-clm-tags .gjs-sm-field.gjs-sm-integer,.gjs-sm-sector .gjs-sm-integer.gjs-clm-field,.gjs-clm-tags .gjs-sm-integer.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-list,.gjs-clm-tags .gjs-sm-field.gjs-sm-list,.gjs-sm-sector .gjs-sm-list.gjs-clm-field,.gjs-clm-tags .gjs-sm-list.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field,.gjs-clm-tags .gjs-sm-select.gjs-clm-field,.gjs-sm-sector .gjs-clm-select,.gjs-clm-tags .gjs-clm-select{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);box-shadow:1px 1px 0 rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);border-radius:2px;box-sizing:border-box;padding:0 5px}.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field{border-radius:2px}.gjs-sm-sector .gjs-sm-field.gjs-sm-select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field,.gjs-clm-tags .gjs-sm-select.gjs-clm-field,.gjs-sm-sector .gjs-clm-select,.gjs-clm-tags .gjs-clm-select{padding:0}.gjs-sm-sector .gjs-sm-field.gjs-sm-select select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field select,.gjs-clm-tags .gjs-sm-select.gjs-clm-field select,.gjs-sm-sector .gjs-clm-select select,.gjs-clm-tags .gjs-clm-select select{height:20px}.gjs-sm-sector .gjs-sm-field.gjs-sm-select option,.gjs-clm-tags .gjs-sm-field.gjs-sm-select option,.gjs-sm-sector .gjs-sm-select.gjs-clm-field option,.gjs-clm-tags .gjs-sm-select.gjs-clm-field option,.gjs-sm-sector .gjs-clm-select option,.gjs-clm-tags .gjs-clm-select option{padding:3px 0}.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field{background-color:rgba(0,0,0,0.1);border:1px solid rgba(0,0,0,0.25)}.gjs-sm-sector .gjs-sm-field.gjs-sm-list,.gjs-clm-tags .gjs-sm-field.gjs-sm-list,.gjs-sm-sector .gjs-sm-list.gjs-clm-field,.gjs-clm-tags .gjs-sm-list.gjs-clm-field{width:auto;padding:0;overflow:hidden;float:left}.gjs-sm-sector .gjs-sm-field.gjs-sm-list input,.gjs-clm-tags .gjs-sm-field.gjs-sm-list input,.gjs-sm-sector .gjs-sm-list.gjs-clm-field input,.gjs-clm-tags .gjs-sm-list.gjs-clm-field input{display:none}.gjs-sm-sector .gjs-sm-field.gjs-sm-list label,.gjs-clm-tags .gjs-sm-field.gjs-sm-list label,.gjs-sm-sector .gjs-sm-list.gjs-clm-field label,.gjs-clm-tags .gjs-sm-list.gjs-clm-field label{cursor:pointer;padding:5px;display:block}.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label,.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label,.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label,.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label{background-color:rgba(255,255,255,0.2)}.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-icon,.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-icon,.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-icon,.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-icon{background-repeat:no-repeat;background-position:center;text-shadow:none;line-height:normal}.gjs-sm-sector .gjs-sm-field.gjs-sm-integer select,.gjs-clm-tags .gjs-sm-field.gjs-sm-integer select,.gjs-sm-sector .gjs-sm-integer.gjs-clm-field select,.gjs-clm-tags .gjs-sm-integer.gjs-clm-field select{width:auto;padding:0}.gjs-sm-sector .gjs-sm-list .gjs-sm-el,.gjs-clm-tags .gjs-sm-list .gjs-sm-el{float:left;border-left:1px solid rgba(0,0,0,0.3)}.gjs-sm-sector .gjs-sm-list .gjs-sm-el:first-child,.gjs-clm-tags .gjs-sm-list .gjs-sm-el:first-child{border:none}.gjs-sm-sector .gjs-sm-list .gjs-sm-el:hover,.gjs-clm-tags .gjs-sm-list .gjs-sm-el:hover{background:rgba(0,0,0,0.3)}.gjs-sm-sector .gjs-sm-properties,.gjs-clm-tags .gjs-sm-properties{font-size:11px;padding:10px 5px}.gjs-sm-sector .gjs-sm-property,.gjs-clm-tags .gjs-sm-property{box-sizing:border-box;float:left;width:50%;margin-bottom:5px;padding:0 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-composite,.gjs-clm-tags .gjs-sm-property.gjs-sm-composite,.gjs-sm-sector .gjs-sm-property.gjs-sm-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file,.gjs-sm-sector .gjs-sm-property.gjs-sm-list,.gjs-clm-tags .gjs-sm-property.gjs-sm-list,.gjs-sm-sector .gjs-sm-property.gjs-sm-stack,.gjs-clm-tags .gjs-sm-property.gjs-sm-stack{width:100%}.gjs-sm-sector .gjs-sm-property .gjs-sm-btn,.gjs-clm-tags .gjs-sm-property .gjs-sm-btn{background-color:rgba(33,33,33,0.3);border-radius:2px;box-shadow:1px 1px 0 rgba(5,5,5,0.3),1px 1px 0 rgba(43,43,43,0.3) inset;padding:5px;position:relative;text-align:center;height:auto;width:100%;cursor:pointer;color:#ddd;box-sizing:border-box;text-shadow:-1px -1px 0 rgba(0,0,0,0.3);border:none;opacity:.85;filter:alpha(opacity=85)}.gjs-sm-sector .gjs-sm-property .gjs-sm-btn-c,.gjs-clm-tags .gjs-sm-property .gjs-sm-btn-c{box-sizing:border-box;float:left;width:100%;padding:0 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box{background-color:rgba(255,255,255,0.05);border-radius:2px;margin-top:5px;position:relative;overflow:hidden}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show{border:1px solid rgba(252,252,252,0.05);padding:3px 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close{display:block}.gjs-sm-sector .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file{height:50px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file{background-size:auto 100%;background-repeat:no-repeat;background-position:center center}.gjs-sm-sector .gjs-sm-property .gjs-sm-layers,.gjs-clm-tags .gjs-sm-property .gjs-sm-layers{margin-top:5px;min-height:30px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer{background-color:rgba(255,255,255,0.055);border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,0.2),1px 1px 0 rgba(255,255,255,0.055) inset;margin:2px;padding:7px;position:relative;cursor:pointer}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box{height:15px;position:absolute;right:27px;top:6px;width:15px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview,.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box{border-radius:2px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer{display:block;font-size:23px;position:absolute;cursor:pointer;right:5px;top:0;opacity:.5;filter:alpha(opacity=50)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover{opacity:.8;filter:alpha(opacity=80)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview{background-color:white;height:100%;width:100%;background-size:cover !important}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active{background-color:rgba(255,255,255,0.12)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box{display:none}.gjs-sm-sector #gjs-sm-text-shadow #gjs-sm-preview::after,.gjs-clm-tags #gjs-sm-text-shadow #gjs-sm-preview::after{color:#000;content:"T";font-weight:900;line-height:17px;padding:0 4px}.gjs-sm-sector .gjs-sm-stack .gjs-sm-properties,.gjs-clm-tags .gjs-sm-stack .gjs-sm-properties{padding-top:5px}.gjs-sm-sector .gjs-sm-stack #gjs-sm-add,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add{background:none;border:none;cursor:pointer;font-size:22px;line-height:10px;position:absolute;right:0;top:-20px;opacity:0.75}.gjs-sm-sector .gjs-sm-stack #gjs-sm-add:hover,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add:hover{opacity:1;filter:alpha(opacity=100)}.gjs-sm-sector .gjs-sm-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c{height:100%;width:20px;position:absolute;right:0;top:0;box-sizing:border-box;border-radius:2px;padding:2px}.gjs-sm-sector .gjs-sm-colorp-c .gjs-checker-bg,.gjs-clm-tags .gjs-sm-colorp-c .gjs-checker-bg,.gjs-sm-sector .gjs-sm-colorp-c .gjs-field-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c .gjs-field-colorp-c{height:100%;width:100%;border-radius:1px}.gjs-sm-sector .gjs-sm-color-picker,.gjs-clm-tags .gjs-sm-color-picker{background-color:#ddd;cursor:pointer;height:16px;width:100%;margin-top:-16px;box-shadow:0 0 1px rgba(0,0,0,0.3);border-radius:1px}.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-upload,.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-upload{left:0;top:0;position:absolute;width:100%;opacity:0;cursor:pointer}.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-label,.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-label{padding:2px 0}.gjs-sm-layer>#gjs-sm-move{opacity:.7;filter:alpha(opacity=70);cursor:move;font-size:12px;float:left;margin:0 5px 0 0}.gjs-sm-layer>#gjs-sm-move:hover{opacity:.9;filter:alpha(opacity=90)}.gjs-blocks-c{display:flex;flex-wrap:wrap;justify-content:flex-start}.gjs-block-category{width:100%}.gjs-block-category .gjs-caret-icon{margin-right:5px}.gjs-block{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;width:45%;padding:1em;box-sizing:border-box;height:90px;cursor:all-scroll;font-size:11px;font-weight:lighter;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid rgba(0,0,0,0.2);border-radius:3px;margin:10px 2.5% 5px;box-shadow:0 1px 0 0 rgba(0,0,0,0.15);transition:all 0.2s ease 0s;transition-property:box-shadow, color}.gjs-block:hover{box-shadow:0 3px 4px 0 rgba(0,0,0,0.15)}.gjs-block-svg{width:61%}.gjs-block.fa{font-size:2em;line-height:2em;padding:11px}.gjs-block-label{line-height:normal;font-size:0.65rem;font-weight:normal;font-family:Helvetica, sans-serif}.gjs-block.gjs-bdrag{width:auto;padding:0}.gjs-clm-tags{font-size:11px;padding:10px 5px}.gjs-clm-tags #gjs-clm-label,.gjs-clm-tags #gjs-clm-sel{padding:7px 0;float:left}.gjs-clm-tags #gjs-clm-sel{font-style:italic;margin-left:5px}.gjs-clm-tags #gjs-clm-status-c{float:right}.gjs-clm-tags #gjs-clm-tags-field{clear:both;padding:5px;margin-bottom:5px}.gjs-clm-tags #gjs-clm-tags-c{display:inline-block;vertical-align:top}.gjs-clm-tags #gjs-clm-add-tag{background-color:rgba(255,255,255,0.15);border-radius:2px;padding:5px 6px;box-shadow:1px 1px 0 rgba(255,255,255,0.2) inset;border:1px solid rgba(0,0,0,0.15);cursor:pointer}.gjs-clm-tags #gjs-clm-new{color:#ddd;padding:5px 6px;display:none}.gjs-clm-tags .gjs-clm-tag{background-color:#804f7b;border:1px solid #5a3857;box-shadow:1px 1px #9c6196 inset;text-shadow:1px 1px #6a4166;display:inline-block;border-radius:3px;margin:0 3px 3px 0;padding:4px;cursor:default}.gjs-clm-tags #gjs-clm-close{font-size:20px;line-height:0;cursor:pointer;color:rgba(255,255,255,0.9)}.gjs-clm-tags #gjs-clm-close:hover{opacity:.7;filter:alpha(opacity=70)}.gjs-clm-tags #gjs-clm-checkbox{color:rgba(255,255,255,0.9);vertical-align:middle;cursor:pointer;font-size:9px}.gjs-clm-tags #gjs-clm-tag-label{cursor:text}.gjs-clm-tags #gjs-clm-tag-label input{width:auto;padding:0 4px}.gjs-mdl-backlayer{background-color:#000;position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;opacity:.5;filter:alpha(opacity=50)}.gjs-mdl-container{font-family:Helvetica,sans-serif;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%}.gjs-mdl-dialog{text-shadow:-1px -1px 0 rgba(0,0,0,0.05);animation:gjs-slide-down 0.215s;margin:30px auto 0;max-width:850px;width:90%;border-radius:3px;font-weight:lighter;position:relative;z-index:2}.gjs-mdl-dialog .gjs-mdl-btn-close{position:absolute;right:15px;top:5px}.gjs-mdl-active .gjs-mdl-dialog{animation:gjs-mdl-slide-down 0.216s}.gjs-mdl-header,.gjs-mdl-content{padding:10px 15px;clear:both}.gjs-mdl-header{position:relative;border-bottom:1px solid rgba(0,0,0,0.3);padding:15px 15px 7px}.gjs-mdl-content{border-top:1px solid rgba(255,255,255,0.1)}.gjs-export-dl::after{content:"";clear:both;display:block;margin-bottom:10px}.gjs-am-assets{height:290px;overflow:auto;clear:both}.gjs-am-assets-header{padding:5px}.gjs-am-add-asset .gjs-am-add-field{width:70%;float:left}.gjs-am-add-asset button{width:25%;float:right}.gjs-am-add-field input{padding:6px}.gjs-am-assets-cont{background-color:rgba(0,0,0,0.1);border-radius:3px;box-sizing:border-box;padding:10px;width:45%;float:right;height:325px;overflow:hidden}.gjs-am-assets-cont #gjs-am-preview-cont{position:relative;height:70px;width:30%;background-color:#444;border-radius:2px;float:left;overflow:hidden}.gjs-am-assets-cont #gjs-am-preview{position:absolute;background-position:center center;background-size:cover;background-repeat:no-repeat;height:100%;width:100%;z-index:1}.gjs-am-assets-cont #gjs-am-preview-bg{position:absolute;height:100%;width:100%;opacity:.5;filter:alpha(opacity=50);z-index:0}.gjs-am-assets-cont .gjs-am-highlight{background-color:rgba(255,255,255,0.1)}.gjs-am-assets-cont .gjs-am-asset{border-bottom:1px solid rgba(0,0,0,0.3);padding:5px;cursor:pointer;position:relative}.gjs-am-assets-cont .gjs-am-asset:hover #gjs-am-close{display:block}.gjs-am-assets-cont #gjs-am-close{position:absolute;right:5px;top:0;display:none}.gjs-am-assets-cont #gjs-am-meta{width:70%;float:left;font-size:12px;padding:5px 0 0 5px;box-sizing:border-box}.gjs-am-assets-cont #gjs-am-meta>div{margin-bottom:5px}.gjs-am-assets-cont #gjs-am-meta #gjs-am-dimensions{font-size:10px;opacity:.5;filter:alpha(opacity=50)}.gjs-am-file-uploader{width:55%;float:left}.gjs-am-file-uploader>form{background-color:rgba(0,0,0,0.1);border:2px dashed;border-radius:3px;position:relative;text-align:center;margin-bottom:15px}.gjs-am-file-uploader>form.gjs-am-hover{border:2px solid #62c462;color:#75cb75}.gjs-am-file-uploader>form.gjs-am-disabled{border-color:red}.gjs-am-file-uploader>form #gjs-am-uploadFile{opacity:0;filter:alpha(opacity=0);padding:150px 10px;width:100%;box-sizing:border-box}.gjs-am-file-uploader #gjs-am-title{position:absolute;padding:150px 10px;width:100%}.gjs-cm-editor-c{float:left;box-sizing:border-box;width:50%}.gjs-cm-editor-c .CodeMirror{height:450px}.gjs-cm-editor{font-size:12px}.gjs-cm-editor#gjs-cm-htmlmixed{padding-right:10px;border-right:1px solid rgba(0,0,0,0.3)}.gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title{color:#a97d44}.gjs-cm-editor#gjs-cm-css{padding-left:10px;border-left:1px solid rgba(255,255,255,0.1)}.gjs-cm-editor#gjs-cm-css #gjs-cm-title{color:#ddca7e}.gjs-cm-editor #gjs-cm-title{background-color:rgba(0,0,0,0.3);font-size:12px;padding:5px 10px 3px;text-align:right}#gjs-rte-toolbar{display:none;border:1px solid rgba(0,0,0,0.3);position:absolute;border-radius:3px;z-index:10}#gjs-rte-toolbar .gjs-rte-btn{display:inline-block;padding:5px;min-width:25px;border-right:1px solid rgba(0,0,0,0.3);text-align:center;cursor:pointer;outline:none}#gjs-rte-toolbar .gjs-rte-btn:last-child{border-right:none}#gjs-rte-toolbar .gjs-rte-btn.btn-info{background-color:rgba(0,0,0,0.3)}#gjs-rte-toolbar .gjs-rte-btn:hover{background-color:rgba(255,255,255,0.1)}#gjs-rte-toolbar select{height:16px}.sp-hue,.sp-slider{cursor:row-resize}.sp-color,.sp-dragger{cursor:crosshair}.sp-alpha-inner,.sp-alpha-handle{cursor:col-resize}.sp-hue{left:90%}.sp-color{right:15%}.sp-container{border:1px solid rgba(0,0,0,0.3);box-shadow:0 0 7px rgba(0,0,0,0.3);border-radius:3px}.sp-picker-container{border:none}.colpick_dark .colpick_color{outline:1px solid rgba(0,0,0,0.3)}.sp-cancel,.sp-cancel:hover{bottom:-8px;color:#777 !important;font-size:25px;left:0;position:absolute;text-decoration:none}.sp-alpha-handle{background-color:#ccc;border:1px solid #555;width:4px}.sp-color,.sp-hue{border:1px solid #333333}.sp-slider{background-color:#ccc;border:1px solid #555;height:3px;left:-4px;width:22px}.sp-dragger{background:transparent;box-shadow:0 0 0 1px #111}.sp-button-container{float:none;width:100%;position:relative;text-align:right}.sp-container button,.sp-container button:hover,.sp-container button:active{background:rgba(0,0,0,0.3);border-color:rgba(0,0,0,0.3);color:#ddd;text-shadow:none;box-shadow:none;padding:3px 5px}.sp-palette-container{border:none;float:none;margin:0;padding:5px 10px 0}.sp-palette .sp-thumb-el,.sp-palette .sp-thumb-el:hover{border:1px solid rgba(0,0,0,0.9)}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:rgba(0,0,0,0.9)}.gjs-hidden{display:none}@keyframes gjs-slide-down{0%{transform:translate(0, -3rem);opacity:0}100%{transform:translate(0, 0);opacity:1}}@keyframes gjs-slide-up{0%{transform:translate(0, 0);opacity:1}100%{transform:translate(0, -3rem);opacity:0}} diff --git a/client/static/css/select2.min.css b/client/static/css/select2.min.css deleted file mode 100644 index 76de04d..0000000 --- a/client/static/css/select2.min.css +++ /dev/null @@ -1 +0,0 @@ -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/client/static/grapes.min.css b/client/static/grapes.min.css deleted file mode 100644 index 9529e82..0000000 --- a/client/static/grapes.min.css +++ /dev/null @@ -1,6675 +0,0 @@ -.sp-container { - position: absolute; - top: 0; - left: 0; - display: inline-block; - *display: inline; - *zoom: 1; - z-index: 9999994; - overflow: hidden -} - -.sp-container.sp-flat { - position: relative -} - -.sp-container, -.sp-container * { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box -} - -.sp-top { - position: relative; - width: 100%; - display: inline-block -} - -.sp-top-inner { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0 -} - -.sp-color { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 20% -} - -.sp-hue { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 84%; - height: 100% -} - -.sp-clear-enabled .sp-hue { - top: 33px; - height: 77.5% -} - -.sp-fill { - padding-top: 80% -} - -.sp-sat, -.sp-val { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0 -} - -.sp-alpha-enabled .sp-top { - margin-bottom: 18px -} - -.sp-alpha-enabled .sp-alpha { - display: block -} - -.sp-alpha-handle { - position: absolute; - top: -4px; - bottom: -4px; - width: 6px; - left: 50%; - cursor: pointer; - border: 1px solid black; - background: white; - opacity: .8 -} - -.sp-alpha { - display: none; - position: absolute; - bottom: -14px; - right: 0; - left: 0; - height: 8px -} - -.sp-alpha-inner { - border: solid 1px #333 -} - -.sp-clear { - display: none -} - -.sp-clear.sp-clear-display { - background-position: center -} - -.sp-clear-enabled .sp-clear { - display: block; - position: absolute; - top: 0px; - right: 0; - bottom: 0; - left: 84%; - height: 28px -} - -.sp-container, -.sp-replacer, -.sp-preview, -.sp-dragger, -.sp-slider, -.sp-alpha, -.sp-clear, -.sp-alpha-handle, -.sp-container.sp-dragging .sp-input, -.sp-container button { - -webkit-user-select: none; - -moz-user-select: -moz-none; - -o-user-select: none; - user-select: none -} - -.sp-container.sp-input-disabled .sp-input-container { - display: none -} - -.sp-container.sp-buttons-disabled .sp-button-container { - display: none -} - -.sp-container.sp-palette-buttons-disabled .sp-palette-button-container { - display: none -} - -.sp-palette-only .sp-picker-container { - display: none -} - -.sp-palette-disabled .sp-palette-container { - display: none -} - -.sp-initial-disabled .sp-initial { - display: none -} - -.sp-sat { - background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#fff), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; - filter: progid: DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81') -} - -.sp-val { - background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000') -} - -.sp-hue { - background: -moz-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -ms-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -o-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -webkit-gradient(linear, left top, left bottom, from(red), color-stop(0.17, #ff0), color-stop(0.33, lime), color-stop(0.5, cyan), color-stop(0.67, blue), color-stop(0.83, #f0f), to(red)); - background: -webkit-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: linear-gradient(to bottom, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%) -} - -.sp-1 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00') -} - -.sp-2 { - height: 16%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00') -} - -.sp-3 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff') -} - -.sp-4 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff') -} - -.sp-5 { - height: 16%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff') -} - -.sp-6 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000') -} - -.sp-hidden { - display: none !important -} - -.sp-cf:before, -.sp-cf:after { - content: ""; - display: table -} - -.sp-cf:after { - clear: both -} - -.sp-cf { - *zoom: 1 -} - -@media (max-device-width: 480px) { - .sp-color { - right: 40% - } - .sp-hue { - left: 63% - } - .sp-fill { - padding-top: 60% - } -} - -.sp-dragger { - border-radius: 5px; - height: 5px; - width: 5px; - border: 1px solid #fff; - background: #000; - cursor: pointer; - position: absolute; - top: 0; - left: 0 -} - -.sp-slider { - position: absolute; - top: 0; - cursor: pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid #000; - background: white; - opacity: .8 -} - -.sp-container { - border-radius: 0; - background-color: #ECECEC; - border: solid 1px #f0c49B; - padding: 0 -} - -.sp-container, -.sp-container button, -.sp-container input, -.sp-color, -.sp-hue, -.sp-clear { - font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box -} - -.sp-top { - margin-bottom: 3px -} - -.sp-color, -.sp-hue, -.sp-clear { - border: solid 1px #666 -} - -.sp-input-container { - float: right; - width: 100px; - margin-bottom: 4px -} - -.sp-initial-disabled .sp-input-container { - width: 100% -} - -.sp-input { - font-size: 12px !important; - border: 1px inset; - padding: 4px 5px; - margin: 0; - width: 100%; - background: transparent; - border-radius: 3px; - color: #222 -} - -.sp-input:focus { - border: 1px solid orange -} - -.sp-input.sp-validation-error { - border: 1px solid red; - background: #fdd -} - -.sp-picker-container, -.sp-palette-container { - float: left; - position: relative; - padding: 10px; - padding-bottom: 300px; - margin-bottom: -290px -} - -.sp-picker-container { - width: 172px; - border-left: solid 1px #fff -} - -.sp-palette-container { - border-right: solid 1px #ccc -} - -.sp-palette-only .sp-palette-container { - border: 0 -} - -.sp-palette .sp-thumb-el { - display: block; - position: relative; - float: left; - width: 24px; - height: 15px; - margin: 3px; - cursor: pointer; - border: solid 2px transparent -} - -.sp-palette .sp-thumb-el:hover, -.sp-palette .sp-thumb-el.sp-thumb-active { - border-color: orange -} - -.sp-thumb-el { - position: relative -} - -.sp-initial { - float: left; - border: solid 1px #333 -} - -.sp-initial span { - width: 30px; - height: 25px; - border: none; - display: block; - float: left; - margin: 0 -} - -.sp-initial .sp-clear-display { - background-position: center -} - -.sp-palette-button-container, -.sp-button-container { - float: right -} - -.sp-replacer { - margin: 0; - overflow: hidden; - cursor: pointer; - padding: 4px; - display: inline-block; - *zoom: 1; - *display: inline; - border: solid 1px #91765d; - background: #eee; - color: #333; - vertical-align: middle -} - -.sp-replacer:hover, -.sp-replacer.sp-active { - border-color: #F0C49B; - color: #111 -} - -.sp-replacer.sp-disabled { - cursor: default; - border-color: silver; - color: silver -} - -.sp-dd { - padding: 2px 0; - height: 16px; - line-height: 16px; - float: left; - font-size: 10px -} - -.sp-preview { - position: relative; - width: 25px; - height: 20px; - border: solid 1px #222; - margin-right: 5px; - float: left; - z-index: 0 -} - -.sp-palette { - *width: 220px; - max-width: 220px -} - -.sp-palette .sp-thumb-el { - width: 16px; - height: 16px; - margin: 2px 1px; - border: solid 1px #d0d0d0 -} - -.sp-container { - padding-bottom: 0 -} - -.sp-container button { - background-color: #eeeeee; - background-image: -webkit-linear-gradient(top, #eee, #ccc); - background-image: -moz-linear-gradient(top, #eee, #ccc); - background-image: -ms-linear-gradient(top, #eee, #ccc); - background-image: -o-linear-gradient(top, #eee, #ccc); - background-image: linear-gradient(to bottom, #eee, #ccc); - border: 1px solid #ccc; - border-bottom: 1px solid #bbb; - border-radius: 3px; - color: #333; - font-size: 14px; - line-height: 1; - padding: 5px 4px; - text-align: center; - text-shadow: 0 1px 0 #eee; - vertical-align: middle -} - -.sp-container button:hover { - background-color: #dddddd; - background-image: -webkit-linear-gradient(top, #ddd, #bbb); - background-image: -moz-linear-gradient(top, #ddd, #bbb); - background-image: -ms-linear-gradient(top, #ddd, #bbb); - background-image: -o-linear-gradient(top, #ddd, #bbb); - background-image: linear-gradient(to bottom, #ddd, #bbb); - border: 1px solid #bbb; - border-bottom: 1px solid #999; - cursor: pointer; - text-shadow: 0 1px 0 #ddd -} - -.sp-container button:active { - border: 1px solid #aaa; - border-bottom: 1px solid #888; - -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee -} - -.sp-cancel { - font-size: 11px; - color: #d93f3f !important; - margin: 0; - padding: 2px; - margin-right: 5px; - vertical-align: middle; - text-decoration: none -} - -.sp-cancel:hover { - color: #d93f3f !important; - text-decoration: underline -} - -.sp-palette span:hover, -.sp-palette span.sp-thumb-active { - border-color: #000 -} - -.sp-preview, -.sp-alpha, -.sp-thumb-el { - position: relative; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) -} - -.sp-preview-inner, -.sp-alpha-inner, -.sp-thumb-inner { - display: block; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0 -} - -.sp-palette .sp-thumb-inner { - background-position: 50% 50%; - background-repeat: no-repeat -} - -.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=) -} - -.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=) -} - -.sp-clear-display { - background-repeat: no-repeat; - background-position: center; - background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==) -} - - -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale -} - -.fa-lg { - font-size: 1.33333em; - line-height: .75em; - vertical-align: -15% -} - -.fa-2x { - font-size: 2em -} - -.fa-3x { - font-size: 3em -} - -.fa-4x { - font-size: 4em -} - -.fa-5x { - font-size: 5em -} - -.fa-fw { - width: 1.28571em; - text-align: center -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none -} - -.fa-ul>li { - position: relative -} - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: .14286em; - text-align: center -} - -.fa-li.fa-lg { - left: -1.85714em -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em -} - -.fa-pull-left { - float: left -} - -.fa-pull-right { - float: right -} - -.fa.fa-pull-left { - margin-right: .3em -} - -.fa.fa-pull-right { - margin-left: .3em -} - -.pull-right { - float: right -} - -.pull-left { - float: left -} - -.fa.pull-left { - margin-right: .3em -} - -.fa.pull-right { - margin-left: .3em -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8) -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg) -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg) -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg) -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1) -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1) -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle -} - -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center -} - -.fa-stack-1x { - line-height: inherit -} - -.fa-stack-2x { - font-size: 2em -} - -.fa-inverse { - color: #fff -} - -.fa-glass:before { - content: "" -} - -.fa-music:before { - content: "" -} - -.fa-search:before { - content: "" -} - -.fa-envelope-o:before { - content: "" -} - -.fa-heart:before { - content: "" -} - -.fa-star:before { - content: "" -} - -.fa-star-o:before { - content: "" -} - -.fa-user:before { - content: "" -} - -.fa-film:before { - content: "" -} - -.fa-th-large:before { - content: "" -} - -.fa-th:before { - content: "" -} - -.fa-th-list:before { - content: "" -} - -.fa-check:before { - content: "" -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "" -} - -.fa-search-plus:before { - content: "" -} - -.fa-search-minus:before { - content: "" -} - -.fa-power-off:before { - content: "" -} - -.fa-signal:before { - content: "" -} - -.fa-gear:before, -.fa-cog:before { - content: "" -} - -.fa-trash-o:before { - content: "" -} - -.fa-home:before { - content: "" -} - -.fa-file-o:before { - content: "" -} - -.fa-clock-o:before { - content: "" -} - -.fa-road:before { - content: "" -} - -.fa-download:before { - content: "" -} - -.fa-arrow-circle-o-down:before { - content: "" -} - -.fa-arrow-circle-o-up:before { - content: "" -} - -.fa-inbox:before { - content: "" -} - -.fa-play-circle-o:before { - content: "" -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: "" -} - -.fa-refresh:before { - content: "" -} - -.fa-list-alt:before { - content: "" -} - -.fa-lock:before { - content: "" -} - -.fa-flag:before { - content: "" -} - -.fa-headphones:before { - content: "" -} - -.fa-volume-off:before { - content: "" -} - -.fa-volume-down:before { - content: "" -} - -.fa-volume-up:before { - content: "" -} - -.fa-qrcode:before { - content: "" -} - -.fa-barcode:before { - content: "" -} - -.fa-tag:before { - content: "" -} - -.fa-tags:before { - content: "" -} - -.fa-book:before { - content: "" -} - -.fa-bookmark:before { - content: "" -} - -.fa-print:before { - content: "" -} - -.fa-camera:before { - content: "" -} - -.fa-font:before { - content: "" -} - -.fa-bold:before { - content: "" -} - -.fa-italic:before { - content: "" -} - -.fa-text-height:before { - content: "" -} - -.fa-text-width:before { - content: "" -} - -.fa-align-left:before { - content: "" -} - -.fa-align-center:before { - content: "" -} - -.fa-align-right:before { - content: "" -} - -.fa-align-justify:before { - content: "" -} - -.fa-list:before { - content: "" -} - -.fa-dedent:before, -.fa-outdent:before { - content: "" -} - -.fa-indent:before { - content: "" -} - -.fa-video-camera:before { - content: "" -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "" -} - -.fa-pencil:before { - content: "" -} - -.fa-map-marker:before { - content: "" -} - -.fa-adjust:before { - content: "" -} - -.fa-tint:before { - content: "" -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "" -} - -.fa-share-square-o:before { - content: "" -} - -.fa-check-square-o:before { - content: "" -} - -.fa-arrows:before { - content: "" -} - -.fa-step-backward:before { - content: "" -} - -.fa-fast-backward:before { - content: "" -} - -.fa-backward:before { - content: "" -} - -.fa-play:before { - content: "" -} - -.fa-pause:before { - content: "" -} - -.fa-stop:before { - content: "" -} - -.fa-forward:before { - content: "" -} - -.fa-fast-forward:before { - content: "" -} - -.fa-step-forward:before { - content: "" -} - -.fa-eject:before { - content: "" -} - -.fa-chevron-left:before { - content: "" -} - -.fa-chevron-right:before { - content: "" -} - -.fa-plus-circle:before { - content: "" -} - -.fa-minus-circle:before { - content: "" -} - -.fa-times-circle:before { - content: "" -} - -.fa-check-circle:before { - content: "" -} - -.fa-question-circle:before { - content: "" -} - -.fa-info-circle:before { - content: "" -} - -.fa-crosshairs:before { - content: "" -} - -.fa-times-circle-o:before { - content: "" -} - -.fa-check-circle-o:before { - content: "" -} - -.fa-ban:before { - content: "" -} - -.fa-arrow-left:before { - content: "" -} - -.fa-arrow-right:before { - content: "" -} - -.fa-arrow-up:before { - content: "" -} - -.fa-arrow-down:before { - content: "" -} - -.fa-mail-forward:before, -.fa-share:before { - content: "" -} - -.fa-expand:before { - content: "" -} - -.fa-compress:before { - content: "" -} - -.fa-plus:before { - content: "" -} - -.fa-minus:before { - content: "" -} - -.fa-asterisk:before { - content: "" -} - -.fa-exclamation-circle:before { - content: "" -} - -.fa-gift:before { - content: "" -} - -.fa-leaf:before { - content: "" -} - -.fa-fire:before { - content: "" -} - -.fa-eye:before { - content: "" -} - -.fa-eye-slash:before { - content: "" -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "" -} - -.fa-plane:before { - content: "" -} - -.fa-calendar:before { - content: "" -} - -.fa-random:before { - content: "" -} - -.fa-comment:before { - content: "" -} - -.fa-magnet:before { - content: "" -} - -.fa-chevron-up:before { - content: "" -} - -.fa-chevron-down:before { - content: "" -} - -.fa-retweet:before { - content: "" -} - -.fa-shopping-cart:before { - content: "" -} - -.fa-folder:before { - content: "" -} - -.fa-folder-open:before { - content: "" -} - -.fa-arrows-v:before { - content: "" -} - -.fa-arrows-h:before { - content: "" -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "" -} - -.fa-twitter-square:before { - content: "" -} - -.fa-facebook-square:before { - content: "" -} - -.fa-camera-retro:before { - content: "" -} - -.fa-key:before { - content: "" -} - -.fa-gears:before, -.fa-cogs:before { - content: "" -} - -.fa-comments:before { - content: "" -} - -.fa-thumbs-o-up:before { - content: "" -} - -.fa-thumbs-o-down:before { - content: "" -} - -.fa-star-half:before { - content: "" -} - -.fa-heart-o:before { - content: "" -} - -.fa-sign-out:before { - content: "" -} - -.fa-linkedin-square:before { - content: "" -} - -.fa-thumb-tack:before { - content: "" -} - -.fa-external-link:before { - content: "" -} - -.fa-sign-in:before { - content: "" -} - -.fa-trophy:before { - content: "" -} - -.fa-github-square:before { - content: "" -} - -.fa-upload:before { - content: "" -} - -.fa-lemon-o:before { - content: "" -} - -.fa-phone:before { - content: "" -} - -.fa-square-o:before { - content: "" -} - -.fa-bookmark-o:before { - content: "" -} - -.fa-phone-square:before { - content: "" -} - -.fa-twitter:before { - content: "" -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: "" -} - -.fa-github:before { - content: "" -} - -.fa-unlock:before { - content: "" -} - -.fa-credit-card:before { - content: "" -} - -.fa-feed:before, -.fa-rss:before { - content: "" -} - -.fa-hdd-o:before { - content: "" -} - -.fa-bullhorn:before { - content: "" -} - -.fa-bell:before { - content: "" -} - -.fa-certificate:before { - content: "" -} - -.fa-hand-o-right:before { - content: "" -} - -.fa-hand-o-left:before { - content: "" -} - -.fa-hand-o-up:before { - content: "" -} - -.fa-hand-o-down:before { - content: "" -} - -.fa-arrow-circle-left:before { - content: "" -} - -.fa-arrow-circle-right:before { - content: "" -} - -.fa-arrow-circle-up:before { - content: "" -} - -.fa-arrow-circle-down:before { - content: "" -} - -.fa-globe:before { - content: "" -} - -.fa-wrench:before { - content: "" -} - -.fa-tasks:before { - content: "" -} - -.fa-filter:before { - content: "" -} - -.fa-briefcase:before { - content: "" -} - -.fa-arrows-alt:before { - content: "" -} - -.fa-group:before, -.fa-users:before { - content: "" -} - -.fa-chain:before, -.fa-link:before { - content: "" -} - -.fa-cloud:before { - content: "" -} - -.fa-flask:before { - content: "" -} - -.fa-cut:before, -.fa-scissors:before { - content: "" -} - -.fa-copy:before, -.fa-files-o:before { - content: "" -} - -.fa-paperclip:before { - content: "" -} - -.fa-save:before, -.fa-floppy-o:before { - content: "" -} - -.fa-square:before { - content: "" -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "" -} - -.fa-list-ul:before { - content: "" -} - -.fa-list-ol:before { - content: "" -} - -.fa-strikethrough:before { - content: "" -} - -.fa-underline:before { - content: "" -} - -.fa-table:before { - content: "" -} - -.fa-magic:before { - content: "" -} - -.fa-truck:before { - content: "" -} - -.fa-pinterest:before { - content: "" -} - -.fa-pinterest-square:before { - content: "" -} - -.fa-google-plus-square:before { - content: "" -} - -.fa-google-plus:before { - content: "" -} - -.fa-money:before { - content: "" -} - -.fa-caret-down:before { - content: "" -} - -.fa-caret-up:before { - content: "" -} - -.fa-caret-left:before { - content: "" -} - -.fa-caret-right:before { - content: "" -} - -.fa-columns:before { - content: "" -} - -.fa-unsorted:before, -.fa-sort:before { - content: "" -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "" -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "" -} - -.fa-envelope:before { - content: "" -} - -.fa-linkedin:before { - content: "" -} - -.fa-rotate-left:before, -.fa-undo:before { - content: "" -} - -.fa-legal:before, -.fa-gavel:before { - content: "" -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: "" -} - -.fa-comment-o:before { - content: "" -} - -.fa-comments-o:before { - content: "" -} - -.fa-flash:before, -.fa-bolt:before { - content: "" -} - -.fa-sitemap:before { - content: "" -} - -.fa-umbrella:before { - content: "" -} - -.fa-paste:before, -.fa-clipboard:before { - content: "" -} - -.fa-lightbulb-o:before { - content: "" -} - -.fa-exchange:before { - content: "" -} - -.fa-cloud-download:before { - content: "" -} - -.fa-cloud-upload:before { - content: "" -} - -.fa-user-md:before { - content: "" -} - -.fa-stethoscope:before { - content: "" -} - -.fa-suitcase:before { - content: "" -} - -.fa-bell-o:before { - content: "" -} - -.fa-coffee:before { - content: "" -} - -.fa-cutlery:before { - content: "" -} - -.fa-file-text-o:before { - content: "" -} - -.fa-building-o:before { - content: "" -} - -.fa-hospital-o:before { - content: "" -} - -.fa-ambulance:before { - content: "" -} - -.fa-medkit:before { - content: "" -} - -.fa-fighter-jet:before { - content: "" -} - -.fa-beer:before { - content: "" -} - -.fa-h-square:before { - content: "" -} - -.fa-plus-square:before { - content: "" -} - -.fa-angle-double-left:before { - content: "" -} - -.fa-angle-double-right:before { - content: "" -} - -.fa-angle-double-up:before { - content: "" -} - -.fa-angle-double-down:before { - content: "" -} - -.fa-angle-left:before { - content: "" -} - -.fa-angle-right:before { - content: "" -} - -.fa-angle-up:before { - content: "" -} - -.fa-angle-down:before { - content: "" -} - -.fa-desktop:before { - content: "" -} - -.fa-laptop:before { - content: "" -} - -.fa-tablet:before { - content: "" -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "" -} - -.fa-circle-o:before { - content: "" -} - -.fa-quote-left:before { - content: "" -} - -.fa-quote-right:before { - content: "" -} - -.fa-spinner:before { - content: "" -} - -.fa-circle:before { - content: "" -} - -.fa-mail-reply:before, -.fa-reply:before { - content: "" -} - -.fa-github-alt:before { - content: "" -} - -.fa-folder-o:before { - content: "" -} - -.fa-folder-open-o:before { - content: "" -} - -.fa-smile-o:before { - content: "" -} - -.fa-frown-o:before { - content: "" -} - -.fa-meh-o:before { - content: "" -} - -.fa-gamepad:before { - content: "" -} - -.fa-keyboard-o:before { - content: "" -} - -.fa-flag-o:before { - content: "" -} - -.fa-flag-checkered:before { - content: "" -} - -.fa-terminal:before { - content: "" -} - -.fa-code:before { - content: "" -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "" -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "" -} - -.fa-location-arrow:before { - content: "" -} - -.fa-crop:before { - content: "" -} - -.fa-code-fork:before { - content: "" -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: "" -} - -.fa-question:before { - content: "" -} - -.fa-info:before { - content: "" -} - -.fa-exclamation:before { - content: "" -} - -.fa-superscript:before { - content: "" -} - -.fa-subscript:before { - content: "" -} - -.fa-eraser:before { - content: "" -} - -.fa-puzzle-piece:before { - content: "" -} - -.fa-microphone:before { - content: "" -} - -.fa-microphone-slash:before { - content: "" -} - -.fa-shield:before { - content: "" -} - -.fa-calendar-o:before { - content: "" -} - -.fa-fire-extinguisher:before { - content: "" -} - -.fa-rocket:before { - content: "" -} - -.fa-maxcdn:before { - content: "" -} - -.fa-chevron-circle-left:before { - content: "" -} - -.fa-chevron-circle-right:before { - content: "" -} - -.fa-chevron-circle-up:before { - content: "" -} - -.fa-chevron-circle-down:before { - content: "" -} - -.fa-html5:before { - content: "" -} - -.fa-css3:before { - content: "" -} - -.fa-anchor:before { - content: "" -} - -.fa-unlock-alt:before { - content: "" -} - -.fa-bullseye:before { - content: "" -} - -.fa-ellipsis-h:before { - content: "" -} - -.fa-ellipsis-v:before { - content: "" -} - -.fa-rss-square:before { - content: "" -} - -.fa-play-circle:before { - content: "" -} - -.fa-ticket:before { - content: "" -} - -.fa-minus-square:before { - content: "" -} - -.fa-minus-square-o:before { - content: "" -} - -.fa-level-up:before { - content: "" -} - -.fa-level-down:before { - content: "" -} - -.fa-check-square:before { - content: "" -} - -.fa-pencil-square:before { - content: "" -} - -.fa-external-link-square:before { - content: "" -} - -.fa-share-square:before { - content: "" -} - -.fa-compass:before { - content: "" -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "" -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "" -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "" -} - -.fa-euro:before, -.fa-eur:before { - content: "" -} - -.fa-gbp:before { - content: "" -} - -.fa-dollar:before, -.fa-usd:before { - content: "" -} - -.fa-rupee:before, -.fa-inr:before { - content: "" -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "" -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "" -} - -.fa-won:before, -.fa-krw:before { - content: "" -} - -.fa-bitcoin:before, -.fa-btc:before { - content: "" -} - -.fa-file:before { - content: "" -} - -.fa-file-text:before { - content: "" -} - -.fa-sort-alpha-asc:before { - content: "" -} - -.fa-sort-alpha-desc:before { - content: "" -} - -.fa-sort-amount-asc:before { - content: "" -} - -.fa-sort-amount-desc:before { - content: "" -} - -.fa-sort-numeric-asc:before { - content: "" -} - -.fa-sort-numeric-desc:before { - content: "" -} - -.fa-thumbs-up:before { - content: "" -} - -.fa-thumbs-down:before { - content: "" -} - -.fa-youtube-square:before { - content: "" -} - -.fa-youtube:before { - content: "" -} - -.fa-xing:before { - content: "" -} - -.fa-xing-square:before { - content: "" -} - -.fa-youtube-play:before { - content: "" -} - -.fa-dropbox:before { - content: "" -} - -.fa-stack-overflow:before { - content: "" -} - -.fa-instagram:before { - content: "" -} - -.fa-flickr:before { - content: "" -} - -.fa-adn:before { - content: "" -} - -.fa-bitbucket:before { - content: "" -} - -.fa-bitbucket-square:before { - content: "" -} - -.fa-tumblr:before { - content: "" -} - -.fa-tumblr-square:before { - content: "" -} - -.fa-long-arrow-down:before { - content: "" -} - -.fa-long-arrow-up:before { - content: "" -} - -.fa-long-arrow-left:before { - content: "" -} - -.fa-long-arrow-right:before { - content: "" -} - -.fa-apple:before { - content: "" -} - -.fa-windows:before { - content: "" -} - -.fa-android:before { - content: "" -} - -.fa-linux:before { - content: "" -} - -.fa-dribbble:before { - content: "" -} - -.fa-skype:before { - content: "" -} - -.fa-foursquare:before { - content: "" -} - -.fa-trello:before { - content: "" -} - -.fa-female:before { - content: "" -} - -.fa-male:before { - content: "" -} - -.fa-gittip:before, -.fa-gratipay:before { - content: "" -} - -.fa-sun-o:before { - content: "" -} - -.fa-moon-o:before { - content: "" -} - -.fa-archive:before { - content: "" -} - -.fa-bug:before { - content: "" -} - -.fa-vk:before { - content: "" -} - -.fa-weibo:before { - content: "" -} - -.fa-renren:before { - content: "" -} - -.fa-pagelines:before { - content: "" -} - -.fa-stack-exchange:before { - content: "" -} - -.fa-arrow-circle-o-right:before { - content: "" -} - -.fa-arrow-circle-o-left:before { - content: "" -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "" -} - -.fa-dot-circle-o:before { - content: "" -} - -.fa-wheelchair:before { - content: "" -} - -.fa-vimeo-square:before { - content: "" -} - -.fa-turkish-lira:before, -.fa-try:before { - content: "" -} - -.fa-plus-square-o:before { - content: "" -} - -.fa-space-shuttle:before { - content: "" -} - -.fa-slack:before { - content: "" -} - -.fa-envelope-square:before { - content: "" -} - -.fa-wordpress:before { - content: "" -} - -.fa-openid:before { - content: "" -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "" -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "" -} - -.fa-yahoo:before { - content: "" -} - -.fa-google:before { - content: "" -} - -.fa-reddit:before { - content: "" -} - -.fa-reddit-square:before { - content: "" -} - -.fa-stumbleupon-circle:before { - content: "" -} - -.fa-stumbleupon:before { - content: "" -} - -.fa-delicious:before { - content: "" -} - -.fa-digg:before { - content: "" -} - -.fa-pied-piper-pp:before { - content: "" -} - -.fa-pied-piper-alt:before { - content: "" -} - -.fa-drupal:before { - content: "" -} - -.fa-joomla:before { - content: "" -} - -.fa-language:before { - content: "" -} - -.fa-fax:before { - content: "" -} - -.fa-building:before { - content: "" -} - -.fa-child:before { - content: "" -} - -.fa-paw:before { - content: "" -} - -.fa-spoon:before { - content: "" -} - -.fa-cube:before { - content: "" -} - -.fa-cubes:before { - content: "" -} - -.fa-behance:before { - content: "" -} - -.fa-behance-square:before { - content: "" -} - -.fa-steam:before { - content: "" -} - -.fa-steam-square:before { - content: "" -} - -.fa-recycle:before { - content: "" -} - -.fa-automobile:before, -.fa-car:before { - content: "" -} - -.fa-cab:before, -.fa-taxi:before { - content: "" -} - -.fa-tree:before { - content: "" -} - -.fa-spotify:before { - content: "" -} - -.fa-deviantart:before { - content: "" -} - -.fa-soundcloud:before { - content: "" -} - -.fa-database:before { - content: "" -} - -.fa-file-pdf-o:before { - content: "" -} - -.fa-file-word-o:before { - content: "" -} - -.fa-file-excel-o:before { - content: "" -} - -.fa-file-powerpoint-o:before { - content: "" -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "" -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "" -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "" -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "" -} - -.fa-file-code-o:before { - content: "" -} - -.fa-vine:before { - content: "" -} - -.fa-codepen:before { - content: "" -} - -.fa-jsfiddle:before { - content: "" -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "" -} - -.fa-circle-o-notch:before { - content: "" -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "" -} - -.fa-ge:before, -.fa-empire:before { - content: "" -} - -.fa-git-square:before { - content: "" -} - -.fa-git:before { - content: "" -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "" -} - -.fa-tencent-weibo:before { - content: "" -} - -.fa-qq:before { - content: "" -} - -.fa-wechat:before, -.fa-weixin:before { - content: "" -} - -.fa-send:before, -.fa-paper-plane:before { - content: "" -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "" -} - -.fa-history:before { - content: "" -} - -.fa-circle-thin:before { - content: "" -} - -.fa-header:before { - content: "" -} - -.fa-paragraph:before { - content: "" -} - -.fa-sliders:before { - content: "" -} - -.fa-share-alt:before { - content: "" -} - -.fa-share-alt-square:before { - content: "" -} - -.fa-bomb:before { - content: "" -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "" -} - -.fa-tty:before { - content: "" -} - -.fa-binoculars:before { - content: "" -} - -.fa-plug:before { - content: "" -} - -.fa-slideshare:before { - content: "" -} - -.fa-twitch:before { - content: "" -} - -.fa-yelp:before { - content: "" -} - -.fa-newspaper-o:before { - content: "" -} - -.fa-wifi:before { - content: "" -} - -.fa-calculator:before { - content: "" -} - -.fa-paypal:before { - content: "" -} - -.fa-google-wallet:before { - content: "" -} - -.fa-cc-visa:before { - content: "" -} - -.fa-cc-mastercard:before { - content: "" -} - -.fa-cc-discover:before { - content: "" -} - -.fa-cc-amex:before { - content: "" -} - -.fa-cc-paypal:before { - content: "" -} - -.fa-cc-stripe:before { - content: "" -} - -.fa-bell-slash:before { - content: "" -} - -.fa-bell-slash-o:before { - content: "" -} - -.fa-trash:before { - content: "" -} - -.fa-copyright:before { - content: "" -} - -.fa-at:before { - content: "" -} - -.fa-eyedropper:before { - content: "" -} - -.fa-paint-brush:before { - content: "" -} - -.fa-birthday-cake:before { - content: "" -} - -.fa-area-chart:before { - content: "" -} - -.fa-pie-chart:before { - content: "" -} - -.fa-line-chart:before { - content: "" -} - -.fa-lastfm:before { - content: "" -} - -.fa-lastfm-square:before { - content: "" -} - -.fa-toggle-off:before { - content: "" -} - -.fa-toggle-on:before { - content: "" -} - -.fa-bicycle:before { - content: "" -} - -.fa-bus:before { - content: "" -} - -.fa-ioxhost:before { - content: "" -} - -.fa-angellist:before { - content: "" -} - -.fa-cc:before { - content: "" -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "" -} - -.fa-meanpath:before { - content: "" -} - -.fa-buysellads:before { - content: "" -} - -.fa-connectdevelop:before { - content: "" -} - -.fa-dashcube:before { - content: "" -} - -.fa-forumbee:before { - content: "" -} - -.fa-leanpub:before { - content: "" -} - -.fa-sellsy:before { - content: "" -} - -.fa-shirtsinbulk:before { - content: "" -} - -.fa-simplybuilt:before { - content: "" -} - -.fa-skyatlas:before { - content: "" -} - -.fa-cart-plus:before { - content: "" -} - -.fa-cart-arrow-down:before { - content: "" -} - -.fa-diamond:before { - content: "" -} - -.fa-ship:before { - content: "" -} - -.fa-user-secret:before { - content: "" -} - -.fa-motorcycle:before { - content: "" -} - -.fa-street-view:before { - content: "" -} - -.fa-heartbeat:before { - content: "" -} - -.fa-venus:before { - content: "" -} - -.fa-mars:before { - content: "" -} - -.fa-mercury:before { - content: "" -} - -.fa-intersex:before, -.fa-transgender:before { - content: "" -} - -.fa-transgender-alt:before { - content: "" -} - -.fa-venus-double:before { - content: "" -} - -.fa-mars-double:before { - content: "" -} - -.fa-venus-mars:before { - content: "" -} - -.fa-mars-stroke:before { - content: "" -} - -.fa-mars-stroke-v:before { - content: "" -} - -.fa-mars-stroke-h:before { - content: "" -} - -.fa-neuter:before { - content: "" -} - -.fa-genderless:before { - content: "" -} - -.fa-facebook-official:before { - content: "" -} - -.fa-pinterest-p:before { - content: "" -} - -.fa-whatsapp:before { - content: "" -} - -.fa-server:before { - content: "" -} - -.fa-user-plus:before { - content: "" -} - -.fa-user-times:before { - content: "" -} - -.fa-hotel:before, -.fa-bed:before { - content: "" -} - -.fa-viacoin:before { - content: "" -} - -.fa-train:before { - content: "" -} - -.fa-subway:before { - content: "" -} - -.fa-medium:before { - content: "" -} - -.fa-yc:before, -.fa-y-combinator:before { - content: "" -} - -.fa-optin-monster:before { - content: "" -} - -.fa-opencart:before { - content: "" -} - -.fa-expeditedssl:before { - content: "" -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "" -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "" -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: "" -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "" -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: "" -} - -.fa-mouse-pointer:before { - content: "" -} - -.fa-i-cursor:before { - content: "" -} - -.fa-object-group:before { - content: "" -} - -.fa-object-ungroup:before { - content: "" -} - -.fa-sticky-note:before { - content: "" -} - -.fa-sticky-note-o:before { - content: "" -} - -.fa-cc-jcb:before { - content: "" -} - -.fa-cc-diners-club:before { - content: "" -} - -.fa-clone:before { - content: "" -} - -.fa-balance-scale:before { - content: "" -} - -.fa-hourglass-o:before { - content: "" -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "" -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "" -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "" -} - -.fa-hourglass:before { - content: "" -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "" -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "" -} - -.fa-hand-scissors-o:before { - content: "" -} - -.fa-hand-lizard-o:before { - content: "" -} - -.fa-hand-spock-o:before { - content: "" -} - -.fa-hand-pointer-o:before { - content: "" -} - -.fa-hand-peace-o:before { - content: "" -} - -.fa-trademark:before { - content: "" -} - -.fa-registered:before { - content: "" -} - -.fa-creative-commons:before { - content: "" -} - -.fa-gg:before { - content: "" -} - -.fa-gg-circle:before { - content: "" -} - -.fa-tripadvisor:before { - content: "" -} - -.fa-odnoklassniki:before { - content: "" -} - -.fa-odnoklassniki-square:before { - content: "" -} - -.fa-get-pocket:before { - content: "" -} - -.fa-wikipedia-w:before { - content: "" -} - -.fa-safari:before { - content: "" -} - -.fa-chrome:before { - content: "" -} - -.fa-firefox:before { - content: "" -} - -.fa-opera:before { - content: "" -} - -.fa-internet-explorer:before { - content: "" -} - -.fa-tv:before, -.fa-television:before { - content: "" -} - -.fa-contao:before { - content: "" -} - -.fa-500px:before { - content: "" -} - -.fa-amazon:before { - content: "" -} - -.fa-calendar-plus-o:before { - content: "" -} - -.fa-calendar-minus-o:before { - content: "" -} - -.fa-calendar-times-o:before { - content: "" -} - -.fa-calendar-check-o:before { - content: "" -} - -.fa-industry:before { - content: "" -} - -.fa-map-pin:before { - content: "" -} - -.fa-map-signs:before { - content: "" -} - -.fa-map-o:before { - content: "" -} - -.fa-map:before { - content: "" -} - -.fa-commenting:before { - content: "" -} - -.fa-commenting-o:before { - content: "" -} - -.fa-houzz:before { - content: "" -} - -.fa-vimeo:before { - content: "" -} - -.fa-black-tie:before { - content: "" -} - -.fa-fonticons:before { - content: "" -} - -.fa-reddit-alien:before { - content: "" -} - -.fa-edge:before { - content: "" -} - -.fa-credit-card-alt:before { - content: "" -} - -.fa-codiepie:before { - content: "" -} - -.fa-modx:before { - content: "" -} - -.fa-fort-awesome:before { - content: "" -} - -.fa-usb:before { - content: "" -} - -.fa-product-hunt:before { - content: "" -} - -.fa-mixcloud:before { - content: "" -} - -.fa-scribd:before { - content: "" -} - -.fa-pause-circle:before { - content: "" -} - -.fa-pause-circle-o:before { - content: "" -} - -.fa-stop-circle:before { - content: "" -} - -.fa-stop-circle-o:before { - content: "" -} - -.fa-shopping-bag:before { - content: "" -} - -.fa-shopping-basket:before { - content: "" -} - -.fa-hashtag:before { - content: "" -} - -.fa-bluetooth:before { - content: "" -} - -.fa-bluetooth-b:before { - content: "" -} - -.fa-percent:before { - content: "" -} - -.fa-gitlab:before { - content: "" -} - -.fa-wpbeginner:before { - content: "" -} - -.fa-wpforms:before { - content: "" -} - -.fa-envira:before { - content: "" -} - -.fa-universal-access:before { - content: "" -} - -.fa-wheelchair-alt:before { - content: "" -} - -.fa-question-circle-o:before { - content: "" -} - -.fa-blind:before { - content: "" -} - -.fa-audio-description:before { - content: "" -} - -.fa-volume-control-phone:before { - content: "" -} - -.fa-braille:before { - content: "" -} - -.fa-assistive-listening-systems:before { - content: "" -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "" -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "" -} - -.fa-glide:before { - content: "" -} - -.fa-glide-g:before { - content: "" -} - -.fa-signing:before, -.fa-sign-language:before { - content: "" -} - -.fa-low-vision:before { - content: "" -} - -.fa-viadeo:before { - content: "" -} - -.fa-viadeo-square:before { - content: "" -} - -.fa-snapchat:before { - content: "" -} - -.fa-snapchat-ghost:before { - content: "" -} - -.fa-snapchat-square:before { - content: "" -} - -.fa-pied-piper:before { - content: "" -} - -.fa-first-order:before { - content: "" -} - -.fa-yoast:before { - content: "" -} - -.fa-themeisle:before { - content: "" -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "" -} - -.fa-fa:before, -.fa-font-awesome:before { - content: "" -} - -.fa-handshake-o:before { - content: "" -} - -.fa-envelope-open:before { - content: "" -} - -.fa-envelope-open-o:before { - content: "" -} - -.fa-linode:before { - content: "" -} - -.fa-address-book:before { - content: "" -} - -.fa-address-book-o:before { - content: "" -} - -.fa-vcard:before, -.fa-address-card:before { - content: "" -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "" -} - -.fa-user-circle:before { - content: "" -} - -.fa-user-circle-o:before { - content: "" -} - -.fa-user-o:before { - content: "" -} - -.fa-id-badge:before { - content: "" -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: "" -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "" -} - -.fa-quora:before { - content: "" -} - -.fa-free-code-camp:before { - content: "" -} - -.fa-telegram:before { - content: "" -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "" -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "" -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "" -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "" -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "" -} - -.fa-shower:before { - content: "" -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "" -} - -.fa-podcast:before { - content: "" -} - -.fa-window-maximize:before { - content: "" -} - -.fa-window-minimize:before { - content: "" -} - -.fa-window-restore:before { - content: "" -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: "" -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "" -} - -.fa-bandcamp:before { - content: "" -} - -.fa-grav:before { - content: "" -} - -.fa-etsy:before { - content: "" -} - -.fa-imdb:before { - content: "" -} - -.fa-ravelry:before { - content: "" -} - -.fa-eercast:before { - content: "" -} - -.fa-microchip:before { - content: "" -} - -.fa-snowflake-o:before { - content: "" -} - -.fa-superpowers:before { - content: "" -} - -.fa-wpexplorer:before { - content: "" -} - -.fa-meetup:before { - content: "" -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0 -} - -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto -} - -.CodeMirror { - font-family: monospace; - height: 300px; - color: black -} - -.CodeMirror-lines { - padding: 4px 0 -} - -.CodeMirror pre { - padding: 0 4px -} - -.CodeMirror-scrollbar-filler, -.CodeMirror-gutter-filler { - background-color: white -} - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap -} - -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap -} - -.CodeMirror-guttermarker { - color: black -} - -.CodeMirror-guttermarker-subtle { - color: #999 -} - -.CodeMirror-cursor { - border-left: 1px solid black; - border-right: none; - width: 0 -} - -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver -} - -.cm-fat-cursor .CodeMirror-cursor { - width: auto; - border: 0 !important; - background: #7e7 -} - -.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1 -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7 -} - -@-moz-keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -@-webkit-keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -@keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -.cm-tab { - display: inline-block; - text-decoration: inherit -} - -.CodeMirror-rulers { - position: absolute; - left: 0; - right: 0; - top: -50px; - bottom: -20px; - overflow: hidden -} - -.CodeMirror-ruler { - border-left: 1px solid #ccc; - top: 0; - bottom: 0; - position: absolute -} - -.cm-s-default .cm-header { - color: blue -} - -.cm-s-default .cm-quote { - color: #090 -} - -.cm-negative { - color: #d44 -} - -.cm-positive { - color: #292 -} - -.cm-header, -.cm-strong { - font-weight: bold -} - -.cm-em { - font-style: italic -} - -.cm-link { - text-decoration: underline -} - -.cm-strikethrough { - text-decoration: line-through -} - -.cm-s-default .cm-keyword { - color: #708 -} - -.cm-s-default .cm-atom { - color: #219 -} - -.cm-s-default .cm-number { - color: #164 -} - -.cm-s-default .cm-def { - color: #00f -} - -.cm-s-default .cm-variable-2 { - color: #05a -} - -.cm-s-default .cm-variable-3 { - color: #085 -} - -.cm-s-default .cm-comment { - color: #a50 -} - -.cm-s-default .cm-string { - color: #a11 -} - -.cm-s-default .cm-string-2 { - color: #f50 -} - -.cm-s-default .cm-meta { - color: #555 -} - -.cm-s-default .cm-qualifier { - color: #555 -} - -.cm-s-default .cm-builtin { - color: #30a -} - -.cm-s-default .cm-bracket { - color: #997 -} - -.cm-s-default .cm-tag { - color: #170 -} - -.cm-s-default .cm-attribute { - color: #00c -} - -.cm-s-default .cm-hr { - color: #999 -} - -.cm-s-default .cm-link { - color: #00c -} - -.cm-s-default .cm-error { - color: #f00 -} - -.cm-invalidchar { - color: #f00 -} - -.CodeMirror-composing { - border-bottom: 2px solid -} - -div.CodeMirror span.CodeMirror-matchingbracket { - color: #0f0 -} - -div.CodeMirror span.CodeMirror-nonmatchingbracket { - color: #f22 -} - -.CodeMirror-matchingtag { - background: rgba(255, 150, 0, 0.3) -} - -.CodeMirror-activeline-background { - background: #e8f2ff -} - -.CodeMirror { - position: relative; - overflow: hidden; - background: white -} - -.CodeMirror-scroll { - overflow: scroll !important; - margin-bottom: -30px; - margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; - position: relative -} - -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent -} - -.CodeMirror-vscrollbar, -.CodeMirror-hscrollbar, -.CodeMirror-scrollbar-filler, -.CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none -} - -.CodeMirror-vscrollbar { - right: 0; - top: 0; - overflow-x: hidden; - overflow-y: scroll -} - -.CodeMirror-hscrollbar { - bottom: 0; - left: 0; - overflow-y: hidden; - overflow-x: scroll -} - -.CodeMirror-scrollbar-filler { - right: 0; - bottom: 0 -} - -.CodeMirror-gutter-filler { - left: 0; - bottom: 0 -} - -.CodeMirror-gutters { - position: absolute; - left: 0; - top: 0; - min-height: 100%; - z-index: 3 -} - -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - vertical-align: top; - margin-bottom: -30px -} - -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - background: none !important; - border: none !important -} - -.CodeMirror-gutter-background { - position: absolute; - top: 0; - bottom: 0; - z-index: 4 -} - -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4 -} - -.CodeMirror-gutter-wrapper { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px -} - -.CodeMirror pre { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; - -webkit-font-variant-ligatures: none; - font-variant-ligatures: none -} - -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - z-index: 0 -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto -} - -.CodeMirror-code { - outline: none -} - -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden -} - -.CodeMirror-cursor { - position: absolute; - pointer-events: none -} - -.CodeMirror-measure pre { - position: static -} - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3 -} - -div.CodeMirror-dragcursors { - visibility: visible -} - -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible -} - -.CodeMirror-selected { - background: #d9d9d9 -} - -.CodeMirror-focused .CodeMirror-selected { - background: #d7d4f0 -} - -.CodeMirror-crosshair { - cursor: crosshair -} - -.CodeMirror-line::selection, -.CodeMirror-line>span::selection, -.CodeMirror-line>span>span::selection { - background: #d7d4f0 -} - -.CodeMirror-line::-moz-selection, -.CodeMirror-line>span::-moz-selection, -.CodeMirror-line>span>span::-moz-selection { - background: #d7d4f0 -} - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, 0.4) -} - -.cm-force-border { - padding-right: .1px -} - -@media print { - .CodeMirror div.CodeMirror-cursors { - visibility: hidden - } -} - -.cm-tab-wrap-hack:after { - content: '' -} - -span.CodeMirror-selectedtext { - background: none -} - -.cm-s-hopscotch.CodeMirror { - background: #322931; - color: #d5d3d5 -} - -.cm-s-hopscotch div.CodeMirror-selected { - background: #433b42 !important -} - -.cm-s-hopscotch .CodeMirror-gutters { - background: #322931; - border-right: 0px -} - -.cm-s-hopscotch .CodeMirror-linenumber { - color: #797379 -} - -.cm-s-hopscotch .CodeMirror-cursor { - border-left: 1px solid #989498 !important -} - -.cm-s-hopscotch span.cm-comment { - color: #b33508 -} - -.cm-s-hopscotch span.cm-atom { - color: #c85e7c -} - -.cm-s-hopscotch span.cm-number { - color: #c85e7c -} - -.cm-s-hopscotch span.cm-property, -.cm-s-hopscotch span.cm-attribute { - color: #8fc13e -} - -.cm-s-hopscotch span.cm-keyword { - color: #dd464c -} - -.cm-s-hopscotch span.cm-string { - color: #fdcc59 -} - -.cm-s-hopscotch span.cm-variable { - color: #8fc13e -} - -.cm-s-hopscotch span.cm-variable-2 { - color: #1290bf -} - -.cm-s-hopscotch span.cm-def { - color: #fd8b19 -} - -.cm-s-hopscotch span.cm-error { - background: #dd464c; - color: #989498 -} - -.cm-s-hopscotch span.cm-bracket { - color: #d5d3d5 -} - -.cm-s-hopscotch span.cm-tag { - color: #dd464c -} - -.cm-s-hopscotch span.cm-link { - color: #c85e7c -} - -.cm-s-hopscotch .CodeMirror-matchingbracket { - text-decoration: underline; - color: white !important -} - -.cm-s-hopscotch .CodeMirror-activeline-background { - background: #302020 -} - -@font-face { - font-family: 'font3336'; - src: url("../fonts/main-fonts.eot?v=20"); - src: url("../fonts/main-fonts.woff?v=20") format("woff"), url("../fonts/main-fonts.ttf?v=20") format("truetype"), url("../fonts/main-fonts.svg?v=20") format("svg"), url("../fonts/main-fonts.eot?v=20") format("embedded-opentype"); - font-weight: normal; - font-style: normal -} - -.gjs-active-color { - color: #71b7f1 -} - -.gjs-warn-color { - color: #ffca6f -} - -.gjs-fonts::before { - display: block; - font: normal normal normal 14px font3336; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 5em -} - -.gjs-f-b1::before { - content: 'Q' -} - -.gjs-f-b2::before { - content: 'W' -} - -.gjs-f-b3::before { - content: 'E' -} - -.gjs-f-b37::before { - content: 'R' -} - -.gjs-f-hero::before { - content: 'T' -} - -.gjs-f-h1p::before { - content: 'y' -} - -.gjs-f-3ba::before { - content: 'u' -} - -.gjs-f-image::before { - content: 'I' -} - -.gjs-f-text::before { - content: 'o' -} - -.gjs-f-quo::before { - content: 'p' -} - -.gjs-f-button::before { - content: 'B' -} - -.gjs-f-divider::before { - content: 'D' -} - -.gjs-invis-invis, -.gjs-clm-tags #gjs-clm-new, -.gjs-no-app { - background-color: transparent; - border: none; - color: inherit -} - -.gjs-no-app { - height: 10px -} - -.gjs-test::btn { - color: '#fff' -} - -.opac50, -.gjs-clm-tags #gjs-clm-close { - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-checker-bg, -.gjs-field-colorp-c, -.checker-bg, -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==") -} - -.gjs-no-user-select, -.gjs-grabbing, -.gjs-grabbing *, -.gjs-nav-comp-name { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none -} - -.gjs-no-pointer-events, -.gjs-resizer-c, -.gjs-margin-v-el, -.gjs-padding-v-el, -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - pointer-events: none -} - -.gjs-bg-main, -.gjs-off-prv, -.gjs-select option, -.gjs-clm-select option, -.gjs-sm-select option, -.gjs-sm-unit option, -.gjs-pn-panel, -.gjs-nv-item .gjs-nv-title-c, -.gjs-field-select option, -.gjs-sm-sector .gjs-sm-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c, -.gjs-block, -.gjs-mdl-dialog, -#gjs-rte-toolbar, -.sp-container { - background-color: #444 -} - -.gjs-color-main, -.gjs-off-prv, -.gjs-btn-prim, -.gjs-pn-panel, -.gjs-pn-btn, -.gjs-btnt, -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field, -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add, -.gjs-block-svg-path, -.gjs-mdl-dialog, -#gjs-rte-toolbar .gjs-rte-btn { - color: #ddd; - fill: #ddd -} - -.gjs-color-active, -.gjs-pn-btn.gjs-pn-active, -.gjs-btnt.gjs-pn-active { - color: #f8f8f8; - fill: #f8f8f8 -} - -.gjs-bdrag { - pointer-events: none !important; - position: absolute !important; - z-index: 10 !important; - width: auto -} - -.gjs-drag-helper { - background-color: #3b97e3 !important; - pointer-events: none !important; - position: absolute !important; - z-index: 10 !important; - transform: scale(0.3) !important; - transform-origin: top left !important; - -webkit-transform-origin: top left !important; - margin: 15px !important; - transition: none !important; - outline: none !important -} - -.gjs-grabbing, -.gjs-grabbing * { - cursor: grabbing !important; - cursor: -webkit-grabbing !important -} - -.gjs-grabbing { - overflow: hidden -} - -.gjs-off-prv { - position: relative; - z-index: 10; - padding: 5px; - cursor: pointer -} - -.gjs-editor-cont::-webkit-scrollbar-track { - background: rgba(0, 0, 0, 0.1) -} - -.gjs-editor-cont::-webkit-scrollbar-thumb { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-editor-cont::-webkit-scrollbar { - width: 8px -} - -.clear { - clear: both -} - -.no-select, -.gjs-com-no-select, -.gjs-com-no-select img, -.gjs-category-title, -.gjs-sm-sector .gjs-sm-title, -.gjs-clm-tags .gjs-sm-title, -.gjs-block-category .gjs-title, -.gjs-clm-tags #gjs-clm-close, -.gjs-clm-tags #gjs-clm-tag-label { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none -} - -.gjs-editor { - font-family: Helvetica, sans-serif; - background-color: #444; - position: relative; - box-sizing: border-box; - height: 100% -} - -.gjs-freezed, -.gjs-nv-freezed { - opacity: .5; - filter: alpha(opacity=50); - pointer-events: none -} - -.gjs-btn-prim { - background-color: rgba(255, 255, 255, 0.1); - border-radius: 2px; - padding: 3px 6px; - cursor: pointer; - padding: 0.5em; - border: none -} - -.gjs-btn-prim:active { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-input, -.gjs-select { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - box-sizing: border-box; - color: #ddd; - padding: 0.5em 1em -} - -div.gjs-select { - padding: 0 -} - -.gjs-select select { - padding-right: 10px -} - -.gjs-select:-moz-focusring, -.gjs-select select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 rgba(255, 255, 255, 0.7) -} - -.gjs-input:focus, -.gjs-select:focus, -.gjs-button:focus, -.gjs-btn-prim:focus, -.gjs-select:focus, -.gjs-select select:focus { - outline: none -} - -.gjs-traits-label { - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - font-size: 13px; - font-weight: lighter; - margin-bottom: 5px; - padding: 10px; - text-align: left -} - -.gjs-trt-trait { - display: flex; - justify-content: start; - padding: 5px 10px; - font-size: 0.75em; - font-weight: lighter -} - -.gjs-trt-trait .gjs-label { - width: 30%; - text-align: left -} - -.gjs-trt-trait .gjs-field { - width: 70% -} - -.gjs-cv-canvas { - background-color: rgba(0, 0, 0, 0.15); - box-sizing: border-box; - position: absolute; - width: 85%; - height: 100%; - bottom: 0; - left: 0; - overflow: hidden; - padding-top: 40px; - z-index: 1 -} - -.gjs-cv-canvas>iframe { - height: 100%; - outline: medium none; - width: 100%; - border: none; - margin: 0 auto; - display: block -} - -.gjs-cv-canvas .gjs-ghost { - display: none; - pointer-events: none; - background-color: #5b5b5b; - border: 2px dashed #ccc; - position: absolute; - z-index: 10; - opacity: .55; - filter: alpha(opacity=55) -} - -.gjs-cv-canvas .gjs-highlighter, -.gjs-cv-canvas .gjs-highlighter-sel { - position: absolute; - outline: 1px solid #3b97e3; - pointer-events: none -} - -.gjs-cv-canvas .gjs-highlighter-warning { - outline: 3px solid #ffca6f -} - -.gjs-cv-canvas .gjs-highlighter-sel { - outline: 3px solid #3b97e3 -} - -.gjs-cv-canvas #gjs-tools { - width: 100%; - position: absolute; - top: 0; - left: 0; - outline: none -} - -.gjs-cv-canvas>div:first-child { - background-color: #fff; - position: relative; - height: 100%; - overflow: auto; - width: 100% -} - -.gjs-cv-canvas * { - box-sizing: border-box -} - -.gjs-frame { - transition: width 0.35s ease -} - -.gjs-toolbar { - position: absolute; - background-color: #3b97e3; - color: white; - z-index: 10 -} - -.gjs-toolbar-item { - padding: 5px 7px; - font-size: 0.8rem; - cursor: pointer -} - -.gjs-resizer-c { - position: absolute; - z-index: 9 -} - -.gjs-margin-v-el, -.gjs-padding-v-el, -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - opacity: .1; - filter: alpha(opacity=10); - position: absolute; - background-color: yellow -} - -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - opacity: .2; - filter: alpha(opacity=20) -} - -.gjs-padding-v-el, -.gjs-fixedpadding-v-el { - background-color: navy -} - -.gjs-resizer-h { - pointer-events: all; - position: absolute; - border: 3px solid #3b97e3; - width: 10px; - height: 10px; - background-color: #fff; - margin: -5px -} - -.gjs-resizer-h-tl { - top: 0; - left: 0; - cursor: nwse-resize -} - -.gjs-resizer-h-tr { - top: 0; - right: 0; - cursor: nesw-resize -} - -.gjs-resizer-h-tc { - top: 0; - margin: -5px auto; - left: 0; - right: 0; - cursor: ns-resize -} - -.gjs-resizer-h-cl { - left: 0; - margin: auto -5px; - top: 0; - bottom: 0; - cursor: ew-resize -} - -.gjs-resizer-h-cr { - margin: auto -5px; - top: 0; - bottom: 0; - right: 0; - cursor: ew-resize -} - -.gjs-resizer-h-bl { - bottom: 0; - left: 0; - cursor: nesw-resize -} - -.gjs-resizer-h-bc { - bottom: 0; - margin: -5px auto; - left: 0; - right: 0; - cursor: ns-resize -} - -.gjs-resizer-h-br { - bottom: 0; - right: 0; - cursor: nwse-resize -} - -.gjs-pn-panel .gjs-resizer-h { - background-color: rgba(0, 0, 0, 0.2); - border: none; - opacity: 0; - transition: opacity 0.25s -} - -.gjs-pn-panel .gjs-resizer-h:hover { - opacity: 1 -} - -.gjs-pn-panel .gjs-resizer-h-tc, -.gjs-pn-panel .gjs-resizer-h-bc { - margin: 0 auto; - width: 100% -} - -.gjs-pn-panel .gjs-resizer-h-cr, -.gjs-pn-panel .gjs-resizer-h-cl { - margin: auto 0; - height: 100% -} - -.gjs-resizing .gjs-highlighter, -.gjs-resizing .gjs-badge { - display: none !important -} - -.gjs-resizing-tl * { - cursor: nwse-resize !important -} - -.gjs-resizing-tr * { - cursor: nesw-resize !important -} - -.gjs-resizing-tc * { - cursor: ns-resize !important -} - -.gjs-resizing-cl * { - cursor: ew-resize !important -} - -.gjs-resizing-cr * { - cursor: ew-resize !important -} - -.gjs-resizing-bl * { - cursor: nesw-resize !important -} - -.gjs-resizing-bc * { - cursor: ns-resize !important -} - -.gjs-resizing-br * { - cursor: nwse-resize !important -} - -.btn-cl, -.gjs-mdl-dialog .gjs-mdl-btn-close, -.gjs-am-assets-cont #gjs-am-close { - opacity: .3; - filter: alpha(opacity=30); - font-size: 25px; - cursor: pointer -} - -.btn-cl:hover, -.gjs-mdl-dialog .gjs-mdl-btn-close:hover, -.gjs-am-assets-cont #gjs-am-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -#commands.panel { - min-width: 35px; - height: 100%; - z-index: 3 -} - -#options.panel { - z-index: 4; - bottom: 0 -} - -#views.panel { - width: 16.5%; - font-weight: lighter; - color: #ddd; - right: 0; - top: 0; - z-index: 3; - height: 100%; - padding: 0 -} - -#views.panel .c { - height: 100% -} - -#commands.panel, -#options.panel { - width: 3.5%; - left: 0 -} - -#options .c { - display: table; - margin: 0 auto -} - -body.dragging, -body.dragging * { - cursor: move !important -} - -.dragged { - position: absolute; - opacity: .5; - filter: alpha(opacity=50); - z-index: 2000 -} - -ol.example li.placeholder { - position: relative -} - -ol.example li.placeholder:before { - position: absolute -} - -.no-dots, -.ui-resizable-handle { - border: none !important; - margin: 0 !important; - outline: none !important -} - -.gjs-com-dashed * { - outline: 1px dashed #888; - outline-offset: -2px; - box-sizing: border-box -} - -.gjs-cv-canvas .gjs-comp-selected { - outline: 3px solid #3b97e3 !important -} - -*.gjs-com-hover, -div.gjs-com-hover { - outline: 1px solid #3b97e3 -} - -*.gjs-com-hover-delete, -div.gjs-com-hover-delete { - outline: 2px solid #dd3636; - opacity: .5; - filter: alpha(opacity=50) -} - -*.gjs-com-hover-move, -div.gjs-com-hover-move { - outline: 3px solid #ffca6f -} - -.gjs-com-badge, -.gjs-com-badge-red, -.gjs-badge { - pointer-events: none; - background-color: #3b97e3; - color: #fff; - padding: 2px 5px; - position: absolute; - z-index: 1; - font-size: 12px; - outline: none; - display: none -} - -.gjs-com-badge-red { - background-color: #dd3636 -} - -.gjs-badge-warning { - background-color: #ffca6f -} - -.gjs-placeholder, -.gjs-com-placeholder, -.gjs-nv-placeholder { - position: absolute; - z-index: 10; - pointer-events: none; - display: none -} - -.gjs-placeholder, -.gjs-nv-placeholder { - border-style: solid !important; - border-color: #62c462; - outline: none; - box-sizing: border-box -} - -.gjs-placeholder-int, -.gjs-com-placeholder-int, -.gjs-nv-placeholder-int { - background-color: #62c462; - box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); - height: 100%; - width: 100%; - pointer-events: none; - padding: 1.5px; - outline: none -} - -.gjs-pn-panel { - display: inline-block; - padding: 5px; - position: absolute; - box-sizing: border-box; - text-align: center; - z-index: 3 -} - -.gjs-pn-panel#gjs-pn-commands, -.gjs-pn-panel#gjs-pn-options2 { - width: 85%; - left: 0; - top: 0; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3) -} - -.gjs-pn-panel#gjs-pn-options { - right: 15%; - top: 0 -} - -.gjs-pn-panel#gjs-pn-options2 { - bottom: 150px; - height: auto -} - -.gjs-pn-panel .icon-undo, -.gjs-pn-panel .icon-redo { - font-size: 20px; - height: 30px; - width: 25px -} - -.gjs-pn-panel#gjs-pn-views { - border-bottom: 2px solid rgba(0, 0, 0, 0.3); - right: 0; - width: 15%; - z-index: 4 -} - -.gjs-pn-panel#gjs-pn-views-container { - height: 100%; - padding: 42px 0 0; - right: 0; - width: 15%; - overflow: auto; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3) -} - -.gjs-pn-buttons { - align-items: center; - display: flex; - justify-content: center -} - -.gjs-pn-btn, -.gjs-btnt { - box-sizing: border-box; - height: 30px; - width: 30px; - line-height: 21px; - background-color: transparent; - border: none; - font-size: 18px; - margin-right: 5px; - border-radius: 2px; - cursor: pointer; - padding: 5px; - position: relative -} - -.gjs-pn-btn.gjs-pn-active, -.gjs-btnt.gjs-pn-active { - background-color: rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.25) inset -} - -.gjs-pn-btn>.gjs-pn-arrow-rd, -.gjs-btnt>.gjs-pn-arrow-rd { - border-bottom: 5px solid rgba(255, 255, 255, 0.7); - border-left: 5px solid transparent; - bottom: 2px; - right: 2px; - position: absolute -} - -.gjs-pn-btn>.gjs-pn-buttons, -.gjs-btnt>.gjs-pn-buttons { - background-color: #444; - border-radius: 2px; - position: absolute; - display: none; - left: 50px; - top: 0; - padding: 5px -} - -.gjs-pn-btn>.gjs-pn-buttons.gjs-pn-visible, -.gjs-btnt>.gjs-pn-buttons.gjs-pn-visible { - display: block -} - -.gjs-pn-btn>.gjs-pn-buttons>.gjs-pn-arrow-l, -.gjs-btnt>.gjs-pn-buttons>.gjs-pn-arrow-l { - border-bottom: 5px solid transparent; - border-right: 5px solid #444; - border-top: 5px solid transparent; - left: -5px; - top: 15px; - position: absolute -} - -.gjs-nv-selected-parent { - border: 1px solid #ffca6f -} - -.gjs-nv-opac50 { - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-nv-navigator { - position: relative; - height: 100% -} - -.gjs-nv-navigator #gjs-nv-placeholder { - width: 100%; - position: absolute -} - -.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int { - height: 100%; - padding: 1px -} - -.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int.gjs-nv-insert { - background-color: #62c462 -} - -.gjs-nv-navigator .gjs-nv-item { - font-weight: lighter; - text-align: left; - position: relative; - background-color: rgba(0, 0, 0, 0.1) -} - -.gjs-nv-navigator .gjs-nv-item.gjs-nv-hide { - opacity: .55; - filter: alpha(opacity=55) -} - -.gjs-nv-navigator .gjs-nv-item #gjs-nv-counter { - font-size: 10px; - position: absolute; - right: 27px; - top: 9px -} - -.gjs-nv-navigator .gjs-nv-item #gjs-nv-btn-eye { - height: auto !important; - width: auto !important; - font-size: 13px; - left: 0; - top: 0; - padding: 7px 5px 7px 10px; - position: absolute; - cursor: pointer; - z-index: 1 -} - -.gjs-nv-item #gjs-nv-caret { - font-size: 7px; - width: 8px; - padding: 5px; - cursor: pointer; - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-nv-item #gjs-nv-caret:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-nv-title { - background-color: rgba(0, 0, 0, 0.1); - font-size: 11px; - letter-spacing: 1px; - padding: 3px 10px 5px 30px; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - border-top: 1px solid rgba(255, 255, 255, 0.1); - display: flex; - align-items: center -} - -.gjs-nv-item .gjs-nv-children .gjs-nv-title { - border-left: 1px solid rgba(5, 5, 5, 0.3) -} - -.gjs-nv-item>.gjs-nv-children { - margin-left: 7px; - display: none -} - -.gjs-nv-item.open>.gjs-nv-children { - display: block -} - -.gjs-nv-item>.gjs-nv-no-chld>#gjs-nv-caret::before { - content: '' -} - -.gjs-nv-no-chld>#gjs-nv-caret { - display: none -} - -.gjs-nv-item>#gjs-nv-move { - position: absolute; - cursor: move; - font-size: 12px; - right: 0; - top: 0; - padding: 7px 10px 7px 5px -} - -.gjs-nv-selected .gjs-nv-title { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-nv-nav-item-edit { - visibility: hidden; - padding: 5px; - font-size: 10px; - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-nv-nav-item-edit:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-nv-title-c:hover .gjs-nv-nav-item-edit { - visibility: visible; - cursor: pointer -} - -.gjs-nav-comp-name { - padding: 5px; - box-sizing: content-box -} - -.btn.expand, -.gjs-nv-navigator .gjs-nv-item .expand#gjs-nv-btn-eye { - background-image: none -} - -.gjs-comp-image-placeholder { - display: block; - background-color: #f5f5f5; - color: #777; - height: 50px; - width: 50px; - line-height: 50px; - outline: 3px solid #ffca6f; - outline-offset: -3px; - text-align: center; - font-size: 16.66667px; - cursor: pointer -} - -.gjs-comp-image-placeholder.fa-picture-o::after { - content: "\f03e" -} - -.gjs-label { - line-height: 18px -} - -.gjs-field { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - border-radius: 2px; - box-sizing: border-box; - padding: 0; - position: relative -} - -.gjs-field input, -.gjs-field select, -.gjs-field textarea { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - color: rgba(255, 255, 255, 0.7); - border: none; - background-color: transparent; - box-sizing: border-box; - width: 100%; - position: relative; - padding: 3px 4px 4px; - z-index: 1 -} - -.gjs-field textarea { - resize: vertical -} - -.gjs-field select { - height: 20px; - padding-right: 12px -} - -.gjs-field option { - padding: 3px 0 -} - -.gjs-field .gjs-sel-arrow { - height: 100%; - width: 9px; - position: absolute; - right: 0; - top: 0; - z-index: 0 -} - -.gjs-field .gjs-d-s-arrow { - bottom: 7px; - border-top: 4px solid rgba(255, 255, 255, 0.7); - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - cursor: pointer -} - -.gjs-field-color input { - padding-right: 22px; - box-sizing: border-box -} - -.gjs-field-colorp { - border-left: 1px solid rgba(0, 0, 0, 0.3); - box-sizing: border-box; - height: 100%; - padding: 2px; - position: absolute; - right: 0; - top: 0; - width: 22px; - z-index: 10 -} - -.gjs-field-colorp .gjs-checker-bg, -.gjs-field-colorp .gjs-field-colorp-c { - height: 100%; - width: 100%; - border-radius: 1px -} - -.gjs-field-colorp-c { - height: 100%; - position: relative; - width: 100% -} - -.gjs-field-color-picker { - background-color: #ddd; - cursor: pointer; - height: 100%; - width: 100%; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.3); - border-radius: 1px; - position: absolute; - top: 0 -} - -.gjs-field-radio { - float: left; - overflow: hidden; - padding: 0; - width: auto -} - -.gjs-field-checkbox { - padding: 0; - width: auto !important -} - -.gjs-field-checkbox input { - display: none -} - -.gjs-field-checkbox input:checked+.gjs-chk-icon { - border-color: rgba(255, 255, 255, 0.5); - border-width: 0 2px 2px 0; - border-style: solid -} - -.gjs-radio-item { - float: left; - border-left: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-radio-item:first-child { - border: none -} - -.gjs-radio-item:hover { - background: rgba(0, 0, 0, 0.3) -} - -.gjs-radio-item input { - display: none -} - -.gjs-radio-item input:checked+.gjs-radio-item-label { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-radio-item-label { - cursor: pointer; - display: block; - padding: 5px -} - -.gjs-field-units { - position: absolute; - right: 0; - top: 0 -} - -.gjs-field-units select { - padding: 0 12px 0 0 -} - -.gjs-field-unit { - position: absolute; - right: 10px; - top: 3px; - font-size: 10px; - color: rgba(255, 255, 255, 0.7); - cursor: pointer -} - -.gjs-field-arrows { - z-index: 10; - cursor: ns-resize; - height: 100%; - position: absolute; - right: 0; - top: 0; - width: 9px -} - -.gjs-field-arrow-u, -.gjs-field-arrow-d { - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid rgba(255, 255, 255, 0.7); - bottom: 4px; - cursor: pointer -} - -.gjs-field-arrow-u { - border-bottom: 4px solid rgba(255, 255, 255, 0.7); - border-top: none; - top: 4px -} - -.gjs-field-select { - padding: 0 -} - -.gjs-field-range { - background-color: transparent; - border: none; - box-shadow: none; - padding: 0 -} - -.gjs-field-range input { - margin: 0 -} - -.gjs-field-range input::-moz-range-thumb { - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-webkit-slider-thumb { - -webkit-appearance: none; - margin-top: -5px; - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-ms-thumb { - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-moz-range-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-field-range input::-webkit-slider-runnable-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-field-range input::-ms-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-chk-icon { - -ms-transform: rotate(45deg); - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - transform: rotate(45deg); - box-sizing: border-box; - display: block; - height: 14px; - margin: 0 5px; - width: 6px; - cursor: pointer -} - -.gjs-add-trasp { - background: none; - border: none; - color: #ddd; - cursor: pointer; - font-size: 1em; - border-radius: 2px; - opacity: .75; - filter: alpha(opacity=75) -} - -.gjs-add-trasp:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-add-trasp:active { - background-color: rgba(0, 0, 0, 0.2) -} - -.gjs-devices-c { - display: flex; - align-items: center; - padding: 4px -} - -.gjs-devices-c .gjs-device-label { - flex-grow: 2; - font-size: 0.7em; - text-align: left; - margin-right: 10px -} - -.gjs-devices-c .gjs-select { - flex-grow: 20 -} - -.gjs-devices-c .gjs-add-trasp { - flex-grow: 1; - margin-left: 5px -} - -.gjs-category-open, -.gjs-sm-sector.gjs-sm-open, -.gjs-sm-open.gjs-clm-tags, -.gjs-block-category.gjs-open { - border-bottom: 1px solid rgba(0, 0, 0, 0.25) -} - -.gjs-category-title, -.gjs-sm-sector .gjs-sm-title, -.gjs-clm-tags .gjs-sm-title, -.gjs-block-category .gjs-title { - font-weight: lighter; - background-color: rgba(0, 0, 0, 0.1); - font-size: 13px; - letter-spacing: 1px; - padding: 9px 10px 9px 20px; - border-bottom: 1px solid rgba(0, 0, 0, 0.25); - text-align: left; - position: relative; - cursor: pointer -} - -.gjs-sm-clear { - font-size: 1rem; - line-height: 0; - cursor: pointer -} - -.gjs-sm-close-btn, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close { - display: block; - font-size: 23px; - position: absolute; - cursor: pointer; - right: 5px; - top: 0; - opacity: .2; - filter: alpha(opacity=20) -} - -.gjs-sm-close-btn:hover, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-sm-header { - font-size: 11px; - font-weight: lighter; - padding: 10px -} - -.gjs-sm-sector, -.gjs-clm-tags { - clear: both; - font-weight: lighter; - text-align: left -} - -.gjs-sm-sector #gjs-sm-caret, -.gjs-clm-tags #gjs-sm-caret { - padding-right: 5px; - font-size: 11px -} - -.gjs-sm-sector .gjs-sm-label, -.gjs-clm-tags .gjs-sm-label { - margin: 5px 5px 2px 0 -} - -.gjs-sm-sector .gjs-sm-field, -.gjs-clm-tags .gjs-sm-field, -.gjs-sm-sector .gjs-clm-field, -.gjs-clm-tags .gjs-clm-field { - width: 100%; - position: relative -} - -.gjs-sm-sector .gjs-sm-field input, -.gjs-clm-tags .gjs-sm-field input, -.gjs-sm-sector .gjs-clm-field input, -.gjs-clm-tags .gjs-clm-field input, -.gjs-sm-sector .gjs-sm-field select, -.gjs-clm-tags .gjs-sm-field select, -.gjs-sm-sector .gjs-clm-field select, -.gjs-clm-tags .gjs-clm-field select { - background-color: transparent; - color: rgba(255, 255, 255, 0.7); - border: none; - width: 100% -} - -.gjs-sm-sector .gjs-sm-field input, -.gjs-clm-tags .gjs-sm-field input, -.gjs-sm-sector .gjs-clm-field input, -.gjs-clm-tags .gjs-clm-field input { - box-sizing: border-box -} - -.gjs-sm-sector .gjs-sm-field select, -.gjs-clm-tags .gjs-sm-field select, -.gjs-sm-sector .gjs-clm-field select, -.gjs-clm-tags .gjs-clm-field select { - position: relative; - z-index: 1; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none -} - -.gjs-sm-sector .gjs-sm-field select::-ms-expand, -.gjs-clm-tags .gjs-sm-field select::-ms-expand, -.gjs-sm-sector .gjs-clm-field select::-ms-expand, -.gjs-clm-tags .gjs-clm-field select::-ms-expand { - display: none -} - -.gjs-sm-sector .gjs-sm-field select:-moz-focusring, -.gjs-clm-tags .gjs-sm-field select:-moz-focusring, -.gjs-sm-sector .gjs-clm-field select:-moz-focusring, -.gjs-clm-tags .gjs-clm-field select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 rgba(255, 255, 255, 0.7) -} - -.gjs-sm-sector .gjs-sm-field input:focus, -.gjs-clm-tags .gjs-sm-field input:focus, -.gjs-sm-sector .gjs-clm-field input:focus, -.gjs-clm-tags .gjs-clm-field input:focus, -.gjs-sm-sector .gjs-sm-field select:focus, -.gjs-clm-tags .gjs-sm-field select:focus, -.gjs-sm-sector .gjs-clm-field select:focus, -.gjs-clm-tags .gjs-clm-field select:focus { - outline: none -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-unit, -.gjs-clm-tags .gjs-sm-field .gjs-sm-unit, -.gjs-sm-sector .gjs-clm-field .gjs-sm-unit, -.gjs-clm-tags .gjs-clm-field .gjs-sm-unit { - position: absolute; - right: 10px; - top: 3px; - font-size: 10px; - color: rgba(255, 255, 255, 0.7); - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-sel-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-int-arrows, -.gjs-clm-tags .gjs-sm-field .gjs-sm-int-arrows, -.gjs-sm-sector .gjs-clm-field .gjs-sm-int-arrows, -.gjs-clm-tags .gjs-clm-field .gjs-sm-int-arrows, -.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow { - height: 100%; - width: 9px; - position: absolute; - right: 0; - top: 0; - cursor: ns-resize -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow { - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow { - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow { - border-bottom: 4px solid rgba(255, 255, 255, 0.7); - top: 4px -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow { - border-top: 4px solid rgba(255, 255, 255, 0.7); - bottom: 4px -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow { - bottom: 7px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-color, -.gjs-clm-tags .gjs-sm-field.gjs-sm-color, -.gjs-sm-sector .gjs-sm-color.gjs-clm-field, -.gjs-clm-tags .gjs-sm-color.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-input, -.gjs-clm-tags .gjs-sm-field.gjs-sm-input, -.gjs-sm-sector .gjs-sm-input.gjs-clm-field, -.gjs-clm-tags .gjs-sm-input.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-integer, -.gjs-clm-tags .gjs-sm-field.gjs-sm-integer, -.gjs-sm-sector .gjs-sm-integer.gjs-clm-field, -.gjs-clm-tags .gjs-sm-integer.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-list, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field, -.gjs-sm-sector .gjs-clm-select, -.gjs-clm-tags .gjs-clm-select { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.7); - border-radius: 2px; - box-sizing: border-box; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field { - border-radius: 2px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field, -.gjs-sm-sector .gjs-clm-select, -.gjs-clm-tags .gjs-clm-select { - padding: 0 -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field select, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field select, -.gjs-sm-sector .gjs-clm-select select, -.gjs-clm-tags .gjs-clm-select select { - height: 20px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select option, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select option, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field option, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field option, -.gjs-sm-sector .gjs-clm-select option, -.gjs-clm-tags .gjs-clm-select option { - padding: 3px 0 -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field { - background-color: rgba(0, 0, 0, 0.1); - border: 1px solid rgba(0, 0, 0, 0.25) -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field { - width: auto; - padding: 0; - overflow: hidden; - float: left -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list input, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list input, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field input, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field input { - display: none -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list label, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list label, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field label, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field label { - cursor: pointer; - padding: 5px; - display: block -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-icon, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-icon, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-icon, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-icon { - background-repeat: no-repeat; - background-position: center; - text-shadow: none; - line-height: normal -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-integer select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-integer select, -.gjs-sm-sector .gjs-sm-integer.gjs-clm-field select, -.gjs-clm-tags .gjs-sm-integer.gjs-clm-field select { - width: auto; - padding: 0 -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el { - float: left; - border-left: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el:first-child, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el:first-child { - border: none -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el:hover, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el:hover { - background: rgba(0, 0, 0, 0.3) -} - -.gjs-sm-sector .gjs-sm-properties, -.gjs-clm-tags .gjs-sm-properties { - font-size: 11px; - padding: 10px 5px -} - -.gjs-sm-sector .gjs-sm-property, -.gjs-clm-tags .gjs-sm-property { - box-sizing: border-box; - float: left; - width: 80%; - margin-bottom: 5px; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-property.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file, -.gjs-sm-sector .gjs-sm-property.gjs-sm-list, -.gjs-clm-tags .gjs-sm-property.gjs-sm-list, -.gjs-sm-sector .gjs-sm-property.gjs-sm-stack, -.gjs-clm-tags .gjs-sm-property.gjs-sm-stack { - width: 100% -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-btn, -.gjs-clm-tags .gjs-sm-property .gjs-sm-btn { - background-color: rgba(33, 33, 33, 0.3); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(5, 5, 5, 0.3), 1px 1px 0 rgba(43, 43, 43, 0.3) inset; - padding: 5px; - position: relative; - text-align: center; - height: auto; - width: 100%; - cursor: pointer; - color: #ddd; - box-sizing: border-box; - text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); - border: none; - opacity: .85; - filter: alpha(opacity=85) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-btn-c, -.gjs-clm-tags .gjs-sm-property .gjs-sm-btn-c { - box-sizing: border-box; - float: left; - width: 100%; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box { - background-color: rgba(255, 255, 255, 0.05); - border-radius: 2px; - margin-top: 5px; - position: relative; - overflow: hidden -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show { - border: 1px solid rgba(252, 252, 252, 0.05); - padding: 3px 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close { - display: block -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file { - height: 50px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file { - background-size: auto 100%; - background-repeat: no-repeat; - background-position: center center -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layers, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layers { - margin-top: 5px; - min-height: 30px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer { - background-color: rgba(255, 255, 255, 0.055); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2), 1px 1px 0 rgba(255, 255, 255, 0.055) inset; - margin: 2px; - padding: 7px; - position: relative; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box { - height: 15px; - position: absolute; - right: 27px; - top: 6px; - width: 15px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview, -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box { - border-radius: 2px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer { - display: block; - font-size: 23px; - position: absolute; - cursor: pointer; - right: 5px; - top: 0; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover { - opacity: .8; - filter: alpha(opacity=80) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview { - background-color: white; - height: 100%; - width: 100%; - background-size: cover !important -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active { - background-color: rgba(255, 255, 255, 0.12) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box { - display: none -} - -.gjs-sm-sector #gjs-sm-text-shadow #gjs-sm-preview::after, -.gjs-clm-tags #gjs-sm-text-shadow #gjs-sm-preview::after { - color: #000; - content: "T"; - font-weight: 900; - line-height: 17px; - padding: 0 4px -} - -.gjs-sm-sector .gjs-sm-stack .gjs-sm-properties, -.gjs-clm-tags .gjs-sm-stack .gjs-sm-properties { - padding-top: 5px -} - -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add { - background: none; - border: none; - cursor: pointer; - font-size: 22px; - line-height: 10px; - position: absolute; - right: 0; - top: -20px; - opacity: 0.75 -} - -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add:hover, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-sm-sector .gjs-sm-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c { - height: 100%; - width: 20px; - position: absolute; - right: 0; - top: 0; - box-sizing: border-box; - border-radius: 2px; - padding: 2px -} - -.gjs-sm-sector .gjs-sm-colorp-c .gjs-checker-bg, -.gjs-clm-tags .gjs-sm-colorp-c .gjs-checker-bg, -.gjs-sm-sector .gjs-sm-colorp-c .gjs-field-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c .gjs-field-colorp-c { - height: 100%; - width: 100%; - border-radius: 1px -} - -.gjs-sm-sector .gjs-sm-color-picker, -.gjs-clm-tags .gjs-sm-color-picker { - background-color: #ddd; - cursor: pointer; - height: 16px; - width: 100%; - margin-top: -16px; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.3); - border-radius: 1px -} - -.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-upload, -.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-upload { - left: 0; - top: 0; - position: absolute; - width: 100%; - opacity: 0; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-label, -.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-label { - padding: 2px 0 -} - -.gjs-sm-layer>#gjs-sm-move { - opacity: .7; - filter: alpha(opacity=70); - cursor: move; - font-size: 12px; - float: left; - margin: 0 5px 0 0 -} - -.gjs-sm-layer>#gjs-sm-move:hover { - opacity: .9; - filter: alpha(opacity=90) -} - -.gjs-blocks-c { - display: flex; - flex-wrap: wrap; - justify-content: flex-start -} - -.gjs-block-category { - width: 100% -} - -.gjs-block-category .gjs-caret-icon { - margin-right: 5px -} - -.gjs-block { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - width: 45%; - padding: 1em; - box-sizing: border-box; - height: 90px; - cursor: all-scroll; - font-size: 11px; - font-weight: lighter; - display: flex; - flex-direction: column; - justify-content: flex-end; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 3px; - margin: 10px 2.5% 5px; - box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15); - transition: all 0.2s ease 0s; - transition-property: box-shadow, color -} - -.gjs-block:hover { - box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.15) -} - -.gjs-block-svg { - width: 61% -} - -.gjs-block.fa { - font-size: 2em; - line-height: 2em; - padding: 11px -} - -.gjs-block-label { - line-height: normal; - font-size: 0.65rem; - font-weight: normal; - font-family: Helvetica, sans-serif -} - -.gjs-block.gjs-bdrag { - width: auto; - padding: 0 -} - -.gjs-clm-tags { - font-size: 11px; - padding: 10px 5px -} - -.gjs-clm-tags #gjs-clm-label, -.gjs-clm-tags #gjs-clm-sel { - padding: 7px 0; - float: left -} - -.gjs-clm-tags #gjs-clm-sel { - font-style: italic; - margin-left: 5px -} - -.gjs-clm-tags #gjs-clm-status-c { - float: right -} - -.gjs-clm-tags #gjs-clm-tags-field { - clear: both; - padding: 5px; - margin-bottom: 5px -} - -.gjs-clm-tags #gjs-clm-tags-c { - display: inline-block; - vertical-align: top -} - -.gjs-clm-tags #gjs-clm-add-tag { - background-color: rgba(255, 255, 255, 0.15); - border-radius: 2px; - padding: 5px 6px; - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2) inset; - border: 1px solid rgba(0, 0, 0, 0.15); - cursor: pointer -} - -.gjs-clm-tags #gjs-clm-new { - color: #ddd; - padding: 5px 6px; - display: none -} - -.gjs-clm-tags .gjs-clm-tag { - background-color: #804f7b; - border: 1px solid #5a3857; - box-shadow: 1px 1px #9c6196 inset; - text-shadow: 1px 1px #6a4166; - display: inline-block; - border-radius: 3px; - margin: 0 3px 3px 0; - padding: 4px; - cursor: default -} - -.gjs-clm-tags #gjs-clm-close { - font-size: 20px; - line-height: 0; - cursor: pointer; - color: rgba(255, 255, 255, 0.9) -} - -.gjs-clm-tags #gjs-clm-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-clm-tags #gjs-clm-checkbox { - color: rgba(255, 255, 255, 0.9); - vertical-align: middle; - cursor: pointer; - font-size: 9px -} - -.gjs-clm-tags #gjs-clm-tag-label { - cursor: text -} - -.gjs-clm-tags #gjs-clm-tag-label input { - width: auto; - padding: 0 4px -} - -.gjs-mdl-backlayer { - background-color: #000; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: 100%; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-mdl-container { - font-family: Helvetica, sans-serif; - position: absolute; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100% -} - -.gjs-mdl-dialog { - text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.05); - animation: gjs-slide-down 0.215s; - margin: 30px auto 0; - max-width: 850px; - width: 90%; - border-radius: 3px; - font-weight: lighter; - position: relative; - z-index: 2 -} - -.gjs-mdl-dialog .gjs-mdl-btn-close { - position: absolute; - right: 15px; - top: 5px -} - -.gjs-mdl-active .gjs-mdl-dialog { - animation: gjs-mdl-slide-down 0.216s -} - -.gjs-mdl-header, -.gjs-mdl-content { - padding: 10px 15px; - clear: both -} - -.gjs-mdl-header { - position: relative; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - padding: 15px 15px 7px -} - -.gjs-mdl-content { - border-top: 1px solid rgba(255, 255, 255, 0.1) -} - -.gjs-export-dl::after { - content: ""; - clear: both; - display: block; - margin-bottom: 10px -} - -.gjs-am-assets { - height: 290px; - overflow: auto; - clear: both -} - -.gjs-am-assets-header { - padding: 5px -} - -.gjs-am-add-asset .gjs-am-add-field { - width: 70%; - float: left -} - -.gjs-am-add-asset button { - width: 25%; - float: right -} - -.gjs-am-add-field input { - padding: 6px -} - -.gjs-am-assets-cont { - background-color: rgba(0, 0, 0, 0.1); - border-radius: 3px; - box-sizing: border-box; - padding: 10px; - width: 45%; - float: right; - height: 325px; - overflow: hidden -} - -.gjs-am-assets-cont #gjs-am-preview-cont { - position: relative; - height: 70px; - width: 30%; - background-color: #444; - border-radius: 2px; - float: left; - overflow: hidden -} - -.gjs-am-assets-cont #gjs-am-preview { - position: absolute; - background-position: center center; - background-size: cover; - background-repeat: no-repeat; - height: 100%; - width: 100%; - z-index: 1 -} - -.gjs-am-assets-cont #gjs-am-preview-bg { - position: absolute; - height: 100%; - width: 100%; - opacity: .5; - filter: alpha(opacity=50); - z-index: 0 -} - -.gjs-am-assets-cont .gjs-am-highlight { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-am-assets-cont .gjs-am-asset { - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - padding: 5px; - cursor: pointer; - position: relative -} - -.gjs-am-assets-cont .gjs-am-asset:hover #gjs-am-close { - display: block -} - -.gjs-am-assets-cont #gjs-am-close { - position: absolute; - right: 5px; - top: 0; - display: none -} - -.gjs-am-assets-cont #gjs-am-meta { - width: 70%; - float: left; - font-size: 12px; - padding: 5px 0 0 5px; - box-sizing: border-box -} - -.gjs-am-assets-cont #gjs-am-meta>div { - margin-bottom: 5px -} - -.gjs-am-assets-cont #gjs-am-meta #gjs-am-dimensions { - font-size: 10px; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-am-file-uploader { - width: 55%; - float: left -} - -.gjs-am-file-uploader>form { - background-color: rgba(0, 0, 0, 0.1); - border: 2px dashed; - border-radius: 3px; - position: relative; - text-align: center; - margin-bottom: 15px -} - -.gjs-am-file-uploader>form.gjs-am-hover { - border: 2px solid #62c462; - color: #75cb75 -} - -.gjs-am-file-uploader>form.gjs-am-disabled { - border-color: red -} - -.gjs-am-file-uploader>form #gjs-am-uploadFile { - opacity: 0; - filter: alpha(opacity=0); - padding: 150px 10px; - width: 100%; - box-sizing: border-box -} - -.gjs-am-file-uploader #gjs-am-title { - position: absolute; - padding: 150px 10px; - width: 100% -} - -.gjs-cm-editor-c { - float: left; - box-sizing: border-box; - width: 50% -} - -.gjs-cm-editor-c .CodeMirror { - height: 450px -} - -.gjs-cm-editor { - font-size: 12px -} - -.gjs-cm-editor#gjs-cm-htmlmixed { - padding-right: 10px; - border-right: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title { - color: #a97d44 -} - -.gjs-cm-editor#gjs-cm-css { - padding-left: 10px; - border-left: 1px solid rgba(255, 255, 255, 0.1) -} - -.gjs-cm-editor#gjs-cm-css #gjs-cm-title { - color: #ddca7e -} - -.gjs-cm-editor #gjs-cm-title { - background-color: rgba(0, 0, 0, 0.3); - font-size: 12px; - padding: 5px 10px 3px; - text-align: right -} - -#gjs-rte-toolbar { - display: none; - border: 1px solid rgba(0, 0, 0, 0.3); - position: absolute; - border-radius: 3px; - z-index: 10 -} - -#gjs-rte-toolbar .gjs-rte-btn { - display: inline-block; - padding: 5px; - min-width: 25px; - border-right: 1px solid rgba(0, 0, 0, 0.3); - text-align: center; - cursor: pointer; - outline: none -} - -#gjs-rte-toolbar .gjs-rte-btn:last-child { - border-right: none -} - -#gjs-rte-toolbar .gjs-rte-btn.btn-info { - background-color: rgba(0, 0, 0, 0.3) -} - -#gjs-rte-toolbar .gjs-rte-btn:hover { - background-color: rgba(255, 255, 255, 0.1) -} - -#gjs-rte-toolbar select { - height: 16px -} - -.sp-hue, -.sp-slider { - cursor: row-resize -} - -.sp-color, -.sp-dragger { - cursor: crosshair -} - -.sp-alpha-inner, -.sp-alpha-handle { - cursor: col-resize -} - -.sp-hue { - left: 90% -} - -.sp-color { - right: 15% -} - -.sp-container { - border: 1px solid rgba(0, 0, 0, 0.3); - box-shadow: 0 0 7px rgba(0, 0, 0, 0.3); - border-radius: 3px -} - -.sp-picker-container { - border: none -} - -.colpick_dark .colpick_color { - outline: 1px solid rgba(0, 0, 0, 0.3) -} - -.sp-cancel, -.sp-cancel:hover { - bottom: -8px; - color: #777 !important; - font-size: 25px; - left: 0; - position: absolute; - text-decoration: none -} - -.sp-alpha-handle { - background-color: #ccc; - border: 1px solid #555; - width: 4px -} - -.sp-color, -.sp-hue { - border: 1px solid #333333 -} - -.sp-slider { - background-color: #ccc; - border: 1px solid #555; - height: 3px; - left: -4px; - width: 22px -} - -.sp-dragger { - background: transparent; - box-shadow: 0 0 0 1px #111 -} - -.sp-button-container { - float: none; - width: 100%; - position: relative; - text-align: right -} - -.sp-container button, -.sp-container button:hover, -.sp-container button:active { - background: rgba(0, 0, 0, 0.3); - border-color: rgba(0, 0, 0, 0.3); - color: #ddd; - text-shadow: none; - box-shadow: none; - padding: 3px 5px -} - -.sp-palette-container { - border: none; - float: none; - margin: 0; - padding: 5px 10px 0 -} - -.sp-palette .sp-thumb-el, -.sp-palette .sp-thumb-el:hover { - border: 1px solid rgba(0, 0, 0, 0.9) -} - -.sp-palette .sp-thumb-el:hover, -.sp-palette .sp-thumb-el.sp-thumb-active { - border-color: rgba(0, 0, 0, 0.9) -} - -.gjs-hidden { - display: none -} - -@keyframes gjs-slide-down { - 0% { - transform: translate(0, -3rem); - opacity: 0 - } - 100% { - transform: translate(0, 0); - opacity: 1 - } -} - -@keyframes gjs-slide-up { - 0% { - transform: translate(0, 0); - opacity: 1 - } - 100% { - transform: translate(0, -3rem); - opacity: 0 - } -} diff --git a/client/static/grapes.min.js b/client/static/grapes.min.js deleted file mode 100644 index 9148b2b..0000000 --- a/client/static/grapes.min.js +++ /dev/null @@ -1,21169 +0,0 @@ -/*! grapesjs - 0.9.8 */ ! function(t, e) { - "object" == typeof exports && "object" == typeof module ? module.exports = e(require("jQuery")) : "function" == typeof define && define.amd ? define(["jQuery"], e) : "object" == typeof exports ? exports.grapesjs = e(require("jQuery")) : t.grapesjs = e(t.jQuery) -}(this, function(t) { - return function(t) { - function e(n) { - if (i[n]) return i[n].exports; - var r = i[n] = { - i: n, - l: !1, - exports: {} - }; - return t[n].call(r.exports, r, r.exports, e), r.l = !0, r.exports - } - var i = {}; - return e.m = t, e.c = i, e.i = function(t) { - return t - }, e.d = function(t, i, n) { - e.o(t, i) || Object.defineProperty(t, i, { - configurable: !1, - enumerable: !0, - get: n - }) - }, e.n = function(t) { - var i = t && t.__esModule ? function() { - return t.default - } : function() { - return t - }; - return e.d(i, "a", i), i - }, e.o = function(t, e) { - return Object.prototype.hasOwnProperty.call(t, e) - }, e.p = "", e(e.s = 133) - }([function(t, e, i) { - (function(n) { - var r, s; - ! function(o) { - var a = "object" == typeof self && self.self === self && self || "object" == typeof n && n.global === n && n; - r = [i(1), i(11), e], void 0 !== (s = function(t, e, i) { - a.Backbone = o(a, i, t, e) - }.apply(e, r)) && (t.exports = s) - }(function(t, e, i, n) { - var r = t.Backbone, - s = Array.prototype.slice; - e.VERSION = "1.3.3", e.$ = n, e.noConflict = function() { - return t.Backbone = r, this - }, e.emulateHTTP = !1, e.emulateJSON = !1; - var o = function(t, e, n) { - switch (t) { - case 1: - return function() { - return i[e](this[n]) - }; - case 2: - return function(t) { - return i[e](this[n], t) - }; - case 3: - return function(t, r) { - return i[e](this[n], l(t, this), r) - }; - case 4: - return function(t, r, s) { - return i[e](this[n], l(t, this), r, s) - }; - default: - return function() { - var t = s.call(arguments); - return t.unshift(this[n]), i[e].apply(i, t) - } - } - }, - a = function(t, e, n) { - i.each(e, function(e, r) { - i[r] && (t.prototype[r] = o(e, r, n)) - }) - }, - l = function(t, e) { - return i.isFunction(t) ? t : i.isObject(t) && !e._isModel(t) ? c(t) : i.isString(t) ? function(e) { - return e.get(t) - } : t - }, - c = function(t) { - var e = i.matches(t); - return function(t) { - return e(t.attributes) - } - }, - u = e.Events = {}, - h = /\s+/, - d = function(t, e, n, r, s) { - var o, a = 0; - if (n && "object" == typeof n) { - void 0 !== r && "context" in s && void 0 === s.context && (s.context = r); - for (o = i.keys(n); a < o.length; a++) e = d(t, e, o[a], n[o[a]], s) - } else if (n && h.test(n)) - for (o = n.split(h); a < o.length; a++) e = t(e, o[a], r, s); - else e = t(e, n, r, s); - return e - }; - u.on = function(t, e, i) { - return f(this, t, e, i) - }; - var f = function(t, e, i, n, r) { - if (t._events = d(p, t._events || {}, e, i, { - context: n, - ctx: t, - listening: r - }), r) { - (t._listeners || (t._listeners = {}))[r.id] = r - } - return t - }; - u.listenTo = function(t, e, n) { - if (!t) return this; - var r = t._listenId || (t._listenId = i.uniqueId("l")), - s = this._listeningTo || (this._listeningTo = {}), - o = s[r]; - if (!o) { - var a = this._listenId || (this._listenId = i.uniqueId("l")); - o = s[r] = { - obj: t, - objId: r, - id: a, - listeningTo: s, - count: 0 - } - } - return f(t, e, n, this, o), this - }; - var p = function(t, e, i, n) { - if (i) { - var r = t[e] || (t[e] = []), - s = n.context, - o = n.ctx, - a = n.listening; - a && a.count++, r.push({ - callback: i, - context: s, - ctx: s || o, - listening: a - }) - } - return t - }; - u.off = function(t, e, i) { - return this._events ? (this._events = d(g, this._events, t, e, { - context: i, - listeners: this._listeners - }), this) : this - }, u.stopListening = function(t, e, n) { - var r = this._listeningTo; - if (!r) return this; - for (var s = t ? [t._listenId] : i.keys(r), o = 0; o < s.length; o++) { - var a = r[s[o]]; - if (!a) break; - a.obj.off(e, n, this) - } - return this - }; - var g = function(t, e, n, r) { - if (t) { - var s, o = 0, - a = r.context, - l = r.listeners; - if (e || n || a) { - for (var c = e ? [e] : i.keys(t); o < c.length; o++) { - e = c[o]; - var u = t[e]; - if (!u) break; - for (var h = [], d = 0; d < u.length; d++) { - var f = u[d]; - n && n !== f.callback && n !== f.callback._callback || a && a !== f.context ? h.push(f) : (s = f.listening) && 0 == --s.count && (delete l[s.id], delete s.listeningTo[s.objId]) - } - h.length ? t[e] = h : delete t[e] - } - return t - } - for (var p = i.keys(l); o < p.length; o++) s = l[p[o]], delete l[s.id], delete s.listeningTo[s.objId] - } - }; - u.once = function(t, e, n) { - var r = d(m, {}, t, e, i.bind(this.off, this)); - return "string" == typeof t && null == n && (e = void 0), this.on(r, e, n) - }, u.listenToOnce = function(t, e, n) { - var r = d(m, {}, e, n, i.bind(this.stopListening, this, t)); - return this.listenTo(t, r) - }; - var m = function(t, e, n, r) { - if (n) { - var s = t[e] = i.once(function() { - r(e, s), n.apply(this, arguments) - }); - s._callback = n - } - return t - }; - u.trigger = function(t) { - if (!this._events) return this; - for (var e = Math.max(0, arguments.length - 1), i = Array(e), n = 0; n < e; n++) i[n] = arguments[n + 1]; - return d(v, this._events, t, void 0, i), this - }; - var v = function(t, e, i, n) { - if (t) { - var r = t[e], - s = t.all; - r && s && (s = s.slice()), r && y(r, n), s && y(s, [e].concat(n)) - } - return t - }, - y = function(t, e) { - var i, n = -1, - r = t.length, - s = e[0], - o = e[1], - a = e[2]; - switch (e.length) { - case 0: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx); - return; - case 1: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s); - return; - case 2: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s, o); - return; - case 3: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s, o, a); - return; - default: - for (; ++n < r;)(i = t[n]).callback.apply(i.ctx, e); - return - } - }; - u.bind = u.on, u.unbind = u.off, i.extend(e, u); - var b = e.Model = function(t, e) { - var n = t || {}; - e || (e = {}), this.cid = i.uniqueId(this.cidPrefix), this.attributes = {}, e.collection && (this.collection = e.collection), e.parse && (n = this.parse(n, e) || {}); - var r = i.result(this, "defaults"); - n = i.defaults(i.extend({}, r, n), r), this.set(n, e), this.changed = {}, this.initialize.apply(this, arguments) - }; - i.extend(b.prototype, u, { - changed: null, - validationError: null, - idAttribute: "id", - cidPrefix: "c", - initialize: function() {}, - toJSON: function(t) { - return i.clone(this.attributes) - }, - sync: function() { - return e.sync.apply(this, arguments) - }, - get: function(t) { - return this.attributes[t] - }, - escape: function(t) { - return i.escape(this.get(t)) - }, - has: function(t) { - return null != this.get(t) - }, - matches: function(t) { - return !!i.iteratee(t, this)(this.attributes) - }, - set: function(t, e, n) { - if (null == t) return this; - var r; - if ("object" == typeof t ? (r = t, n = e) : (r = {})[t] = e, n || (n = {}), !this._validate(r, n)) return !1; - var s = n.unset, - o = n.silent, - a = [], - l = this._changing; - this._changing = !0, l || (this._previousAttributes = i.clone(this.attributes), this.changed = {}); - var c = this.attributes, - u = this.changed, - h = this._previousAttributes; - for (var d in r) e = r[d], i.isEqual(c[d], e) || a.push(d), i.isEqual(h[d], e) ? delete u[d] : u[d] = e, s ? delete c[d] : c[d] = e; - if (this.idAttribute in r && (this.id = this.get(this.idAttribute)), !o) { - a.length && (this._pending = n); - for (var f = 0; f < a.length; f++) this.trigger("change:" + a[f], this, c[a[f]], n) - } - if (l) return this; - if (!o) - for (; this._pending;) n = this._pending, this._pending = !1, this.trigger("change", this, n); - return this._pending = !1, this._changing = !1, this - }, - unset: function(t, e) { - return this.set(t, void 0, i.extend({}, e, { - unset: !0 - })) - }, - clear: function(t) { - var e = {}; - for (var n in this.attributes) e[n] = void 0; - return this.set(e, i.extend({}, t, { - unset: !0 - })) - }, - hasChanged: function(t) { - return null == t ? !i.isEmpty(this.changed) : i.has(this.changed, t) - }, - changedAttributes: function(t) { - if (!t) return !!this.hasChanged() && i.clone(this.changed); - var e = this._changing ? this._previousAttributes : this.attributes, - n = {}; - for (var r in t) { - var s = t[r]; - i.isEqual(e[r], s) || (n[r] = s) - } - return !!i.size(n) && n - }, - previous: function(t) { - return null != t && this._previousAttributes ? this._previousAttributes[t] : null - }, - previousAttributes: function() { - return i.clone(this._previousAttributes) - }, - fetch: function(t) { - t = i.extend({ - parse: !0 - }, t); - var e = this, - n = t.success; - return t.success = function(i) { - var r = t.parse ? e.parse(i, t) : i; - if (!e.set(r, t)) return !1; - n && n.call(t.context, e, i, t), e.trigger("sync", e, i, t) - }, H(this, t), this.sync("read", this, t) - }, - save: function(t, e, n) { - var r; - null == t || "object" == typeof t ? (r = t, n = e) : (r = {})[t] = e, n = i.extend({ - validate: !0, - parse: !0 - }, n); - var s = n.wait; - if (r && !s) { - if (!this.set(r, n)) return !1 - } else if (!this._validate(r, n)) return !1; - var o = this, - a = n.success, - l = this.attributes; - n.success = function(t) { - o.attributes = l; - var e = n.parse ? o.parse(t, n) : t; - if (s && (e = i.extend({}, r, e)), e && !o.set(e, n)) return !1; - a && a.call(n.context, o, t, n), o.trigger("sync", o, t, n) - }, H(this, n), r && s && (this.attributes = i.extend({}, l, r)); - var c = this.isNew() ? "create" : n.patch ? "patch" : "update"; - "patch" !== c || n.attrs || (n.attrs = r); - var u = this.sync(c, this, n); - return this.attributes = l, u - }, - destroy: function(t) { - t = t ? i.clone(t) : {}; - var e = this, - n = t.success, - r = t.wait, - s = function() { - e.stopListening(), e.trigger("destroy", e, e.collection, t) - }; - t.success = function(i) { - r && s(), n && n.call(t.context, e, i, t), e.isNew() || e.trigger("sync", e, i, t) - }; - var o = !1; - return this.isNew() ? i.defer(t.success) : (H(this, t), o = this.sync("delete", this, t)), r || s(), o - }, - url: function() { - var t = i.result(this, "urlRoot") || i.result(this.collection, "url") || F(); - if (this.isNew()) return t; - var e = this.get(this.idAttribute); - return t.replace(/[^\/]$/, "$&/") + encodeURIComponent(e) - }, - parse: function(t, e) { - return t - }, - clone: function() { - return new this.constructor(this.attributes) - }, - isNew: function() { - return !this.has(this.idAttribute) - }, - isValid: function(t) { - return this._validate({}, i.extend({}, t, { - validate: !0 - })) - }, - _validate: function(t, e) { - if (!e.validate || !this.validate) return !0; - t = i.extend({}, this.attributes, t); - var n = this.validationError = this.validate(t, e) || null; - return !n || (this.trigger("invalid", this, n, i.extend(e, { - validationError: n - })), !1) - } - }), a(b, { - keys: 1, - values: 1, - pairs: 1, - invert: 1, - pick: 0, - omit: 0, - chain: 1, - isEmpty: 1 - }, "attributes"); - var x = e.Collection = function(t, e) { - e || (e = {}), e.model && (this.model = e.model), void 0 !== e.comparator && (this.comparator = e.comparator), this._reset(), this.initialize.apply(this, arguments), t && this.reset(t, i.extend({ - silent: !0 - }, e)) - }, - w = { - add: !0, - remove: !0, - merge: !0 - }, - C = { - add: !0, - remove: !1 - }, - k = function(t, e, i) { - i = Math.min(Math.max(i, 0), t.length); - var n, r = Array(t.length - i), - s = e.length; - for (n = 0; n < r.length; n++) r[n] = t[n + i]; - for (n = 0; n < s; n++) t[n + i] = e[n]; - for (n = 0; n < r.length; n++) t[n + s + i] = r[n] - }; - i.extend(x.prototype, u, { - model: b, - initialize: function() {}, - toJSON: function(t) { - return this.map(function(e) { - return e.toJSON(t) - }) - }, - sync: function() { - return e.sync.apply(this, arguments) - }, - add: function(t, e) { - return this.set(t, i.extend({ - merge: !1 - }, e, C)) - }, - remove: function(t, e) { - e = i.extend({}, e); - var n = !i.isArray(t); - t = n ? [t] : t.slice(); - var r = this._removeModels(t, e); - return !e.silent && r.length && (e.changes = { - added: [], - merged: [], - removed: r - }, this.trigger("update", this, e)), n ? r[0] : r - }, - set: function(t, e) { - if (null != t) { - e = i.extend({}, w, e), e.parse && !this._isModel(t) && (t = this.parse(t, e) || []); - var n = !i.isArray(t); - t = n ? [t] : t.slice(); - var r = e.at; - null != r && (r = +r), r > this.length && (r = this.length), r < 0 && (r += this.length + 1); - var s, o, a = [], - l = [], - c = [], - u = [], - h = {}, - d = e.add, - f = e.merge, - p = e.remove, - g = !1, - m = this.comparator && null == r && !1 !== e.sort, - v = i.isString(this.comparator) ? this.comparator : null; - for (o = 0; o < t.length; o++) { - s = t[o]; - var y = this.get(s); - if (y) { - if (f && s !== y) { - var b = this._isModel(s) ? s.attributes : s; - e.parse && (b = y.parse(b, e)), y.set(b, e), c.push(y), m && !g && (g = y.hasChanged(v)) - } - h[y.cid] || (h[y.cid] = !0, a.push(y)), t[o] = y - } else d && (s = t[o] = this._prepareModel(s, e)) && (l.push(s), this._addReference(s, e), h[s.cid] = !0, a.push(s)) - } - if (p) { - for (o = 0; o < this.length; o++) s = this.models[o], h[s.cid] || u.push(s); - u.length && this._removeModels(u, e) - } - var x = !1, - C = !m && d && p; - if (a.length && C ? (x = this.length !== a.length || i.some(this.models, function(t, e) { - return t !== a[e] - }), this.models.length = 0, k(this.models, a, 0), this.length = this.models.length) : l.length && (m && (g = !0), k(this.models, l, null == r ? this.length : r), this.length = this.models.length), g && this.sort({ - silent: !0 - }), !e.silent) { - for (o = 0; o < l.length; o++) null != r && (e.index = r + o), s = l[o], s.trigger("add", s, this, e); - (g || x) && this.trigger("sort", this, e), (l.length || u.length || c.length) && (e.changes = { - added: l, - removed: u, - merged: c - }, this.trigger("update", this, e)) - } - return n ? t[0] : t - } - }, - reset: function(t, e) { - e = e ? i.clone(e) : {}; - for (var n = 0; n < this.models.length; n++) this._removeReference(this.models[n], e); - return e.previousModels = this.models, this._reset(), t = this.add(t, i.extend({ - silent: !0 - }, e)), e.silent || this.trigger("reset", this, e), t - }, - push: function(t, e) { - return this.add(t, i.extend({ - at: this.length - }, e)) - }, - pop: function(t) { - var e = this.at(this.length - 1); - return this.remove(e, t) - }, - unshift: function(t, e) { - return this.add(t, i.extend({ - at: 0 - }, e)) - }, - shift: function(t) { - var e = this.at(0); - return this.remove(e, t) - }, - slice: function() { - return s.apply(this.models, arguments) - }, - get: function(t) { - if (null != t) return this._byId[t] || this._byId[this.modelId(t.attributes || t)] || t.cid && this._byId[t.cid] - }, - has: function(t) { - return null != this.get(t) - }, - at: function(t) { - return t < 0 && (t += this.length), this.models[t] - }, - where: function(t, e) { - return this[e ? "find" : "filter"](t) - }, - findWhere: function(t) { - return this.where(t, !0) - }, - sort: function(t) { - var e = this.comparator; - if (!e) throw new Error("Cannot sort a set without a comparator"); - t || (t = {}); - var n = e.length; - return i.isFunction(e) && (e = i.bind(e, this)), 1 === n || i.isString(e) ? this.models = this.sortBy(e) : this.models.sort(e), t.silent || this.trigger("sort", this, t), this - }, - pluck: function(t) { - return this.map(t + "") - }, - fetch: function(t) { - t = i.extend({ - parse: !0 - }, t); - var e = t.success, - n = this; - return t.success = function(i) { - var r = t.reset ? "reset" : "set"; - n[r](i, t), e && e.call(t.context, n, i, t), n.trigger("sync", n, i, t) - }, H(this, t), this.sync("read", this, t) - }, - create: function(t, e) { - e = e ? i.clone(e) : {}; - var n = e.wait; - if (!(t = this._prepareModel(t, e))) return !1; - n || this.add(t, e); - var r = this, - s = e.success; - return e.success = function(t, e, i) { - n && r.add(t, i), s && s.call(i.context, t, e, i) - }, t.save(null, e), t - }, - parse: function(t, e) { - return t - }, - clone: function() { - return new this.constructor(this.models, { - model: this.model, - comparator: this.comparator - }) - }, - modelId: function(t) { - return t[this.model.prototype.idAttribute || "id"] - }, - _reset: function() { - this.length = 0, this.models = [], this._byId = {} - }, - _prepareModel: function(t, e) { - if (this._isModel(t)) return t.collection || (t.collection = this), t; - e = e ? i.clone(e) : {}, e.collection = this; - var n = new this.model(t, e); - return n.validationError ? (this.trigger("invalid", this, n.validationError, e), !1) : n - }, - _removeModels: function(t, e) { - for (var i = [], n = 0; n < t.length; n++) { - var r = this.get(t[n]); - if (r) { - var s = this.indexOf(r); - this.models.splice(s, 1), this.length--, delete this._byId[r.cid]; - var o = this.modelId(r.attributes); - null != o && delete this._byId[o], e.silent || (e.index = s, r.trigger("remove", r, this, e)), i.push(r), this._removeReference(r, e) - } - } - return i - }, - _isModel: function(t) { - return t instanceof b - }, - _addReference: function(t, e) { - this._byId[t.cid] = t; - var i = this.modelId(t.attributes); - null != i && (this._byId[i] = t), t.on("all", this._onModelEvent, this) - }, - _removeReference: function(t, e) { - delete this._byId[t.cid]; - var i = this.modelId(t.attributes); - null != i && delete this._byId[i], this === t.collection && delete t.collection, t.off("all", this._onModelEvent, this) - }, - _onModelEvent: function(t, e, i, n) { - if (e) { - if (("add" === t || "remove" === t) && i !== this) return; - if ("destroy" === t && this.remove(e, n), "change" === t) { - var r = this.modelId(e.previousAttributes()), - s = this.modelId(e.attributes); - r !== s && (null != r && delete this._byId[r], null != s && (this._byId[s] = e)) - } - } - this.trigger.apply(this, arguments) - } - }), a(x, { - forEach: 3, - each: 3, - map: 3, - collect: 3, - reduce: 0, - foldl: 0, - inject: 0, - reduceRight: 0, - foldr: 0, - find: 3, - detect: 3, - filter: 3, - select: 3, - reject: 3, - every: 3, - all: 3, - some: 3, - any: 3, - include: 3, - includes: 3, - contains: 3, - invoke: 0, - max: 3, - min: 3, - toArray: 1, - size: 1, - first: 3, - head: 3, - take: 3, - initial: 3, - rest: 3, - tail: 3, - drop: 3, - last: 3, - without: 0, - difference: 0, - indexOf: 3, - shuffle: 1, - lastIndexOf: 3, - isEmpty: 1, - chain: 1, - sample: 3, - partition: 3, - groupBy: 3, - countBy: 3, - sortBy: 3, - indexBy: 3, - findIndex: 3, - findLastIndex: 3 - }, "models"); - var S = e.View = function(t) { - this.cid = i.uniqueId("view"), i.extend(this, i.pick(t, M)), this._ensureElement(), this.initialize.apply(this, arguments) - }, - T = /^(\S+)\s*(.*)$/, - M = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"]; - i.extend(S.prototype, u, { - tagName: "div", - $: function(t) { - return this.$el.find(t) - }, - initialize: function() {}, - render: function() { - return this - }, - remove: function() { - return this._removeElement(), this.stopListening(), this - }, - _removeElement: function() { - this.$el.remove() - }, - setElement: function(t) { - return this.undelegateEvents(), this._setElement(t), this.delegateEvents(), this - }, - _setElement: function(t) { - this.$el = t instanceof e.$ ? t : e.$(t), this.el = this.$el[0] - }, - delegateEvents: function(t) { - if (t || (t = i.result(this, "events")), !t) return this; - this.undelegateEvents(); - for (var e in t) { - var n = t[e]; - if (i.isFunction(n) || (n = this[n]), n) { - var r = e.match(T); - this.delegate(r[1], r[2], i.bind(n, this)) - } - } - return this - }, - delegate: function(t, e, i) { - return this.$el.on(t + ".delegateEvents" + this.cid, e, i), this - }, - undelegateEvents: function() { - return this.$el && this.$el.off(".delegateEvents" + this.cid), this - }, - undelegate: function(t, e, i) { - return this.$el.off(t + ".delegateEvents" + this.cid, e, i), this - }, - _createElement: function(t) { - return document.createElement(t) - }, - _ensureElement: function() { - if (this.el) this.setElement(i.result(this, "el")); - else { - var t = i.extend({}, i.result(this, "attributes")); - this.id && (t.id = i.result(this, "id")), this.className && (t.class = i.result(this, "className")), this.setElement(this._createElement(i.result(this, "tagName"))), this._setAttributes(t) - } - }, - _setAttributes: function(t) { - this.$el.attr(t) - } - }), e.sync = function(t, n, r) { - var s = E[t]; - i.defaults(r || (r = {}), { - emulateHTTP: e.emulateHTTP, - emulateJSON: e.emulateJSON - }); - var o = { - type: s, - dataType: "json" - }; - if (r.url || (o.url = i.result(n, "url") || F()), null != r.data || !n || "create" !== t && "update" !== t && "patch" !== t || (o.contentType = "application/json", o.data = JSON.stringify(r.attrs || n.toJSON(r))), r.emulateJSON && (o.contentType = "application/x-www-form-urlencoded", o.data = o.data ? { - model: o.data - } : {}), r.emulateHTTP && ("PUT" === s || "DELETE" === s || "PATCH" === s)) { - o.type = "POST", r.emulateJSON && (o.data._method = s); - var a = r.beforeSend; - r.beforeSend = function(t) { - if (t.setRequestHeader("X-HTTP-Method-Override", s), a) return a.apply(this, arguments) - } - } - "GET" === o.type || r.emulateJSON || (o.processData = !1); - var l = r.error; - r.error = function(t, e, i) { - r.textStatus = e, r.errorThrown = i, l && l.call(r.context, t, e, i) - }; - var c = r.xhr = e.ajax(i.extend(o, r)); - return n.trigger("request", n, c, r), c - }; - var E = { - create: "POST", - update: "PUT", - patch: "PATCH", - delete: "DELETE", - read: "GET" - }; - e.ajax = function() { - return e.$.ajax.apply(e.$, arguments) - }; - var P = e.Router = function(t) { - t || (t = {}), t.routes && (this.routes = t.routes), this._bindRoutes(), this.initialize.apply(this, arguments) - }, - $ = /\((.*?)\)/g, - L = /(\(\?)?:\w+/g, - A = /\*\w+/g, - N = /[\-{}\[\]+?.,\\\^$|#\s]/g; - i.extend(P.prototype, u, { - initialize: function() {}, - route: function(t, n, r) { - i.isRegExp(t) || (t = this._routeToRegExp(t)), i.isFunction(n) && (r = n, n = ""), r || (r = this[n]); - var s = this; - return e.history.route(t, function(i) { - var o = s._extractParameters(t, i); - !1 !== s.execute(r, o, n) && (s.trigger.apply(s, ["route:" + n].concat(o)), s.trigger("route", n, o), e.history.trigger("route", s, n, o)) - }), this - }, - execute: function(t, e, i) { - t && t.apply(this, e) - }, - navigate: function(t, i) { - return e.history.navigate(t, i), this - }, - _bindRoutes: function() { - if (this.routes) { - this.routes = i.result(this, "routes"); - for (var t, e = i.keys(this.routes); null != (t = e.pop());) this.route(t, this.routes[t]) - } - }, - _routeToRegExp: function(t) { - return t = t.replace(N, "\\$&").replace($, "(?:$1)?").replace(L, function(t, e) { - return e ? t : "([^/?]+)" - }).replace(A, "([^?]*?)"), new RegExp("^" + t + "(?:\\?([\\s\\S]*))?$") - }, - _extractParameters: function(t, e) { - var n = t.exec(e).slice(1); - return i.map(n, function(t, e) { - return e === n.length - 1 ? t || null : t ? decodeURIComponent(t) : null - }) - } - }); - var O = e.History = function() { - this.handlers = [], this.checkUrl = i.bind(this.checkUrl, this), "undefined" != typeof window && (this.location = window.location, this.history = window.history) - }, - I = /^[#\/]|\s+$/g, - D = /^\/+|\/+$/g, - _ = /#.*$/; - O.started = !1, i.extend(O.prototype, u, { - interval: 50, - atRoot: function() { - return this.location.pathname.replace(/[^\/]$/, "$&/") === this.root && !this.getSearch() - }, - matchRoot: function() { - return this.decodeFragment(this.location.pathname).slice(0, this.root.length - 1) + "/" === this.root - }, - decodeFragment: function(t) { - return decodeURI(t.replace(/%25/g, "%2525")) - }, - getSearch: function() { - var t = this.location.href.replace(/#.*/, "").match(/\?.+/); - return t ? t[0] : "" - }, - getHash: function(t) { - var e = (t || this).location.href.match(/#(.*)$/); - return e ? e[1] : "" - }, - getPath: function() { - var t = this.decodeFragment(this.location.pathname + this.getSearch()).slice(this.root.length - 1); - return "/" === t.charAt(0) ? t.slice(1) : t - }, - getFragment: function(t) { - return null == t && (t = this._usePushState || !this._wantsHashChange ? this.getPath() : this.getHash()), t.replace(I, "") - }, - start: function(t) { - if (O.started) throw new Error("Backbone.history has already been started"); - if (O.started = !0, this.options = i.extend({ - root: "/" - }, this.options, t), this.root = this.options.root, this._wantsHashChange = !1 !== this.options.hashChange, this._hasHashChange = "onhashchange" in window && (void 0 === document.documentMode || document.documentMode > 7), this._useHashChange = this._wantsHashChange && this._hasHashChange, this._wantsPushState = !!this.options.pushState, this._hasPushState = !(!this.history || !this.history.pushState), this._usePushState = this._wantsPushState && this._hasPushState, this.fragment = this.getFragment(), this.root = ("/" + this.root + "/").replace(D, "/"), this._wantsHashChange && this._wantsPushState) { - if (!this._hasPushState && !this.atRoot()) { - var e = this.root.slice(0, -1) || "/"; - return this.location.replace(e + "#" + this.getPath()), !0 - } - this._hasPushState && this.atRoot() && this.navigate(this.getHash(), { - replace: !0 - }) - } - if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) { - this.iframe = document.createElement("iframe"), this.iframe.src = "javascript:0", this.iframe.style.display = "none", this.iframe.tabIndex = -1; - var n = document.body, - r = n.insertBefore(this.iframe, n.firstChild).contentWindow; - r.document.open(), r.document.close(), r.location.hash = "#" + this.fragment - } - var s = window.addEventListener || function(t, e) { - return attachEvent("on" + t, e) - }; - if (this._usePushState ? s("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe ? s("hashchange", this.checkUrl, !1) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), !this.options.silent) return this.loadUrl() - }, - stop: function() { - var t = window.removeEventListener || function(t, e) { - return detachEvent("on" + t, e) - }; - this._usePushState ? t("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe && t("hashchange", this.checkUrl, !1), this.iframe && (document.body.removeChild(this.iframe), this.iframe = null), this._checkUrlInterval && clearInterval(this._checkUrlInterval), O.started = !1 - }, - route: function(t, e) { - this.handlers.unshift({ - route: t, - callback: e - }) - }, - checkUrl: function(t) { - var e = this.getFragment(); - if (e === this.fragment && this.iframe && (e = this.getHash(this.iframe.contentWindow)), e === this.fragment) return !1; - this.iframe && this.navigate(e), this.loadUrl() - }, - loadUrl: function(t) { - return !!this.matchRoot() && (t = this.fragment = this.getFragment(t), i.some(this.handlers, function(e) { - if (e.route.test(t)) return e.callback(t), !0 - })) - }, - navigate: function(t, e) { - if (!O.started) return !1; - e && !0 !== e || (e = { - trigger: !!e - }), t = this.getFragment(t || ""); - var i = this.root; - "" !== t && "?" !== t.charAt(0) || (i = i.slice(0, -1) || "/"); - var n = i + t; - if (t = this.decodeFragment(t.replace(_, "")), this.fragment !== t) { - if (this.fragment = t, this._usePushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n); - else { - if (!this._wantsHashChange) return this.location.assign(n); - if (this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getHash(this.iframe.contentWindow)) { - var r = this.iframe.contentWindow; - e.replace || (r.document.open(), r.document.close()), this._updateHash(r.location, t, e.replace) - } - } - return e.trigger ? this.loadUrl(t) : void 0 - } - }, - _updateHash: function(t, e, i) { - if (i) { - var n = t.href.replace(/(javascript:|#).*$/, ""); - t.replace(n + "#" + e) - } else t.hash = "#" + e - } - }), e.history = new O; - var z = function(t, e) { - var n, r = this; - return n = t && i.has(t, "constructor") ? t.constructor : function() { - return r.apply(this, arguments) - }, i.extend(n, r, e), n.prototype = i.create(r.prototype, t), n.prototype.constructor = n, n.__super__ = r.prototype, n - }; - b.extend = x.extend = P.extend = S.extend = O.extend = z; - var F = function() { - throw new Error('A "url" property or function must be specified') - }, - H = function(t, e) { - var i = e.error; - e.error = function(n) { - i && i.call(e.context, t, n, e), t.trigger("error", t, n, e) - } - }; - return e - }) - }).call(e, i(42)) - }, function(t, e, i) { - var n, r; - (function() { - function i(t) { - function e(e, i, n, r, s, o) { - for (; s >= 0 && s < o; s += t) { - var a = r ? r[s] : s; - n = i(n, e[a], a, e) - } - return n - } - return function(i, n, r, s) { - n = k(n, s, 4); - var o = !L(i) && C.keys(i), - a = (o || i).length, - l = t > 0 ? 0 : a - 1; - return arguments.length < 3 && (r = i[o ? o[l] : l], l += t), e(i, n, r, o, l, a) - } - } - - function s(t) { - return function(e, i, n) { - i = S(i, n); - for (var r = $(e), s = t > 0 ? 0 : r - 1; s >= 0 && s < r; s += t) - if (i(e[s], s, e)) return s; - return -1 - } - } - - function o(t, e, i) { - return function(n, r, s) { - var o = 0, - a = $(n); - if ("number" == typeof s) t > 0 ? o = s >= 0 ? s : Math.max(s + a, o) : a = s >= 0 ? Math.min(s + 1, a) : s + a + 1; - else if (i && s && a) return s = i(n, r), n[s] === r ? s : -1; - if (r !== r) return s = e(p.call(n, o, a), C.isNaN), s >= 0 ? s + o : -1; - for (s = t > 0 ? o : a - 1; s >= 0 && s < a; s += t) - if (n[s] === r) return s; - return -1 - } - } - - function a(t, e) { - var i = D.length, - n = t.constructor, - r = C.isFunction(n) && n.prototype || h, - s = "constructor"; - for (C.has(t, s) && !C.contains(e, s) && e.push(s); i--;)(s = D[i]) in t && t[s] !== r[s] && !C.contains(e, s) && e.push(s) - } - var l = this, - c = l._, - u = Array.prototype, - h = Object.prototype, - d = Function.prototype, - f = u.push, - p = u.slice, - g = h.toString, - m = h.hasOwnProperty, - v = Array.isArray, - y = Object.keys, - b = d.bind, - x = Object.create, - w = function() {}, - C = function(t) { - return t instanceof C ? t : this instanceof C ? void(this._wrapped = t) : new C(t) - }; - void 0 !== t && t.exports && (e = t.exports = C), e._ = C, C.VERSION = "1.8.3"; - var k = function(t, e, i) { - if (void 0 === e) return t; - switch (null == i ? 3 : i) { - case 1: - return function(i) { - return t.call(e, i) - }; - case 2: - return function(i, n) { - return t.call(e, i, n) - }; - case 3: - return function(i, n, r) { - return t.call(e, i, n, r) - }; - case 4: - return function(i, n, r, s) { - return t.call(e, i, n, r, s) - } - } - return function() { - return t.apply(e, arguments) - } - }, - S = function(t, e, i) { - return null == t ? C.identity : C.isFunction(t) ? k(t, e, i) : C.isObject(t) ? C.matcher(t) : C.property(t) - }; - C.iteratee = function(t, e) { - return S(t, e, 1 / 0) - }; - var T = function(t, e) { - return function(i) { - var n = arguments.length; - if (n < 2 || null == i) return i; - for (var r = 1; r < n; r++) - for (var s = arguments[r], o = t(s), a = o.length, l = 0; l < a; l++) { - var c = o[l]; - e && void 0 !== i[c] || (i[c] = s[c]) - } - return i - } - }, - M = function(t) { - if (!C.isObject(t)) return {}; - if (x) return x(t); - w.prototype = t; - var e = new w; - return w.prototype = null, e - }, - E = function(t) { - return function(e) { - return null == e ? void 0 : e[t] - } - }, - P = Math.pow(2, 53) - 1, - $ = E("length"), - L = function(t) { - var e = $(t); - return "number" == typeof e && e >= 0 && e <= P - }; - C.each = C.forEach = function(t, e, i) { - e = k(e, i); - var n, r; - if (L(t)) - for (n = 0, r = t.length; n < r; n++) e(t[n], n, t); - else { - var s = C.keys(t); - for (n = 0, r = s.length; n < r; n++) e(t[s[n]], s[n], t) - } - return t - }, C.map = C.collect = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = Array(r), o = 0; o < r; o++) { - var a = n ? n[o] : o; - s[o] = e(t[a], a, t) - } - return s - }, C.reduce = C.foldl = C.inject = i(1), C.reduceRight = C.foldr = i(-1), C.find = C.detect = function(t, e, i) { - var n; - if (void 0 !== (n = L(t) ? C.findIndex(t, e, i) : C.findKey(t, e, i)) && -1 !== n) return t[n] - }, C.filter = C.select = function(t, e, i) { - var n = []; - return e = S(e, i), C.each(t, function(t, i, r) { - e(t, i, r) && n.push(t) - }), n - }, C.reject = function(t, e, i) { - return C.filter(t, C.negate(S(e)), i) - }, C.every = C.all = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = 0; s < r; s++) { - var o = n ? n[s] : s; - if (!e(t[o], o, t)) return !1 - } - return !0 - }, C.some = C.any = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = 0; s < r; s++) { - var o = n ? n[s] : s; - if (e(t[o], o, t)) return !0 - } - return !1 - }, C.contains = C.includes = C.include = function(t, e, i, n) { - return L(t) || (t = C.values(t)), ("number" != typeof i || n) && (i = 0), C.indexOf(t, e, i) >= 0 - }, C.invoke = function(t, e) { - var i = p.call(arguments, 2), - n = C.isFunction(e); - return C.map(t, function(t) { - var r = n ? e : t[e]; - return null == r ? r : r.apply(t, i) - }) - }, C.pluck = function(t, e) { - return C.map(t, C.property(e)) - }, C.where = function(t, e) { - return C.filter(t, C.matcher(e)) - }, C.findWhere = function(t, e) { - return C.find(t, C.matcher(e)) - }, C.max = function(t, e, i) { - var n, r, s = -1 / 0, - o = -1 / 0; - if (null == e && null != t) { - t = L(t) ? t : C.values(t); - for (var a = 0, l = t.length; a < l; a++)(n = t[a]) > s && (s = n) - } else e = S(e, i), C.each(t, function(t, i, n) { - ((r = e(t, i, n)) > o || r === -1 / 0 && s === -1 / 0) && (s = t, o = r) - }); - return s - }, C.min = function(t, e, i) { - var n, r, s = 1 / 0, - o = 1 / 0; - if (null == e && null != t) { - t = L(t) ? t : C.values(t); - for (var a = 0, l = t.length; a < l; a++)(n = t[a]) < s && (s = n) - } else e = S(e, i), C.each(t, function(t, i, n) { - ((r = e(t, i, n)) < o || r === 1 / 0 && s === 1 / 0) && (s = t, o = r) - }); - return s - }, C.shuffle = function(t) { - for (var e, i = L(t) ? t : C.values(t), n = i.length, r = Array(n), s = 0; s < n; s++) e = C.random(0, s), e !== s && (r[s] = r[e]), r[e] = i[s]; - return r - }, C.sample = function(t, e, i) { - return null == e || i ? (L(t) || (t = C.values(t)), t[C.random(t.length - 1)]) : C.shuffle(t).slice(0, Math.max(0, e)) - }, C.sortBy = function(t, e, i) { - return e = S(e, i), C.pluck(C.map(t, function(t, i, n) { - return { - value: t, - index: i, - criteria: e(t, i, n) - } - }).sort(function(t, e) { - var i = t.criteria, - n = e.criteria; - if (i !== n) { - if (i > n || void 0 === i) return 1; - if (i < n || void 0 === n) return -1 - } - return t.index - e.index - }), "value") - }; - var A = function(t) { - return function(e, i, n) { - var r = {}; - return i = S(i, n), C.each(e, function(n, s) { - var o = i(n, s, e); - t(r, n, o) - }), r - } - }; - C.groupBy = A(function(t, e, i) { - C.has(t, i) ? t[i].push(e) : t[i] = [e] - }), C.indexBy = A(function(t, e, i) { - t[i] = e - }), C.countBy = A(function(t, e, i) { - C.has(t, i) ? t[i]++ : t[i] = 1 - }), C.toArray = function(t) { - return t ? C.isArray(t) ? p.call(t) : L(t) ? C.map(t, C.identity) : C.values(t) : [] - }, C.size = function(t) { - return null == t ? 0 : L(t) ? t.length : C.keys(t).length - }, C.partition = function(t, e, i) { - e = S(e, i); - var n = [], - r = []; - return C.each(t, function(t, i, s) { - (e(t, i, s) ? n : r).push(t) - }), [n, r] - }, C.first = C.head = C.take = function(t, e, i) { - if (null != t) return null == e || i ? t[0] : C.initial(t, t.length - e) - }, C.initial = function(t, e, i) { - return p.call(t, 0, Math.max(0, t.length - (null == e || i ? 1 : e))) - }, C.last = function(t, e, i) { - if (null != t) return null == e || i ? t[t.length - 1] : C.rest(t, Math.max(0, t.length - e)) - }, C.rest = C.tail = C.drop = function(t, e, i) { - return p.call(t, null == e || i ? 1 : e) - }, C.compact = function(t) { - return C.filter(t, C.identity) - }; - var N = function(t, e, i, n) { - for (var r = [], s = 0, o = n || 0, a = $(t); o < a; o++) { - var l = t[o]; - if (L(l) && (C.isArray(l) || C.isArguments(l))) { - e || (l = N(l, e, i)); - var c = 0, - u = l.length; - for (r.length += u; c < u;) r[s++] = l[c++] - } else i || (r[s++] = l) - } - return r - }; - C.flatten = function(t, e) { - return N(t, e, !1) - }, C.without = function(t) { - return C.difference(t, p.call(arguments, 1)) - }, C.uniq = C.unique = function(t, e, i, n) { - C.isBoolean(e) || (n = i, i = e, e = !1), null != i && (i = S(i, n)); - for (var r = [], s = [], o = 0, a = $(t); o < a; o++) { - var l = t[o], - c = i ? i(l, o, t) : l; - e ? (o && s === c || r.push(l), s = c) : i ? C.contains(s, c) || (s.push(c), r.push(l)) : C.contains(r, l) || r.push(l) - } - return r - }, C.union = function() { - return C.uniq(N(arguments, !0, !0)) - }, C.intersection = function(t) { - for (var e = [], i = arguments.length, n = 0, r = $(t); n < r; n++) { - var s = t[n]; - if (!C.contains(e, s)) { - for (var o = 1; o < i && C.contains(arguments[o], s); o++); - o === i && e.push(s) - } - } - return e - }, C.difference = function(t) { - var e = N(arguments, !0, !0, 1); - return C.filter(t, function(t) { - return !C.contains(e, t) - }) - }, C.zip = function() { - return C.unzip(arguments) - }, C.unzip = function(t) { - for (var e = t && C.max(t, $).length || 0, i = Array(e), n = 0; n < e; n++) i[n] = C.pluck(t, n); - return i - }, C.object = function(t, e) { - for (var i = {}, n = 0, r = $(t); n < r; n++) e ? i[t[n]] = e[n] : i[t[n][0]] = t[n][1]; - return i - }, C.findIndex = s(1), C.findLastIndex = s(-1), C.sortedIndex = function(t, e, i, n) { - i = S(i, n, 1); - for (var r = i(e), s = 0, o = $(t); s < o;) { - var a = Math.floor((s + o) / 2); - i(t[a]) < r ? s = a + 1 : o = a - } - return s - }, C.indexOf = o(1, C.findIndex, C.sortedIndex), C.lastIndexOf = o(-1, C.findLastIndex), C.range = function(t, e, i) { - null == e && (e = t || 0, t = 0), i = i || 1; - for (var n = Math.max(Math.ceil((e - t) / i), 0), r = Array(n), s = 0; s < n; s++, t += i) r[s] = t; - return r - }; - var O = function(t, e, i, n, r) { - if (!(n instanceof e)) return t.apply(i, r); - var s = M(t.prototype), - o = t.apply(s, r); - return C.isObject(o) ? o : s - }; - C.bind = function(t, e) { - if (b && t.bind === b) return b.apply(t, p.call(arguments, 1)); - if (!C.isFunction(t)) throw new TypeError("Bind must be called on a function"); - var i = p.call(arguments, 2), - n = function() { - return O(t, n, e, this, i.concat(p.call(arguments))) - }; - return n - }, C.partial = function(t) { - var e = p.call(arguments, 1), - i = function() { - for (var n = 0, r = e.length, s = Array(r), o = 0; o < r; o++) s[o] = e[o] === C ? arguments[n++] : e[o]; - for (; n < arguments.length;) s.push(arguments[n++]); - return O(t, i, this, this, s) - }; - return i - }, C.bindAll = function(t) { - var e, i, n = arguments.length; - if (n <= 1) throw new Error("bindAll must be passed function names"); - for (e = 1; e < n; e++) i = arguments[e], t[i] = C.bind(t[i], t); - return t - }, C.memoize = function(t, e) { - var i = function(n) { - var r = i.cache, - s = "" + (e ? e.apply(this, arguments) : n); - return C.has(r, s) || (r[s] = t.apply(this, arguments)), r[s] - }; - return i.cache = {}, i - }, C.delay = function(t, e) { - var i = p.call(arguments, 2); - return setTimeout(function() { - return t.apply(null, i) - }, e) - }, C.defer = C.partial(C.delay, C, 1), C.throttle = function(t, e, i) { - var n, r, s, o = null, - a = 0; - i || (i = {}); - var l = function() { - a = !1 === i.leading ? 0 : C.now(), o = null, s = t.apply(n, r), o || (n = r = null) - }; - return function() { - var c = C.now(); - a || !1 !== i.leading || (a = c); - var u = e - (c - a); - return n = this, r = arguments, u <= 0 || u > e ? (o && (clearTimeout(o), o = null), a = c, s = t.apply(n, r), o || (n = r = null)) : o || !1 === i.trailing || (o = setTimeout(l, u)), s - } - }, C.debounce = function(t, e, i) { - var n, r, s, o, a, l = function() { - var c = C.now() - o; - c < e && c >= 0 ? n = setTimeout(l, e - c) : (n = null, i || (a = t.apply(s, r), n || (s = r = null))) - }; - return function() { - s = this, r = arguments, o = C.now(); - var c = i && !n; - return n || (n = setTimeout(l, e)), c && (a = t.apply(s, r), s = r = null), a - } - }, C.wrap = function(t, e) { - return C.partial(e, t) - }, C.negate = function(t) { - return function() { - return !t.apply(this, arguments) - } - }, C.compose = function() { - var t = arguments, - e = t.length - 1; - return function() { - for (var i = e, n = t[e].apply(this, arguments); i--;) n = t[i].call(this, n); - return n - } - }, C.after = function(t, e) { - return function() { - if (--t < 1) return e.apply(this, arguments) - } - }, C.before = function(t, e) { - var i; - return function() { - return --t > 0 && (i = e.apply(this, arguments)), t <= 1 && (e = null), i - } - }, C.once = C.partial(C.before, 2); - var I = !{ - toString: null - }.propertyIsEnumerable("toString"), - D = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"]; - C.keys = function(t) { - if (!C.isObject(t)) return []; - if (y) return y(t); - var e = []; - for (var i in t) C.has(t, i) && e.push(i); - return I && a(t, e), e - }, C.allKeys = function(t) { - if (!C.isObject(t)) return []; - var e = []; - for (var i in t) e.push(i); - return I && a(t, e), e - }, C.values = function(t) { - for (var e = C.keys(t), i = e.length, n = Array(i), r = 0; r < i; r++) n[r] = t[e[r]]; - return n - }, C.mapObject = function(t, e, i) { - e = S(e, i); - for (var n, r = C.keys(t), s = r.length, o = {}, a = 0; a < s; a++) n = r[a], o[n] = e(t[n], n, t); - return o - }, C.pairs = function(t) { - for (var e = C.keys(t), i = e.length, n = Array(i), r = 0; r < i; r++) n[r] = [e[r], t[e[r]]]; - return n - }, C.invert = function(t) { - for (var e = {}, i = C.keys(t), n = 0, r = i.length; n < r; n++) e[t[i[n]]] = i[n]; - return e - }, C.functions = C.methods = function(t) { - var e = []; - for (var i in t) C.isFunction(t[i]) && e.push(i); - return e.sort() - }, C.extend = T(C.allKeys), C.extendOwn = C.assign = T(C.keys), C.findKey = function(t, e, i) { - e = S(e, i); - for (var n, r = C.keys(t), s = 0, o = r.length; s < o; s++) - if (n = r[s], e(t[n], n, t)) return n - }, C.pick = function(t, e, i) { - var n, r, s = {}, - o = t; - if (null == o) return s; - C.isFunction(e) ? (r = C.allKeys(o), n = k(e, i)) : (r = N(arguments, !1, !1, 1), n = function(t, e, i) { - return e in i - }, o = Object(o)); - for (var a = 0, l = r.length; a < l; a++) { - var c = r[a], - u = o[c]; - n(u, c, o) && (s[c] = u) - } - return s - }, C.omit = function(t, e, i) { - if (C.isFunction(e)) e = C.negate(e); - else { - var n = C.map(N(arguments, !1, !1, 1), String); - e = function(t, e) { - return !C.contains(n, e) - } - } - return C.pick(t, e, i) - }, C.defaults = T(C.allKeys, !0), C.create = function(t, e) { - var i = M(t); - return e && C.extendOwn(i, e), i - }, C.clone = function(t) { - return C.isObject(t) ? C.isArray(t) ? t.slice() : C.extend({}, t) : t - }, C.tap = function(t, e) { - return e(t), t - }, C.isMatch = function(t, e) { - var i = C.keys(e), - n = i.length; - if (null == t) return !n; - for (var r = Object(t), s = 0; s < n; s++) { - var o = i[s]; - if (e[o] !== r[o] || !(o in r)) return !1 - } - return !0 - }; - var _ = function(t, e, i, n) { - if (t === e) return 0 !== t || 1 / t == 1 / e; - if (null == t || null == e) return t === e; - t instanceof C && (t = t._wrapped), e instanceof C && (e = e._wrapped); - var r = g.call(t); - if (r !== g.call(e)) return !1; - switch (r) { - case "[object RegExp]": - case "[object String]": - return "" + t == "" + e; - case "[object Number]": - return +t != +t ? +e != +e : 0 == +t ? 1 / +t == 1 / e : +t == +e; - case "[object Date]": - case "[object Boolean]": - return +t == +e - } - var s = "[object Array]" === r; - if (!s) { - if ("object" != typeof t || "object" != typeof e) return !1; - var o = t.constructor, - a = e.constructor; - if (o !== a && !(C.isFunction(o) && o instanceof o && C.isFunction(a) && a instanceof a) && "constructor" in t && "constructor" in e) return !1 - } - i = i || [], n = n || []; - for (var l = i.length; l--;) - if (i[l] === t) return n[l] === e; - if (i.push(t), n.push(e), s) { - if ((l = t.length) !== e.length) return !1; - for (; l--;) - if (!_(t[l], e[l], i, n)) return !1 - } else { - var c, u = C.keys(t); - if (l = u.length, C.keys(e).length !== l) return !1; - for (; l--;) - if (c = u[l], !C.has(e, c) || !_(t[c], e[c], i, n)) return !1 - } - return i.pop(), n.pop(), !0 - }; - C.isEqual = function(t, e) { - return _(t, e) - }, C.isEmpty = function(t) { - return null == t || (L(t) && (C.isArray(t) || C.isString(t) || C.isArguments(t)) ? 0 === t.length : 0 === C.keys(t).length) - }, C.isElement = function(t) { - return !(!t || 1 !== t.nodeType) - }, C.isArray = v || function(t) { - return "[object Array]" === g.call(t) - }, C.isObject = function(t) { - var e = typeof t; - return "function" === e || "object" === e && !!t - }, C.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(t) { - C["is" + t] = function(e) { - return g.call(e) === "[object " + t + "]" - } - }), C.isArguments(arguments) || (C.isArguments = function(t) { - return C.has(t, "callee") - }), "function" != typeof /./ && "object" != typeof Int8Array && (C.isFunction = function(t) { - return "function" == typeof t || !1 - }), C.isFinite = function(t) { - return isFinite(t) && !isNaN(parseFloat(t)) - }, C.isNaN = function(t) { - return C.isNumber(t) && t !== +t - }, C.isBoolean = function(t) { - return !0 === t || !1 === t || "[object Boolean]" === g.call(t) - }, C.isNull = function(t) { - return null === t - }, C.isUndefined = function(t) { - return void 0 === t - }, C.has = function(t, e) { - return null != t && m.call(t, e) - }, C.noConflict = function() { - return l._ = c, this - }, C.identity = function(t) { - return t - }, C.constant = function(t) { - return function() { - return t - } - }, C.noop = function() {}, C.property = E, C.propertyOf = function(t) { - return null == t ? function() {} : function(e) { - return t[e] - } - }, C.matcher = C.matches = function(t) { - return t = C.extendOwn({}, t), - function(e) { - return C.isMatch(e, t) - } - }, C.times = function(t, e, i) { - var n = Array(Math.max(0, t)); - e = k(e, i, 1); - for (var r = 0; r < t; r++) n[r] = e(r); - return n - }, C.random = function(t, e) { - return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1)) - }, C.now = Date.now || function() { - return (new Date).getTime() - }; - var z = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }, - F = C.invert(z), - H = function(t) { - var e = function(e) { - return t[e] - }, - i = "(?:" + C.keys(t).join("|") + ")", - n = RegExp(i), - r = RegExp(i, "g"); - return function(t) { - return t = null == t ? "" : "" + t, n.test(t) ? t.replace(r, e) : t - } - }; - C.escape = H(z), C.unescape = H(F), C.result = function(t, e, i) { - var n = null == t ? void 0 : t[e]; - return void 0 === n && (n = i), C.isFunction(n) ? n.call(t) : n - }; - var R = 0; - C.uniqueId = function(t) { - var e = ++R + ""; - return t ? t + e : e - }, C.templateSettings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g - }; - var V = /(.)^/, - W = { - "'": "'", - "\\": "\\", - "\r": "r", - "\n": "n", - "\u2028": "u2028", - "\u2029": "u2029" - }, - B = /\\|'|\r|\n|\u2028|\u2029/g, - j = function(t) { - return "\\" + W[t] - }; - C.template = function(t, e, i) { - !e && i && (e = i), e = C.defaults({}, e, C.templateSettings); - var n = RegExp([(e.escape || V).source, (e.interpolate || V).source, (e.evaluate || V).source].join("|") + "|$", "g"), - r = 0, - s = "__p+='"; - t.replace(n, function(e, i, n, o, a) { - return s += t.slice(r, a).replace(B, j), r = a + e.length, i ? s += "'+\n((__t=(" + i + "))==null?'':_.escape(__t))+\n'" : n ? s += "'+\n((__t=(" + n + "))==null?'':__t)+\n'" : o && (s += "';\n" + o + "\n__p+='"), e - }), s += "';\n", e.variable || (s = "with(obj||{}){\n" + s + "}\n"), s = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + s + "return __p;\n"; - try { - var o = new Function(e.variable || "obj", "_", s) - } catch (t) { - throw t.source = s, t - } - var a = function(t) { - return o.call(this, t, C) - }; - return a.source = "function(" + (e.variable || "obj") + "){\n" + s + "}", a - }, C.chain = function(t) { - var e = C(t); - return e._chain = !0, e - }; - var U = function(t, e) { - return t._chain ? C(e).chain() : e - }; - C.mixin = function(t) { - C.each(C.functions(t), function(e) { - var i = C[e] = t[e]; - C.prototype[e] = function() { - var t = [this._wrapped]; - return f.apply(t, arguments), U(this, i.apply(C, t)) - } - }) - }, C.mixin(C), C.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(t) { - var e = u[t]; - C.prototype[t] = function() { - var i = this._wrapped; - return e.apply(i, arguments), "shift" !== t && "splice" !== t || 0 !== i.length || delete i[0], U(this, i) - } - }), C.each(["concat", "join", "slice"], function(t) { - var e = u[t]; - C.prototype[t] = function() { - return U(this, e.apply(this._wrapped, arguments)) - } - }), C.prototype.value = function() { - return this._wrapped - }, C.prototype.valueOf = C.prototype.toJSON = C.prototype.value, C.prototype.toString = function() { - return "" + this._wrapped - }, n = [], void 0 !== (r = function() { - return C - }.apply(e, n)) && (t.exports = r) - }).call(this) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { - return typeof t - } : function(t) { - return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t - }, - r = i(22), - s = function(t) { - return t && t.__esModule ? t : { - default: t - } - }(r), - o = i(0), - a = i(112), - l = i(33), - c = i(39), - u = function(t) { - return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&") - }; - t.exports = o.Model.extend(s.default).extend({ - defaults: { - tagName: "div", - type: "", - removable: !0, - draggable: !0, - droppable: !0, - badgable: !0, - stylable: !0, - highlightable: !0, - copyable: !0, - resizable: !1, - editable: !1, - hiddenLayer: !1, - void: !1, - state: "", - status: "", - content: "", - icon: "", - style: {}, - attributes: "", - classes: "", - script: "", - traits: ["id", "title"], - toolbar: null, - previousModel: "", - mirror: "" - }, - initialize: function(t, e) { - e && e.config && e.config.voidElements.indexOf(this.get("tagName")) >= 0 && this.set("void", !0), this.opt = e, this.sm = e ? e.sm || {} : {}, this.config = t || {}, this.defaultC = this.config.components || [], this.defaultCl = this.normalizeClasses(this.get("classes") || this.config.classes || []), this.components = new a(this.defaultC, e), this.components.parent = this, this.listenTo(this, "change:script", this.scriptUpdated), this.set("attributes", this.get("attributes") || {}), this.set("components", this.components), this.set("classes", new l(this.defaultCl)); - var i = new c; - i.setTarget(this), i.add(this.get("traits")), this.set("traits", i), this.initToolbar(), ["stylable"].forEach(function(t) { - var e = this.get(t); - if ("string" == typeof e) { - var i = e.split(",").map(function(t) { - return t.trim() - }); - this.set(t, i) - } - }, this), this.set("status", ""), this.init() - }, - init: function() {}, - scriptUpdated: function() { - this.set("scriptUpdated", 1) - }, - initToolbar: function() { - var t = this; - if (!t.get("toolbar")) { - var e = []; - t.get("draggable") && e.push({ - attributes: { - class: "fa fa-arrows" - }, - command: "tlb-move" - }), t.get("copyable") && e.push({ - attributes: { - class: "fa fa-clone" - }, - command: "tlb-clone" - }), t.get("removable") && e.push({ - attributes: { - class: "fa fa-trash-o" - }, - command: "tlb-delete" - }), t.set("toolbar", e) - } - }, - loadTraits: function(t) { - var e = new c; - e.setTarget(this), e.add(t), this.set("traits", e) - }, - normalizeClasses: function(t) { - var e = []; - if (this.sm.get) { - var i = this.sm.get("SelectorManager"); - if (i) return t.forEach(function(t) { - var n = ""; - n = "string" == typeof t ? t : t.name; - var r = i.add(n); - e.push(r) - }), e - } - }, - clone: function(t) { - var i = e.clone(this.attributes), - n = this.get("components"), - r = this.get("traits"), - s = this.get("classes"); - return i.components = [], i.classes = [], i.traits = [], n.each(function(t, e) { - i.components[e] = t.clone(1) - }), r.each(function(t, e) { - i.traits[e] = t.clone() - }), s.each(function(t, e) { - i.classes[e] = t.get("name") - }), i.status = "", i.view = "", t && (this.opt.collection = null), new this.constructor(i, this.opt) - }, - getName: function() { - var t = this.get("custom-name"), - e = this.get("tagName"); - e = "div" == e ? "box" : e; - var i = this.get("type") || e; - return i = i.charAt(0).toUpperCase() + i.slice(1), t || i - }, - getIcon: function() { - var t = this.get("icon"); - return t ? t + " " : "" - }, - toHTML: function(t) { - var i = "", - r = this, - s = r.get("tagName"), - o = 0, - a = r.get("void"), - l = "", - c = "", - u = this.getAttrToHTML(); - for (var h in u) { - "id" == h && (o = 1); - var d = u[h]; - c += void 0 !== (void 0 === d ? "undefined" : n(d)) && "" !== d ? " " + h + '="' + d + '"' : "" - } - var f = ""; - return r.get("classes").each(function(t) { - f += " " + t.get("name") - }), f = "" !== f ? ' class="' + f.trim() + '"' : "", e.isEmpty(r.get("style")) || o || (l = ' id="' + r.getId() + '" '), i += "<" + s + f + l + c + (a ? "/" : "") + ">" + r.get("content"), r.get("components").each(function(t) { - i += t.toHTML() - }), a || (i += ""), i - }, - getAttrToHTML: function() { - var t = this.get("attributes") || {}; - return delete t.style, t - }, - toJSON: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - var n = o.Model.prototype.toJSON.apply(this, e), - r = this.getScriptString(); - return delete n.toolbar, r && (n.script = r), n - }, - getId: function() { - return (this.get("attributes") || {}).id || this.cid - }, - getScriptString: function(t) { - var e = this, - i = t || this.get("script"); - if (!i) return i; - if ("function" == typeof i) { - var n = i.toString().trim(); - n = n.replace(/^function[\s\w]*\(\)\s?\{/, "").replace(/\}$/, ""), i = n.trim() - } - var r = this.sm.config || {}, - s = u(r.tagVarStart || "{[ "), - o = u(r.tagVarEnd || " ]}"), - a = new RegExp(s + "(\\w+)" + o, "g"); - return i = i.replace(a, function(t, i) { - return e.scriptUpdated(), e.attributes[i] - }) - } - }, { - isComponent: function(t) { - return { - tagName: t.tagName ? t.tagName.toLowerCase() : "" - } - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(124); - t.exports = n.View.extend({ - events: { - click: "initResize" - }, - className: function() { - return this.getClasses() - }, - tagName: function() { - return this.model.get("tagName") - }, - initialize: function(t) { - var e = this.model; - this.opts = t || {}, this.config = this.opts.config || {}, this.em = this.config.em || "", this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.components = e.get("components"), this.attr = e.get("attributes"), this.classe = this.attr.class || [], this.listenTo(e, "destroy remove", this.remove), this.listenTo(e, "change:style", this.updateStyle), this.listenTo(e, "change:attributes", this.updateAttributes), this.listenTo(e, "change:status", this.updateStatus), this.listenTo(e, "change:state", this.updateState), this.listenTo(e, "change:script", this.render), this.listenTo(e, "change", this.handleChange), this.listenTo(e.get("classes"), "add remove change", this.updateClasses), this.$el.data("model", e), e.view = this, this.$el.data("collection", this.components), e.get("classes").length && this.importClasses(), this.init() - }, - init: function() {}, - handleChange: function() { - var t = this.em; - if (t) { - var e = this.model; - t.trigger("component:update", e); - for (var i in e.changed) t.trigger("component:update:" + i, e) - } - }, - importClasses: function() { - var t = this.config.em.get("SelectorManager"); - t && this.model.get("classes").each(function(e) { - t.add(e.get("name")) - }) - }, - updateState: function(t) { - var e = "hc-state"; - this.model.get("state") ? this.$el.addClass(e) : this.$el.removeClass(e) - }, - updateStatus: function(t) { - var e = this.el, - i = this.model.get("status"), - n = this.pfx, - r = this.ppfx, - s = n + "selected", - o = s + "-parent", - a = r + "freezed", - l = e.getAttribute("class") || "", - c = ""; - switch (i) { - case "selected": - c = l + " " + s; - break; - case "selected-parent": - c = l + " " + o; - break; - case "freezed": - c = l + " " + a; - break; - default: - this.$el.removeClass(s + " " + o + " " + a) - }(c = c.trim()) && e.setAttribute("class", c) - }, - getClasses: function() { - var t = this.model.get("attributes"), - e = t.class || []; - return e.length ? e.join(" ") : null - }, - updateAttributes: function() { - var t = this.model, - e = {}, - i = t.get("attributes"); - for (var n in i) i.hasOwnProperty(n) && (e[n] = i[n]); - t.get("src") && (e.src = t.get("src")), t.get("highlightable") && (e["data-highlightable"] = 1); - var r = this.getStyleString(); - r && (e.style = r), this.$el.attr(e) - }, - updateStyle: function() { - this.$el.attr("style", this.getStyleString()) - }, - getStyleString: function() { - var t = ""; - this.style = this.model.get("style"); - for (var e in this.style) this.style.hasOwnProperty(e) && (t += e + ":" + this.style[e] + ";"); - return t - }, - updateClasses: function() { - var t = ""; - this.model.get("classes").each(function(e) { - t += e.get("name") + " " - }), t = t.trim(), t ? this.$el.attr("class", t) : this.$el.removeAttr("class"), this.updateStatus() - }, - eventCall: function(t) { - t.viewResponse = this - }, - initResize: function() { - var t, i = this.opts.config.em, - n = i ? i.get("Editor") : "", - r = i ? i.get("Config") : "", - s = r.stylePrefix || "", - o = "data-" + s + "handler", - a = s + "resizing", - l = this.model, - c = function(t, e, i) { - var n = (e.target.getAttribute(o), a); - i.docs && i.docs.find("body")[t](n) - }; - n && this.model.get("resizable") && n.runCommand("resize", { - el: this.el, - options: { - onStart: function(e, n) { - c("addClass", e, n), t = i.get("StyleManager").getModelToStyle(l) - }, - onMove: function() { - n.trigger("change:canvasOffset") - }, - onEnd: function(t, e) { - c("removeClass", t, e), n.trigger("change:canvasOffset") - }, - updateTarget: function(n, r, s) { - if (t) { - var o = e.clone(t.get("style")), - a = r.w + (s ? 1 : 0); - if (o.width = a + "px", o.height = r.h + "px", t.set("style", o, { - avoidStore: 1 - }), i.trigger("targetStyleUpdated"), s) { - var l = e.clone(o); - l.width = a - 1 + "px", t.set("style", l) - } - } - } - } - }) - }, - prevDef: function(t) { - t.preventDefault() - }, - updateScript: function() { - if (this.model.get("script")) { - var t = this.em; - if (t) { - t.get("Canvas").getCanvasView().updateScript(this) - } - } - }, - getChildrenContainer: function() { - var t = this.el; - return "function" == typeof this.getChildrenSelector ? t = this.el.querySelector(this.getChildrenSelector()) : this.getTemplate, t - }, - renderChildren: function() { - var t = new r({ - collection: this.model.get("components"), - config: this.config, - defaultTypes: this.opts.defaultTypes, - componentTypes: this.opts.componentTypes - }), - e = this.getChildrenContainer(), - i = t.render($(e)).el.childNodes; - i = Array.prototype.slice.call(i); - for (var n = 0, s = i.length; n < s; n++) e.appendChild(i.shift()); - if (e !== this.el) { - ! function t(i) { - Array.prototype.slice.call(i.children).forEach(function(i) { - i.style["pointer-events"] = "none", e !== i && t(i) - }) - }(this.el) - } - }, - renderAttributes: function() { - this.updateAttributes(), this.updateClasses() - }, - render: function() { - this.renderAttributes(); - var t = this.model; - return this.getChildrenContainer().innerHTML = t.get("content"), this.renderChildren(), this.updateScript(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
\n input-holder\'>\n
\n
'), - templateLabel: e.template('\n
\n \n <%= label %>\n \n \n
'), - events: { - change: "valueUpdated" - }, - initialize: function(t) { - this.config = t.config || {}, this.em = this.config.em, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.target = t.target || {}, this.propTarget = t.propTarget || {}, this.onChange = t.onChange || {}, this.onInputRender = t.onInputRender || {}, this.customValue = t.customValue || {}, this.defaultValue = this.model.get("defaults"), this.property = this.model.get("property"), this.input = this.$input = null; - var e = this.pfx; - this.className = e + "property", this.inputHolderId = "#" + e + "input-holder", this.sector = this.model.collection && this.model.collection.sector, this.model.get("value") || this.model.set("value", this.model.get("defaults")), this.listenTo(this.propTarget, "update", this.targetUpdated), this.listenTo(this.model, "destroy remove", this.remove), this.listenTo(this.model, "change:value", this.valueChanged), this.listenTo(this.model, "targetUpdated", this.targetUpdated), this.listenTo(this.model, "change:visible", this.updateVisibility), this.listenTo(this.model, "change:status", this.updateStatus), this.events["click ." + e + "clear"] = "clear", this.delegateEvents() - }, - updateStatus: function() { - var t = this.model.get("status"), - e = this.pfx, - i = this.ppfx, - n = this.config, - r = i + "active-color", - s = i + "warn-color", - o = this.$el.find("> ." + e + "label"), - a = this.getClearEl().style; - switch (o.removeClass(r + " " + s), a.display = "none", t) { - case "updated": - o.addClass(r), n.clearProperties && (a.display = "inline"); - break; - case "computed": - o.addClass(s) - } - }, - clear: function() { - this.getTargetModel().removeStyle(this.model.get("property")), this.targetUpdated() - }, - getClearEl: function() { - return this.el.querySelector("." + this.pfx + "clear") - }, - getTarget: function() { - return this.propTarget && this.propTarget.model - }, - getTargetModel: function() { - return this.propTarget && this.propTarget.model - }, - getHelperModel: function() { - return this.propTarget && this.propTarget.helper - }, - valueUpdated: function() { - this.model.set("value", this.getInputValue()), this.elementUpdated() - }, - elementUpdated: function() { - this.model.set("status", "updated") - }, - targetUpdated: function() { - if (this.checkVisibility()) { - var t = "", - e = "", - i = this.getTargetValue({ - ignoreDefault: 1 - }), - n = this.getDefaultValue(), - r = this.getComputedValue(), - s = this.config, - o = s.em, - a = this.model; - i ? (t = i, s.highlightChanged && (e = "updated")) : r && s.showComputed && r != n ? (t = r, s.highlightComputed && (e = "computed")) : (t = n, e = ""), this.setValue(t, 1), this.model.set("status", e), o && (o.trigger("styleManager:change", this), o.trigger("styleManager:change:" + a.get("property"), this)) - } - }, - checkVisibility: function() { - var t = 1; - return this.config.hideNotStylable && (this.isTargetStylable() && this.isComponentStylable() ? this.show() : (this.hide(), t = 0), this.sector && this.sector.trigger("updateVisibility")), t - }, - sameValue: function() { - return this.getComponentValue() == this.getValueForTarget() - }, - getComponentValue: function() { - var t = this.model, - e = this.getTargetModel(); - if (e) { - var i = e.get("style")[this.property]; - if (this.componentValue = i || this.defaultValue + (this.unit || ""), t.get("functionName")) { - var n = this.fetchFromFunction(this.componentValue); - n && (this.componentValue = n) - } - if (this.customValue && "function" == typeof this.customValue) { - var r = t.collection.indexOf(t), - s = this.customValue(this, r); - s && (this.componentValue = s) - } - return this.componentValue - } - }, - getTargetValue: function() { - var t, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - i = this.model, - n = this.getTargetModel(), - r = this.customValue; - if (!n) return t; - if (t = n.getStyle()[i.get("property")], t || e.ignoreDefault || (t = this.getDefaultValue()), "function" == typeof r && !e.ignoreCustomValue) { - var s = i.collection.indexOf(i), - o = r(this, s); - o && (t = o) - } - return t - }, - getDefaultValue: function() { - return this.model.get("defaults") - }, - getComputedValue: function() { - var t = this.propTarget.computed, - e = this.config.validComputed, - i = this.model.get("property"); - return t && e.indexOf(i) >= 0 && t[i] - }, - fetchFromFunction: function(t) { - return t.substring(t.indexOf("(") + 1, t.lastIndexOf(")")) - }, - tryFetchFromFunction: function(t) { - if (!this.model.get("functionName")) return t; - var e = t + "", - i = e.indexOf("(") + 1, - n = e.lastIndexOf(")"); - return e.substring(i, n) - }, - getValueForTarget: function() { - return this.model.get("value") - }, - getInputValue: function() { - return this.$input ? this.$input.val() : "" - }, - valueChanged: function(t, e, i) { - var n = this.getValueForTarget(), - r = this.config.em, - s = this.model; - if (this.$input && this.setValue(n), this.getTarget() && this.isTargetStylable() && this.isComponentStylable()) { - var o = this.getValueForTarget(), - a = s.get("functionName"); - a && (o = a + "(" + o + ")"); - var l = this.getTarget(), - c = this.onChange; - c && "function" == typeof c ? c(l, this, i) : this.updateTargetStyle(o, null, i), r && (r.trigger("component:update", s), r.trigger("component:styleUpdate", s), r.trigger("component:styleUpdate:" + s.get("property"), s)) - } - }, - updateTargetStyle: function(t, i, n) { - var r = i || this.property, - s = t || "", - o = n ? n.avoidStore : 0, - a = this.getTarget(), - l = e.clone(a.get("style")); - s ? l[r] = s : delete l[r], a.set("style", l, { - avoidStore: o - }); - var c = this.getHelperModel(); - c && c.setStyle(l, { - avoidStore: o - }) - }, - isTargetStylable: function() { - var t = this.getTarget().get("stylable"); - return t instanceof Array && (t = e.indexOf(t, this.property) >= 0), t - }, - isComponentStylable: function() { - var t = this.em, - i = t && t.get("selectedComponent"); - if (!i) return !0; - var n = i.get("stylable"); - return n instanceof Array && (n = e.indexOf(n, this.property) >= 0), n - }, - setValue: function(t, e) { - var i = 0 === e ? 0 : 1, - n = this.model.get("defaults"), - r = this.model.get("value") || n; - (t || i) && (r = t), this.$input && this.$input.val(r), this.model.set({ - value: r - }, { - silent: !0 - }) - }, - updateVisibility: function() { - this.el.style.display = this.model.get("visible") ? "block" : "none" - }, - show: function() { - this.model.set("visible", 1) - }, - hide: function() { - this.model.set("visible", 0) - }, - renderLabel: function() { - var t = this.model; - this.$el.html(this.templateLabel({ - pfx: this.pfx, - ppfx: this.ppfx, - icon: t.get("icon"), - info: t.get("info"), - label: t.get("name") - })) - }, - renderField: function() { - this.renderTemplate(), this.renderInput(), delete this.componentValue - }, - renderTemplate: function() { - this.$el.append(this.template({ - pfx: this.pfx, - ppfx: this.ppfx, - icon: this.model.get("icon"), - info: this.model.get("info"), - label: this.model.get("name") - })) - }, - renderInput: function() { - this.$input || (this.$input = $("", { - placeholder: this.model.get("defaults"), - type: "text" - }), this.$el.find(this.inputHolderId).html(this.$input)), this.setValue(this.componentValue, 0) - }, - renderInputRequest: function() { - this.renderInput() - }, - cleanValue: function() { - this.setValue("") - }, - render: function() { - return this.renderLabel(), this.renderField(), this.$el.attr("class", this.className), this.updateStatus(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - ! function(e, i) { - t.exports = i() - }(0, function() { - "use strict"; - - function t(t) { - return new RegExp("(^|\\s)" + t + "(?:$|\\s)\\s*") - } - - function e(t) { - for (var e = t.childNodes.length; e > 0; --e) t.removeChild(t.firstChild); - return t - } - - function i(t, i) { - return e(t).appendChild(i) - } - - function n(t, e, i, n) { - var r = document.createElement(t); - if (i && (r.className = i), n && (r.style.cssText = n), "string" == typeof e) r.appendChild(document.createTextNode(e)); - else if (e) - for (var s = 0; s < e.length; ++s) r.appendChild(e[s]); - return r - } - - function r(t, e) { - if (3 == e.nodeType && (e = e.parentNode), t.contains) return t.contains(e); - do { - if (11 == e.nodeType && (e = e.host), e == t) return !0 - } while (e = e.parentNode) - } - - function s() { - var t; - try { - t = document.activeElement - } catch (e) { - t = document.body || null - } - for (; t && t.root && t.root.activeElement;) t = t.root.activeElement; - return t - } - - function o(e, i) { - var n = e.className; - t(i).test(n) || (e.className += (n ? " " : "") + i) - } - - function a(e, i) { - for (var n = e.split(" "), r = 0; r < n.length; r++) n[r] && !t(n[r]).test(i) && (i += " " + n[r]); - return i - } - - function l(t) { - var e = Array.prototype.slice.call(arguments, 1); - return function() { - return t.apply(null, e) - } - } - - function c(t, e, i) { - e || (e = {}); - for (var n in t) !t.hasOwnProperty(n) || !1 === i && e.hasOwnProperty(n) || (e[n] = t[n]); - return e - } - - function u(t, e, i, n, r) { - null == e && -1 == (e = t.search(/[^\s\u00a0]/)) && (e = t.length); - for (var s = n || 0, o = r || 0;;) { - var a = t.indexOf("\t", s); - if (a < 0 || a >= e) return o + (e - s); - o += a - s, o += i - o % i, s = a + 1 - } - } - - function h() { - this.id = null - } - - function d(t, e) { - for (var i = 0; i < t.length; ++i) - if (t[i] == e) return i; - return -1 - } - - function f(t, e, i) { - for (var n = 0, r = 0;;) { - var s = t.indexOf("\t", n); - 1 == s && (s = t.length); - var o = s - n; - if (s == t.length || r + o >= e) return n + Math.min(o, e - r); - if (r += s - n, r += i - r % i, n = s + 1, r >= e) return n - } - } - - function p(t) { - for (; Ao.length <= t;) Ao.push(g(Ao) + " "); - return Ao[t] - } - - function g(t) { - return t[t.length - 1] - } - - function m(t, e) { - for (var i = [], n = 0; n < t.length; n++) i[n] = e(t[n], n); - return i - } - - function v(t, e, i) { - for (var n = 0, r = i(e); n < t.length && i(t[n]) <= r;) n++; - t.splice(n, 0, e) - } - - function y() {} - - function b(t, e) { - var i; - return Object.create ? i = Object.create(t) : (y.prototype = t, i = new y), e && c(e, i), i - } - - function x(t) { - return /\w/.test(t) || t > "€" && (t.toUpperCase() != t.toLowerCase() || No.test(t)) - } - - function w(t, e) { - return e ? !!(e.source.indexOf("\\w") > -1 && x(t)) || e.test(t) : x(t) - } - - function C(t) { - for (var e in t) - if (t.hasOwnProperty(e) && t[e]) return !1; - return !0 - } - - function k(t) { - return t.charCodeAt(0) >= 768 && Oo.test(t) - } - - function S(t, e, i) { - var r = this; - this.input = i, r.scrollbarFiller = n("div", null, "CodeMirror-scrollbar-filler"), r.scrollbarFiller.setAttribute("cm-not-content", "true"), r.gutterFiller = n("div", null, "CodeMirror-gutter-filler"), r.gutterFiller.setAttribute("cm-not-content", "true"), r.lineDiv = n("div", null, "CodeMirror-code"), r.selectionDiv = n("div", null, null, "position: relative; z-index: 1"), r.cursorDiv = n("div", null, "CodeMirror-cursors"), r.measure = n("div", null, "CodeMirror-measure"), r.lineMeasure = n("div", null, "CodeMirror-measure"), r.lineSpace = n("div", [r.measure, r.lineMeasure, r.selectionDiv, r.cursorDiv, r.lineDiv], null, "position: relative; outline: none"), r.mover = n("div", [n("div", [r.lineSpace], "CodeMirror-lines")], null, "position: relative"), r.sizer = n("div", [r.mover], "CodeMirror-sizer"), r.sizerWidth = null, r.heightForcer = n("div", null, null, "position: absolute; height: " + Mo + "px; width: 1px;"), r.gutters = n("div", null, "CodeMirror-gutters"), r.lineGutter = null, r.scroller = n("div", [r.sizer, r.heightForcer, r.gutters], "CodeMirror-scroll"), r.scroller.setAttribute("tabIndex", "-1"), r.wrapper = n("div", [r.scrollbarFiller, r.gutterFiller, r.scroller], "CodeMirror"), no && ro < 8 && (r.gutters.style.zIndex = -1, r.scroller.style.paddingRight = 0), so || to && po || (r.scroller.draggable = !0), t && (t.appendChild ? t.appendChild(r.wrapper) : t(r.wrapper)), r.viewFrom = r.viewTo = e.first, r.reportedViewFrom = r.reportedViewTo = e.first, r.view = [], r.renderedView = null, r.externalMeasured = null, r.viewOffset = 0, r.lastWrapHeight = r.lastWrapWidth = 0, r.updateLineNumbers = null, r.nativeBarWidth = r.barHeight = r.barWidth = 0, r.scrollbarsClipped = !1, r.lineNumWidth = r.lineNumInnerWidth = r.lineNumChars = null, r.alignWidgets = !1, r.cachedCharWidth = r.cachedTextHeight = r.cachedPaddingH = null, r.maxLine = null, r.maxLineLength = 0, r.maxLineChanged = !1, r.wheelDX = r.wheelDY = r.wheelStartX = r.wheelStartY = null, r.shift = !1, r.selForContextMenu = null, r.activeTouch = null, i.init(r) - } - - function T(t, e) { - if ((e -= t.first) < 0 || e >= t.size) throw new Error("There is no line " + (e + t.first) + " in the document."); - for (var i = t; !i.lines;) - for (var n = 0;; ++n) { - var r = i.children[n], - s = r.chunkSize(); - if (e < s) { - i = r; - break - } - e -= s - } - return i.lines[e] - } - - function M(t, e, i) { - var n = [], - r = e.line; - return t.iter(e.line, i.line + 1, function(t) { - var s = t.text; - r == i.line && (s = s.slice(0, i.ch)), r == e.line && (s = s.slice(e.ch)), n.push(s), ++r - }), n - } - - function E(t, e, i) { - var n = []; - return t.iter(e, i, function(t) { - n.push(t.text) - }), n - } - - function P(t, e) { - var i = e - t.height; - if (i) - for (var n = t; n; n = n.parent) n.height += i - } - - function $(t) { - if (null == t.parent) return null; - for (var e = t.parent, i = d(e.lines, t), n = e.parent; n; e = n, n = n.parent) - for (var r = 0; n.children[r] != e; ++r) i += n.children[r].chunkSize(); - return i + e.first - } - - function L(t, e) { - var i = t.first; - t: do { - for (var n = 0; n < t.children.length; ++n) { - var r = t.children[n], - s = r.height; - if (e < s) { - t = r; - continue t - } - e -= s, i += r.chunkSize() - } - return i - } while (!t.lines); - for (var o = 0; o < t.lines.length; ++o) { - var a = t.lines[o], - l = a.height; - if (e < l) break; - e -= l - } - return i + o - } - - function A(t, e) { - return e >= t.first && e < t.first + t.size - } - - function N(t, e) { - return String(t.lineNumberFormatter(e + t.firstLineNumber)) - } - - function O(t, e) { - if (!(this instanceof O)) return new O(t, e); - this.line = t, this.ch = e - } - - function I(t, e) { - return t.line - e.line || t.ch - e.ch - } - - function D(t) { - return O(t.line, t.ch) - } - - function _(t, e) { - return I(t, e) < 0 ? e : t - } - - function z(t, e) { - return I(t, e) < 0 ? t : e - } - - function F(t, e) { - return Math.max(t.first, Math.min(e, t.first + t.size - 1)) - } - - function H(t, e) { - if (e.line < t.first) return O(t.first, 0); - var i = t.first + t.size - 1; - return e.line > i ? O(i, T(t, i).text.length) : R(e, T(t, e.line).text.length) - } - - function R(t, e) { - var i = t.ch; - return null == i || i > e ? O(t.line, e) : i < 0 ? O(t.line, 0) : t - } - - function V(t, e) { - for (var i = [], n = 0; n < e.length; n++) i[n] = H(t, e[n]); - return i - } - - function W() { - Io = !0 - } - - function B() { - Do = !0 - } - - function j(t, e, i) { - this.marker = t, this.from = e, this.to = i - } - - function U(t, e) { - if (t) - for (var i = 0; i < t.length; ++i) { - var n = t[i]; - if (n.marker == e) return n - } - } - - function q(t, e) { - for (var i, n = 0; n < t.length; ++n) t[n] != e && (i || (i = [])).push(t[n]); - return i - } - - function K(t, e) { - t.markedSpans = t.markedSpans ? t.markedSpans.concat([e]) : [e], e.marker.attachLine(t) - } - - function G(t, e, i) { - var n; - if (t) - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = s.marker, - a = null == s.from || (o.inclusiveLeft ? s.from <= e : s.from < e); - if (a || s.from == e && "bookmark" == o.type && (!i || !s.marker.insertLeft)) { - var l = null == s.to || (o.inclusiveRight ? s.to >= e : s.to > e); - (n || (n = [])).push(new j(o, s.from, l ? null : s.to)) - } - } - return n - } - - function Y(t, e, i) { - var n; - if (t) - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = s.marker, - a = null == s.to || (o.inclusiveRight ? s.to >= e : s.to > e); - if (a || s.from == e && "bookmark" == o.type && (!i || s.marker.insertLeft)) { - var l = null == s.from || (o.inclusiveLeft ? s.from <= e : s.from < e); - (n || (n = [])).push(new j(o, l ? null : s.from - e, null == s.to ? null : s.to - e)) - } - } - return n - } - - function X(t, e) { - if (e.full) return null; - var i = A(t, e.from.line) && T(t, e.from.line).markedSpans, - n = A(t, e.to.line) && T(t, e.to.line).markedSpans; - if (!i && !n) return null; - var r = e.from.ch, - s = e.to.ch, - o = 0 == I(e.from, e.to), - a = G(i, r, o), - l = Y(n, s, o), - c = 1 == e.text.length, - u = g(e.text).length + (c ? r : 0); - if (a) - for (var h = 0; h < a.length; ++h) { - var d = a[h]; - if (null == d.to) { - var f = U(l, d.marker); - f ? c && (d.to = null == f.to ? null : f.to + u) : d.to = r - } - } - if (l) - for (var p = 0; p < l.length; ++p) { - var m = l[p]; - if (null != m.to && (m.to += u), null == m.from) { - var v = U(a, m.marker); - v || (m.from = u, c && (a || (a = [])).push(m)) - } else m.from += u, c && (a || (a = [])).push(m) - } - a && (a = J(a)), l && l != a && (l = J(l)); - var y = [a]; - if (!c) { - var b, x = e.text.length - 2; - if (x > 0 && a) - for (var w = 0; w < a.length; ++w) null == a[w].to && (b || (b = [])).push(new j(a[w].marker, null, null)); - for (var C = 0; C < x; ++C) y.push(b); - y.push(l) - } - return y - } - - function J(t) { - for (var e = 0; e < t.length; ++e) { - var i = t[e]; - null != i.from && i.from == i.to && !1 !== i.marker.clearWhenEmpty && t.splice(e--, 1) - } - return t.length ? t : null - } - - function Z(t, e, i) { - var n = null; - if (t.iter(e.line, i.line + 1, function(t) { - if (t.markedSpans) - for (var e = 0; e < t.markedSpans.length; ++e) { - var i = t.markedSpans[e].marker; - !i.readOnly || n && -1 != d(n, i) || (n || (n = [])).push(i) - } - }), !n) return null; - for (var r = [{ - from: e, - to: i - }], s = 0; s < n.length; ++s) - for (var o = n[s], a = o.find(0), l = 0; l < r.length; ++l) { - var c = r[l]; - if (!(I(c.to, a.from) < 0 || I(c.from, a.to) > 0)) { - var u = [l, 1], - h = I(c.from, a.from), - f = I(c.to, a.to); - (h < 0 || !o.inclusiveLeft && !h) && u.push({ - from: c.from, - to: a.from - }), (f > 0 || !o.inclusiveRight && !f) && u.push({ - from: a.to, - to: c.to - }), r.splice.apply(r, u), l += u.length - 1 - } - } - return r - } - - function Q(t) { - var e = t.markedSpans; - if (e) { - for (var i = 0; i < e.length; ++i) e[i].marker.detachLine(t); - t.markedSpans = null - } - } - - function tt(t, e) { - if (e) { - for (var i = 0; i < e.length; ++i) e[i].marker.attachLine(t); - t.markedSpans = e - } - } - - function et(t) { - return t.inclusiveLeft ? -1 : 0 - } - - function it(t) { - return t.inclusiveRight ? 1 : 0 - } - - function nt(t, e) { - var i = t.lines.length - e.lines.length; - if (0 != i) return i; - var n = t.find(), - r = e.find(), - s = I(n.from, r.from) || et(t) - et(e); - if (s) return -s; - var o = I(n.to, r.to) || it(t) - it(e); - return o || e.id - t.id - } - - function rt(t, e) { - var i, n = Do && t.markedSpans; - if (n) - for (var r = void 0, s = 0; s < n.length; ++s) r = n[s], r.marker.collapsed && null == (e ? r.from : r.to) && (!i || nt(i, r.marker) < 0) && (i = r.marker); - return i - } - - function st(t) { - return rt(t, !0) - } - - function ot(t) { - return rt(t, !1) - } - - function at(t, e, i, n, r) { - var s = T(t, e), - o = Do && s.markedSpans; - if (o) - for (var a = 0; a < o.length; ++a) { - var l = o[a]; - if (l.marker.collapsed) { - var c = l.marker.find(0), - u = I(c.from, i) || et(l.marker) - et(r), - h = I(c.to, n) || it(l.marker) - it(r); - if (!(u >= 0 && h <= 0 || u <= 0 && h >= 0) && (u <= 0 && (l.marker.inclusiveRight && r.inclusiveLeft ? I(c.to, i) >= 0 : I(c.to, i) > 0) || u >= 0 && (l.marker.inclusiveRight && r.inclusiveLeft ? I(c.from, n) <= 0 : I(c.from, n) < 0))) return !0 - } - } - } - - function lt(t) { - for (var e; e = st(t);) t = e.find(-1, !0).line; - return t - } - - function ct(t) { - for (var e, i; e = ot(t);) t = e.find(1, !0).line, (i || (i = [])).push(t); - return i - } - - function ut(t, e) { - var i = T(t, e), - n = lt(i); - return i == n ? e : $(n) - } - - function ht(t, e) { - if (e > t.lastLine()) return e; - var i, n = T(t, e); - if (!dt(t, n)) return e; - for (; i = ot(n);) n = i.find(1, !0).line; - return $(n) + 1 - } - - function dt(t, e) { - var i = Do && e.markedSpans; - if (i) - for (var n = void 0, r = 0; r < i.length; ++r) - if (n = i[r], n.marker.collapsed) { - if (null == n.from) return !0; - if (!n.marker.widgetNode && 0 == n.from && n.marker.inclusiveLeft && ft(t, e, n)) return !0 - } - } - - function ft(t, e, i) { - if (null == i.to) { - var n = i.marker.find(1, !0); - return ft(t, n.line, U(n.line.markedSpans, i.marker)) - } - if (i.marker.inclusiveRight && i.to == e.text.length) return !0; - for (var r = void 0, s = 0; s < e.markedSpans.length; ++s) - if (r = e.markedSpans[s], r.marker.collapsed && !r.marker.widgetNode && r.from == i.to && (null == r.to || r.to != i.from) && (r.marker.inclusiveLeft || i.marker.inclusiveRight) && ft(t, e, r)) return !0 - } - - function pt(t) { - t = lt(t); - for (var e = 0, i = t.parent, n = 0; n < i.lines.length; ++n) { - var r = i.lines[n]; - if (r == t) break; - e += r.height - } - for (var s = i.parent; s; i = s, s = i.parent) - for (var o = 0; o < s.children.length; ++o) { - var a = s.children[o]; - if (a == i) break; - e += a.height - } - return e - } - - function gt(t) { - if (0 == t.height) return 0; - for (var e, i = t.text.length, n = t; e = st(n);) { - var r = e.find(0, !0); - n = r.from.line, i += r.from.ch - r.to.ch - } - for (n = t; e = ot(n);) { - var s = e.find(0, !0); - i -= n.text.length - s.from.ch, n = s.to.line, i += n.text.length - s.to.ch - } - return i - } - - function mt(t) { - var e = t.display, - i = t.doc; - e.maxLine = T(i, i.first), e.maxLineLength = gt(e.maxLine), e.maxLineChanged = !0, i.iter(function(t) { - var i = gt(t); - i > e.maxLineLength && (e.maxLineLength = i, e.maxLine = t) - }) - } - - function vt(t, e, i, n) { - if (!t) return n(e, i, "ltr"); - for (var r = !1, s = 0; s < t.length; ++s) { - var o = t[s]; - (o.from < i && o.to > e || e == i && o.to == e) && (n(Math.max(o.from, e), Math.min(o.to, i), 1 == o.level ? "rtl" : "ltr"), r = !0) - } - r || n(e, i, "ltr") - } - - function yt(t) { - return t.level % 2 ? t.to : t.from - } - - function bt(t) { - return t.level % 2 ? t.from : t.to - } - - function xt(t) { - var e = Et(t); - return e ? yt(e[0]) : 0 - } - - function wt(t) { - var e = Et(t); - return e ? bt(g(e)) : t.text.length - } - - function Ct(t, e, i) { - var n = t[0].level; - return e == n || i != n && e < i - } - - function kt(t, e) { - var i; - _o = null; - for (var n = 0; n < t.length; ++n) { - var r = t[n]; - if (r.from < e && r.to > e) return n; - if (r.from == e || r.to == e) { - if (null != i) return Ct(t, r.level, t[i].level) ? (r.from != r.to && (_o = i), n) : (r.from != r.to && (_o = n), i); - i = n - } - } - return i - } - - function St(t, e, i, n) { - if (!n) return e + i; - do { - e += i - } while (e > 0 && k(t.text.charAt(e))); - return e - } - - function Tt(t, e, i, n) { - var r = Et(t); - if (!r) return Mt(t, e, i, n); - for (var s = kt(r, e), o = r[s], a = St(t, e, o.level % 2 ? -i : i, n);;) { - if (a > o.from && a < o.to) return a; - if (a == o.from || a == o.to) return kt(r, a) == s ? a : (o = r[s += i], i > 0 == o.level % 2 ? o.to : o.from); - if (!(o = r[s += i])) return null; - a = i > 0 == o.level % 2 ? St(t, o.to, -1, n) : St(t, o.from, 1, n) - } - } - - function Mt(t, e, i, n) { - var r = e + i; - if (n) - for (; r > 0 && k(t.text.charAt(r));) r += i; - return r < 0 || r > t.text.length ? null : r - } - - function Et(t) { - var e = t.order; - return null == e && (e = t.order = zo(t.text)), e - } - - function Pt(t, e) { - return t._handlers && t._handlers[e] || Fo - } - - function $t(t, e, i) { - if (t.removeEventListener) t.removeEventListener(e, i, !1); - else if (t.detachEvent) t.detachEvent("on" + e, i); - else { - var n = t._handlers, - r = n && n[e]; - if (r) { - var s = d(r, i); - s > -1 && (n[e] = r.slice(0, s).concat(r.slice(s + 1))) - } - } - } - - function Lt(t, e) { - var i = Pt(t, e); - if (i.length) - for (var n = Array.prototype.slice.call(arguments, 2), r = 0; r < i.length; ++r) i[r].apply(null, n) - } - - function At(t, e, i) { - return "string" == typeof e && (e = { - type: e, - preventDefault: function() { - this.defaultPrevented = !0 - } - }), Lt(t, i || e.type, t, e), zt(e) || e.codemirrorIgnore - } - - function Nt(t) { - var e = t._handlers && t._handlers.cursorActivity; - if (e) - for (var i = t.curOp.cursorActivityHandlers || (t.curOp.cursorActivityHandlers = []), n = 0; n < e.length; ++n) - 1 == d(i, e[n]) && i.push(e[n]) - } - - function Ot(t, e) { - return Pt(t, e).length > 0 - } - - function It(t) { - t.prototype.on = function(t, e) { - Ho(this, t, e) - }, t.prototype.off = function(t, e) { - $t(this, t, e) - } - } - - function Dt(t) { - t.preventDefault ? t.preventDefault() : t.returnValue = !1 - } - - function _t(t) { - t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0 - } - - function zt(t) { - return null != t.defaultPrevented ? t.defaultPrevented : 0 == t.returnValue - } - - function Ft(t) { - Dt(t), _t(t) - } - - function Ht(t) { - return t.target || t.srcElement - } - - function Rt(t) { - var e = t.which; - return null == e && (1 & t.button ? e = 1 : 2 & t.button ? e = 3 : 4 & t.button && (e = 2)), go && t.ctrlKey && 1 == e && (e = 3), e - } - - function Vt(t) { - if (null == So) { - var e = n("span", "​"); - i(t, n("span", [e, document.createTextNode("x")])), 0 != t.firstChild.offsetHeight && (So = e.offsetWidth <= 1 && e.offsetHeight > 2 && !(no && ro < 8)) - } - var r = So ? n("span", "​") : n("span", " ", null, "display: inline-block; width: 1px; margin-right: -1px"); - return r.setAttribute("cm-text", ""), r - } - - function Wt(t) { - if (null != To) return To; - var n = i(t, document.createTextNode("AخA")), - r = bo(n, 0, 1).getBoundingClientRect(), - s = bo(n, 1, 2).getBoundingClientRect(); - return e(t), !(!r || r.left == r.right) && (To = s.right - r.right < 3) - } - - function Bt(t) { - if (null != jo) return jo; - var e = i(t, n("span", "x")), - r = e.getBoundingClientRect(), - s = bo(e, 0, 1).getBoundingClientRect(); - return jo = Math.abs(r.left - s.left) > 1 - } - - function jt(t, e) { - arguments.length > 2 && (e.dependencies = Array.prototype.slice.call(arguments, 2)), Uo[t] = e - } - - function Ut(t, e) { - qo[t] = e - } - - function qt(t) { - if ("string" == typeof t && qo.hasOwnProperty(t)) t = qo[t]; - else if (t && "string" == typeof t.name && qo.hasOwnProperty(t.name)) { - var e = qo[t.name]; - "string" == typeof e && (e = { - name: e - }), t = b(e, t), t.name = e.name - } else { - if ("string" == typeof t && /^[\w\-]+\/[\w\-]+\+xml$/.test(t)) return qt("application/xml"); - if ("string" == typeof t && /^[\w\-]+\/[\w\-]+\+json$/.test(t)) return qt("application/json") - } - return "string" == typeof t ? { - name: t - } : t || { - name: "null" - } - } - - function Kt(t, e) { - e = qt(e); - var i = Uo[e.name]; - if (!i) return Kt(t, "text/plain"); - var n = i(t, e); - if (Ko.hasOwnProperty(e.name)) { - var r = Ko[e.name]; - for (var s in r) r.hasOwnProperty(s) && (n.hasOwnProperty(s) && (n["_" + s] = n[s]), n[s] = r[s]) - } - if (n.name = e.name, e.helperType && (n.helperType = e.helperType), e.modeProps) - for (var o in e.modeProps) n[o] = e.modeProps[o]; - return n - } - - function Gt(t, e) { - c(e, Ko.hasOwnProperty(t) ? Ko[t] : Ko[t] = {}) - } - - function Yt(t, e) { - if (!0 === e) return e; - if (t.copyState) return t.copyState(e); - var i = {}; - for (var n in e) { - var r = e[n]; - r instanceof Array && (r = r.concat([])), i[n] = r - } - return i - } - - function Xt(t, e) { - for (var i; t.innerMode && (i = t.innerMode(e)) && i.mode != t;) e = i.state, t = i.mode; - return i || { - mode: t, - state: e - } - } - - function Jt(t, e, i) { - return !t.startState || t.startState(e, i) - } - - function Zt(t, e, i, n) { - var r = [t.state.modeGen], - s = {}; - oe(t, e.text, t.doc.mode, i, function(t, e) { - return r.push(t, e) - }, s, n); - for (var o = 0; o < t.state.overlays.length; ++o) ! function(i) { - var n = t.state.overlays[i], - o = 1, - a = 0; - oe(t, e.text, n.mode, !0, function(t, e) { - for (var i = o; a < t;) { - var s = r[o]; - s > t && r.splice(o, 1, t, r[o + 1], s), o += 2, a = Math.min(t, s) - } - if (e) - if (n.opaque) r.splice(i, o - i, t, "overlay " + e), o = i + 2; - else - for (; i < o; i += 2) { - var l = r[i + 1]; - r[i + 1] = (l ? l + " " : "") + "overlay " + e - } - }, s) - }(o); - return { - styles: r, - classes: s.bgClass || s.textClass ? s : null - } - } - - function Qt(t, e, i) { - if (!e.styles || e.styles[0] != t.state.modeGen) { - var n = te(t, $(e)), - r = Zt(t, e, e.text.length > t.options.maxHighlightLength ? Yt(t.doc.mode, n) : n); - e.stateAfter = n, e.styles = r.styles, r.classes ? e.styleClasses = r.classes : e.styleClasses && (e.styleClasses = null), i === t.doc.frontier && t.doc.frontier++ - } - return e.styles - } - - function te(t, e, i) { - var n = t.doc, - r = t.display; - if (!n.mode.startState) return !0; - var s = ae(t, e, i), - o = s > n.first && T(n, s - 1).stateAfter; - return o = o ? Yt(n.mode, o) : Jt(n.mode), n.iter(s, e, function(i) { - ee(t, i.text, o); - var a = s == e - 1 || s % 5 == 0 || s >= r.viewFrom && s < r.viewTo; - i.stateAfter = a ? Yt(n.mode, o) : null, ++s - }), i && (n.frontier = s), o - } - - function ee(t, e, i, n) { - var r = t.doc.mode, - s = new Go(e, t.options.tabSize); - for (s.start = s.pos = n || 0, "" == e && ie(r, i); !s.eol();) ne(r, s, i), s.start = s.pos - } - - function ie(t, e) { - if (t.blankLine) return t.blankLine(e); - if (t.innerMode) { - var i = Xt(t, e); - return i.mode.blankLine ? i.mode.blankLine(i.state) : void 0 - } - } - - function ne(t, e, i, n) { - for (var r = 0; r < 10; r++) { - n && (n[0] = Xt(t, i).mode); - var s = t.token(e, i); - if (e.pos > e.start) return s - } - throw new Error("Mode " + t.name + " failed to advance stream.") - } - - function re(t, e, i, n) { - var r, s = function(t) { - return { - start: h.start, - end: h.pos, - string: h.current(), - type: r || null, - state: t ? Yt(o.mode, u) : u - } - }, - o = t.doc, - a = o.mode; - e = H(o, e); - var l, c = T(o, e.line), - u = te(t, e.line, i), - h = new Go(c.text, t.options.tabSize); - for (n && (l = []); - (n || h.pos < e.ch) && !h.eol();) h.start = h.pos, r = ne(a, h, u), n && l.push(s(!0)); - return n ? l : s() - } - - function se(t, e) { - if (t) - for (;;) { - var i = t.match(/(?:^|\s+)line-(background-)?(\S+)/); - if (!i) break; - t = t.slice(0, i.index) + t.slice(i.index + i[0].length); - var n = i[1] ? "bgClass" : "textClass"; - null == e[n] ? e[n] = i[2] : new RegExp("(?:^|s)" + i[2] + "(?:$|s)").test(e[n]) || (e[n] += " " + i[2]) - } - return t - } - - function oe(t, e, i, n, r, s, o) { - var a = i.flattenSpans; - null == a && (a = t.options.flattenSpans); - var l, c = 0, - u = null, - h = new Go(e, t.options.tabSize), - d = t.options.addModeClass && [null]; - for ("" == e && se(ie(i, n), s); !h.eol();) { - if (h.pos > t.options.maxHighlightLength ? (a = !1, o && ee(t, e, n, h.pos), h.pos = e.length, l = null) : l = se(ne(i, h, n, d), s), d) { - var f = d[0].name; - f && (l = "m-" + (l ? f + " " + l : f)) - } - if (!a || u != l) { - for (; c < h.start;) c = Math.min(h.start, c + 5e3), r(c, u); - u = l - } - h.start = h.pos - } - for (; c < h.pos;) { - var p = Math.min(h.pos, c + 5e3); - r(p, u), c = p - } - } - - function ae(t, e, i) { - for (var n, r, s = t.doc, o = i ? -1 : e - (t.doc.mode.innerMode ? 1e3 : 100), a = e; a > o; --a) { - if (a <= s.first) return s.first; - var l = T(s, a - 1); - if (l.stateAfter && (!i || a <= s.frontier)) return a; - var c = u(l.text, null, t.options.tabSize); - (null == r || n > c) && (r = a - 1, n = c) - } - return r - } - - function le(t, e, i) { - this.text = t, tt(this, e), this.height = i ? i(this) : 1 - } - - function ce(t, e, i, n) { - t.text = e, t.stateAfter && (t.stateAfter = null), t.styles && (t.styles = null), null != t.order && (t.order = null), Q(t), tt(t, i); - var r = n ? n(t) : 1; - r != t.height && P(t, r) - } - - function ue(t) { - t.parent = null, Q(t) - } - - function he(t, e) { - if (!t || /^\s*$/.test(t)) return null; - var i = e.addModeClass ? Jo : Xo; - return i[t] || (i[t] = t.replace(/\S+/g, "cm-$&")) - } - - function de(t, e) { - var i = n("span", null, null, so ? "padding-right: .1px" : null), - r = { - pre: n("pre", [i], "CodeMirror-line"), - content: i, - col: 0, - pos: 0, - cm: t, - trailingSpace: !1, - splitSpaces: (no || so) && t.getOption("lineWrapping") - }; - e.measure = {}; - for (var s = 0; s <= (e.rest ? e.rest.length : 0); s++) { - var o = s ? e.rest[s - 1] : e.line, - l = void 0; - r.pos = 0, r.addToken = pe, Wt(t.display.measure) && (l = Et(o)) && (r.addToken = me(r.addToken, l)), r.map = []; - ye(o, r, Qt(t, o, e != t.display.externalMeasured && $(o))), o.styleClasses && (o.styleClasses.bgClass && (r.bgClass = a(o.styleClasses.bgClass, r.bgClass || "")), o.styleClasses.textClass && (r.textClass = a(o.styleClasses.textClass, r.textClass || ""))), 0 == r.map.length && r.map.push(0, 0, r.content.appendChild(Vt(t.display.measure))), 0 == s ? (e.measure.map = r.map, e.measure.cache = {}) : ((e.measure.maps || (e.measure.maps = [])).push(r.map), (e.measure.caches || (e.measure.caches = [])).push({})) - } - if (so) { - var c = r.content.lastChild; - (/\bcm-tab\b/.test(c.className) || c.querySelector && c.querySelector(".cm-tab")) && (r.content.className = "cm-tab-wrap-hack") - } - return Lt(t, "renderLine", t, e.line, r.pre), r.pre.className && (r.textClass = a(r.pre.className, r.textClass || "")), r - } - - function fe(t) { - var e = n("span", "•", "cm-invalidchar"); - return e.title = "\\u" + t.charCodeAt(0).toString(16), e.setAttribute("aria-label", e.title), e - } - - function pe(t, e, i, r, s, o, a) { - if (e) { - var l, c = t.splitSpaces ? ge(e, t.trailingSpace) : e, - u = t.cm.state.specialChars, - h = !1; - if (u.test(e)) { - l = document.createDocumentFragment(); - for (var d = 0;;) { - u.lastIndex = d; - var f = u.exec(e), - g = f ? f.index - d : e.length - d; - if (g) { - var m = document.createTextNode(c.slice(d, d + g)); - no && ro < 9 ? l.appendChild(n("span", [m])) : l.appendChild(m), t.map.push(t.pos, t.pos + g, m), t.col += g, t.pos += g - } - if (!f) break; - d += g + 1; - var v = void 0; - if ("\t" == f[0]) { - var y = t.cm.options.tabSize, - b = y - t.col % y; - v = l.appendChild(n("span", p(b), "cm-tab")), v.setAttribute("role", "presentation"), v.setAttribute("cm-text", "\t"), t.col += b - } else "\r" == f[0] || "\n" == f[0] ? (v = l.appendChild(n("span", "\r" == f[0] ? "␍" : "␤", "cm-invalidchar")), v.setAttribute("cm-text", f[0]), t.col += 1) : (v = t.cm.options.specialCharPlaceholder(f[0]), v.setAttribute("cm-text", f[0]), no && ro < 9 ? l.appendChild(n("span", [v])) : l.appendChild(v), t.col += 1); - t.map.push(t.pos, t.pos + 1, v), t.pos++ - } - } else t.col += e.length, l = document.createTextNode(c), t.map.push(t.pos, t.pos + e.length, l), no && ro < 9 && (h = !0), t.pos += e.length; - if (t.trailingSpace = 32 == c.charCodeAt(e.length - 1), i || r || s || h || a) { - var x = i || ""; - r && (x += r), s && (x += s); - var w = n("span", [l], x, a); - return o && (w.title = o), t.content.appendChild(w) - } - t.content.appendChild(l) - } - } - - function ge(t, e) { - if (t.length > 1 && !/ /.test(t)) return t; - for (var i = e, n = "", r = 0; r < t.length; r++) { - var s = t.charAt(r); - " " != s || !i || r != t.length - 1 && 32 != t.charCodeAt(r + 1) || (s = " "), n += s, i = " " == s - } - return n - } - - function me(t, e) { - return function(i, n, r, s, o, a, l) { - r = r ? r + " cm-force-border" : "cm-force-border"; - for (var c = i.pos, u = c + n.length;;) { - for (var h = void 0, d = 0; d < e.length && (h = e[d], !(h.to > c && h.from <= c)); d++); - if (h.to >= u) return t(i, n, r, s, o, a, l); - t(i, n.slice(0, h.to - c), r, s, null, a, l), s = null, n = n.slice(h.to - c), c = h.to - } - } - } - - function ve(t, e, i, n) { - var r = !n && i.widgetNode; - r && t.map.push(t.pos, t.pos + e, r), !n && t.cm.display.input.needsContentAttribute && (r || (r = t.content.appendChild(document.createElement("span"))), r.setAttribute("cm-marker", i.id)), r && (t.cm.display.input.setUneditable(r), t.content.appendChild(r)), t.pos += e, t.trailingSpace = !1 - } - - function ye(t, e, i) { - var n = t.markedSpans, - r = t.text, - s = 0; - if (n) - for (var o, a, l, c, u, h, d, f = r.length, p = 0, g = 1, m = "", v = 0;;) { - if (v == p) { - l = c = u = h = a = "", d = null, v = 1 / 0; - for (var y = [], b = void 0, x = 0; x < n.length; ++x) { - var w = n[x], - C = w.marker; - "bookmark" == C.type && w.from == p && C.widgetNode ? y.push(C) : w.from <= p && (null == w.to || w.to > p || C.collapsed && w.to == p && w.from == p) ? (null != w.to && w.to != p && v > w.to && (v = w.to, c = ""), C.className && (l += " " + C.className), C.css && (a = (a ? a + ";" : "") + C.css), C.startStyle && w.from == p && (u += " " + C.startStyle), C.endStyle && w.to == v && (b || (b = [])).push(C.endStyle, w.to), C.title && !h && (h = C.title), C.collapsed && (!d || nt(d.marker, C) < 0) && (d = w)) : w.from > p && v > w.from && (v = w.from) - } - if (b) - for (var k = 0; k < b.length; k += 2) b[k + 1] == v && (c += " " + b[k]); - if (!d || d.from == p) - for (var S = 0; S < y.length; ++S) ve(e, 0, y[S]); - if (d && (d.from || 0) == p) { - if (ve(e, (null == d.to ? f + 1 : d.to) - p, d.marker, null == d.from), null == d.to) return; - d.to == p && (d = !1) - } - } - if (p >= f) break; - for (var T = Math.min(f, v);;) { - if (m) { - var M = p + m.length; - if (!d) { - var E = M > T ? m.slice(0, T - p) : m; - e.addToken(e, E, o ? o + l : l, u, p + E.length == v ? c : "", h, a) - } - if (M >= T) { - m = m.slice(T - p), p = T; - break - } - p = M, u = "" - } - m = r.slice(s, s = i[g++]), o = he(i[g++], e.cm.options) - } - } else - for (var P = 1; P < i.length; P += 2) e.addToken(e, r.slice(s, s = i[P]), he(i[P + 1], e.cm.options)) - } - - function be(t, e, i) { - this.line = e, this.rest = ct(e), this.size = this.rest ? $(g(this.rest)) - i + 1 : 1, this.node = this.text = null, this.hidden = dt(t, e) - } - - function xe(t, e, i) { - for (var n, r = [], s = e; s < i; s = n) { - var o = new be(t.doc, T(t.doc, s), s); - n = s + o.size, r.push(o) - } - return r - } - - function we(t) { - Zo ? Zo.ops.push(t) : t.ownsGroup = Zo = { - ops: [t], - delayedCallbacks: [] - } - } - - function Ce(t) { - var e = t.delayedCallbacks, - i = 0; - do { - for (; i < e.length; i++) e[i].call(null); - for (var n = 0; n < t.ops.length; n++) { - var r = t.ops[n]; - if (r.cursorActivityHandlers) - for (; r.cursorActivityCalled < r.cursorActivityHandlers.length;) r.cursorActivityHandlers[r.cursorActivityCalled++].call(null, r.cm) - } - } while (i < e.length) - } - - function ke(t, e) { - var i = t.ownsGroup; - if (i) try { - Ce(i) - } finally { - Zo = null, e(i) - } - } - - function Se(t, e) { - var i = Pt(t, e); - if (i.length) { - var n, r = Array.prototype.slice.call(arguments, 2); - Zo ? n = Zo.delayedCallbacks : Qo ? n = Qo : (n = Qo = [], setTimeout(Te, 0)); - for (var s = 0; s < i.length; ++s) ! function(t) { - n.push(function() { - return i[t].apply(null, r) - }) - }(s) - } - } - - function Te() { - var t = Qo; - Qo = null; - for (var e = 0; e < t.length; ++e) t[e]() - } - - function Me(t, e, i, n) { - for (var r = 0; r < e.changes.length; r++) { - var s = e.changes[r]; - "text" == s ? Le(t, e) : "gutter" == s ? Ne(t, e, i, n) : "class" == s ? Ae(e) : "widget" == s && Oe(t, e, n) - } - e.changes = null - } - - function Ee(t) { - return t.node == t.text && (t.node = n("div", null, null, "position: relative"), t.text.parentNode && t.text.parentNode.replaceChild(t.node, t.text), t.node.appendChild(t.text), no && ro < 8 && (t.node.style.zIndex = 2)), t.node - } - - function Pe(t) { - var e = t.bgClass ? t.bgClass + " " + (t.line.bgClass || "") : t.line.bgClass; - if (e && (e += " CodeMirror-linebackground"), t.background) e ? t.background.className = e : (t.background.parentNode.removeChild(t.background), t.background = null); - else if (e) { - var i = Ee(t); - t.background = i.insertBefore(n("div", null, e), i.firstChild) - } - } - - function $e(t, e) { - var i = t.display.externalMeasured; - return i && i.line == e.line ? (t.display.externalMeasured = null, e.measure = i.measure, i.built) : de(t, e) - } - - function Le(t, e) { - var i = e.text.className, - n = $e(t, e); - e.text == e.node && (e.node = n.pre), e.text.parentNode.replaceChild(n.pre, e.text), e.text = n.pre, n.bgClass != e.bgClass || n.textClass != e.textClass ? (e.bgClass = n.bgClass, e.textClass = n.textClass, Ae(e)) : i && (e.text.className = i) - } - - function Ae(t) { - Pe(t), t.line.wrapClass ? Ee(t).className = t.line.wrapClass : t.node != t.text && (t.node.className = ""); - var e = t.textClass ? t.textClass + " " + (t.line.textClass || "") : t.line.textClass; - t.text.className = e || "" - } - - function Ne(t, e, i, r) { - if (e.gutter && (e.node.removeChild(e.gutter), e.gutter = null), e.gutterBackground && (e.node.removeChild(e.gutterBackground), e.gutterBackground = null), e.line.gutterClass) { - var s = Ee(e); - e.gutterBackground = n("div", null, "CodeMirror-gutter-background " + e.line.gutterClass, "left: " + (t.options.fixedGutter ? r.fixedPos : -r.gutterTotalWidth) + "px; width: " + r.gutterTotalWidth + "px"), s.insertBefore(e.gutterBackground, e.text) - } - var o = e.line.gutterMarkers; - if (t.options.lineNumbers || o) { - var a = Ee(e), - l = e.gutter = n("div", null, "CodeMirror-gutter-wrapper", "left: " + (t.options.fixedGutter ? r.fixedPos : -r.gutterTotalWidth) + "px"); - if (t.display.input.setUneditable(l), a.insertBefore(l, e.text), e.line.gutterClass && (l.className += " " + e.line.gutterClass), !t.options.lineNumbers || o && o["CodeMirror-linenumbers"] || (e.lineNumber = l.appendChild(n("div", N(t.options, i), "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + r.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + t.display.lineNumInnerWidth + "px"))), o) - for (var c = 0; c < t.options.gutters.length; ++c) { - var u = t.options.gutters[c], - h = o.hasOwnProperty(u) && o[u]; - h && l.appendChild(n("div", [h], "CodeMirror-gutter-elt", "left: " + r.gutterLeft[u] + "px; width: " + r.gutterWidth[u] + "px")) - } - } - } - - function Oe(t, e, i) { - e.alignable && (e.alignable = null); - for (var n = e.node.firstChild, r = void 0; n; n = r) r = n.nextSibling, "CodeMirror-linewidget" == n.className && e.node.removeChild(n); - De(t, e, i) - } - - function Ie(t, e, i, n) { - var r = $e(t, e); - return e.text = e.node = r.pre, r.bgClass && (e.bgClass = r.bgClass), r.textClass && (e.textClass = r.textClass), Ae(e), Ne(t, e, i, n), De(t, e, n), e.node - } - - function De(t, e, i) { - if (_e(t, e.line, e, i, !0), e.rest) - for (var n = 0; n < e.rest.length; n++) _e(t, e.rest[n], e, i, !1) - } - - function _e(t, e, i, r, s) { - if (e.widgets) - for (var o = Ee(i), a = 0, l = e.widgets; a < l.length; ++a) { - var c = l[a], - u = n("div", [c.node], "CodeMirror-linewidget"); - c.handleMouseEvents || u.setAttribute("cm-ignore-events", "true"), ze(c, u, i, r), t.display.input.setUneditable(u), s && c.above ? o.insertBefore(u, i.gutter || i.text) : o.appendChild(u), Se(c, "redraw") - } - } - - function ze(t, e, i, n) { - if (t.noHScroll) { - (i.alignable || (i.alignable = [])).push(e); - var r = n.wrapperWidth; - e.style.left = n.fixedPos + "px", t.coverGutter || (r -= n.gutterTotalWidth, e.style.paddingLeft = n.gutterTotalWidth + "px"), e.style.width = r + "px" - } - t.coverGutter && (e.style.zIndex = 5, e.style.position = "relative", t.noHScroll || (e.style.marginLeft = -n.gutterTotalWidth + "px")) - } - - function Fe(t) { - if (null != t.height) return t.height; - var e = t.doc.cm; - if (!e) return 0; - if (!r(document.body, t.node)) { - var s = "position: relative;"; - t.coverGutter && (s += "margin-left: -" + e.display.gutters.offsetWidth + "px;"), t.noHScroll && (s += "width: " + e.display.wrapper.clientWidth + "px;"), i(e.display.measure, n("div", [t.node], null, s)) - } - return t.height = t.node.parentNode.offsetHeight - } - - function He(t, e) { - for (var i = Ht(e); i != t.wrapper; i = i.parentNode) - if (!i || 1 == i.nodeType && "true" == i.getAttribute("cm-ignore-events") || i.parentNode == t.sizer && i != t.mover) return !0 - } - - function Re(t) { - return t.lineSpace.offsetTop - } - - function Ve(t) { - return t.mover.offsetHeight - t.lineSpace.offsetHeight - } - - function We(t) { - if (t.cachedPaddingH) return t.cachedPaddingH; - var e = i(t.measure, n("pre", "x")), - r = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle, - s = { - left: parseInt(r.paddingLeft), - right: parseInt(r.paddingRight) - }; - return isNaN(s.left) || isNaN(s.right) || (t.cachedPaddingH = s), s - } - - function Be(t) { - return Mo - t.display.nativeBarWidth - } - - function je(t) { - return t.display.scroller.clientWidth - Be(t) - t.display.barWidth - } - - function Ue(t) { - return t.display.scroller.clientHeight - Be(t) - t.display.barHeight - } - - function qe(t, e, i) { - var n = t.options.lineWrapping, - r = n && je(t); - if (!e.measure.heights || n && e.measure.width != r) { - var s = e.measure.heights = []; - if (n) { - e.measure.width = r; - for (var o = e.text.firstChild.getClientRects(), a = 0; a < o.length - 1; a++) { - var l = o[a], - c = o[a + 1]; - Math.abs(l.bottom - c.bottom) > 2 && s.push((l.bottom + c.top) / 2 - i.top) - } - } - s.push(i.bottom - i.top) - } - } - - function Ke(t, e, i) { - if (t.line == e) return { - map: t.measure.map, - cache: t.measure.cache - }; - for (var n = 0; n < t.rest.length; n++) - if (t.rest[n] == e) return { - map: t.measure.maps[n], - cache: t.measure.caches[n] - }; - for (var r = 0; r < t.rest.length; r++) - if ($(t.rest[r]) > i) return { - map: t.measure.maps[r], - cache: t.measure.caches[r], - before: !0 - } - } - - function Ge(t, e) { - e = lt(e); - var n = $(e), - r = t.display.externalMeasured = new be(t.doc, e, n); - r.lineN = n; - var s = r.built = de(t, r); - return r.text = s.pre, i(t.display.lineMeasure, s.pre), r - } - - function Ye(t, e, i, n) { - return Ze(t, Je(t, e), i, n) - } - - function Xe(t, e) { - if (e >= t.display.viewFrom && e < t.display.viewTo) return t.display.view[ki(t, e)]; - var i = t.display.externalMeasured; - return i && e >= i.lineN && e < i.lineN + i.size ? i : void 0 - } - - function Je(t, e) { - var i = $(e), - n = Xe(t, i); - n && !n.text ? n = null : n && n.changes && (Me(t, n, i, yi(t)), t.curOp.forceUpdate = !0), n || (n = Ge(t, e)); - var r = Ke(n, e, i); - return { - line: e, - view: n, - rect: null, - map: r.map, - cache: r.cache, - before: r.before, - hasHeights: !1 - } - } - - function Ze(t, e, i, n, r) { - e.before && (i = -1); - var s, o = i + (n || ""); - return e.cache.hasOwnProperty(o) ? s = e.cache[o] : (e.rect || (e.rect = e.view.text.getBoundingClientRect()), e.hasHeights || (qe(t, e.view, e.rect), e.hasHeights = !0), s = ei(t, e, i, n), s.bogus || (e.cache[o] = s)), { - left: s.left, - right: s.right, - top: r ? s.rtop : s.top, - bottom: r ? s.rbottom : s.bottom - } - } - - function Qe(t, e, i) { - for (var n, r, s, o, a, l, c = 0; c < t.length; c += 3) - if (a = t[c], l = t[c + 1], e < a ? (r = 0, s = 1, o = "left") : e < l ? (r = e - a, s = r + 1) : (c == t.length - 3 || e == l && t[c + 3] > e) && (s = l - a, r = s - 1, e >= l && (o = "right")), null != r) { - if (n = t[c + 2], a == l && i == (n.insertLeft ? "left" : "right") && (o = i), "left" == i && 0 == r) - for (; c && t[c - 2] == t[c - 3] && t[c - 1].insertLeft;) n = t[2 + (c -= 3)], o = "left"; - if ("right" == i && r == l - a) - for (; c < t.length - 3 && t[c + 3] == t[c + 4] && !t[c + 5].insertLeft;) n = t[(c += 3) + 2], o = "right"; - break - } - return { - node: n, - start: r, - end: s, - collapse: o, - coverStart: a, - coverEnd: l - } - } - - function ti(t, e) { - var i = ta; - if ("left" == e) - for (var n = 0; n < t.length && (i = t[n]).left == i.right; n++); - else - for (var r = t.length - 1; r >= 0 && (i = t[r]).left == i.right; r--); - return i - } - - function ei(t, e, i, n) { - var r, s = Qe(e.map, i, n), - o = s.node, - a = s.start, - l = s.end, - c = s.collapse; - if (3 == o.nodeType) { - for (var u = 0; u < 4; u++) { - for (; a && k(e.line.text.charAt(s.coverStart + a));) --a; - for (; s.coverStart + l < s.coverEnd && k(e.line.text.charAt(s.coverStart + l));) ++l; - if (r = no && ro < 9 && 0 == a && l == s.coverEnd - s.coverStart ? o.parentNode.getBoundingClientRect() : ti(bo(o, a, l).getClientRects(), n), r.left || r.right || 0 == a) break; - l = a, a -= 1, c = "right" - } - no && ro < 11 && (r = ii(t.display.measure, r)) - } else { - a > 0 && (c = n = "right"); - var h; - r = t.options.lineWrapping && (h = o.getClientRects()).length > 1 ? h["right" == n ? h.length - 1 : 0] : o.getBoundingClientRect() - } - if (no && ro < 9 && !a && (!r || !r.left && !r.right)) { - var d = o.parentNode.getClientRects()[0]; - r = d ? { - left: d.left, - right: d.left + vi(t.display), - top: d.top, - bottom: d.bottom - } : ta - } - for (var f = r.top - e.rect.top, p = r.bottom - e.rect.top, g = (f + p) / 2, m = e.view.measure.heights, v = 0; v < m.length - 1 && !(g < m[v]); v++); - var y = v ? m[v - 1] : 0, - b = m[v], - x = { - left: ("right" == c ? r.right : r.left) - e.rect.left, - right: ("left" == c ? r.left : r.right) - e.rect.left, - top: y, - bottom: b - }; - return r.left || r.right || (x.bogus = !0), t.options.singleCursorHeightPerLine || (x.rtop = f, x.rbottom = p), x - } - - function ii(t, e) { - if (!window.screen || null == screen.logicalXDPI || screen.logicalXDPI == screen.deviceXDPI || !Bt(t)) return e; - var i = screen.logicalXDPI / screen.deviceXDPI, - n = screen.logicalYDPI / screen.deviceYDPI; - return { - left: e.left * i, - right: e.right * i, - top: e.top * n, - bottom: e.bottom * n - } - } - - function ni(t) { - if (t.measure && (t.measure.cache = {}, t.measure.heights = null, t.rest)) - for (var e = 0; e < t.rest.length; e++) t.measure.caches[e] = {} - } - - function ri(t) { - t.display.externalMeasure = null, e(t.display.lineMeasure); - for (var i = 0; i < t.display.view.length; i++) ni(t.display.view[i]) - } - - function si(t) { - ri(t), t.display.cachedCharWidth = t.display.cachedTextHeight = t.display.cachedPaddingH = null, t.options.lineWrapping || (t.display.maxLineChanged = !0), t.display.lineNumChars = null - } - - function oi() { - return window.pageXOffset || (document.documentElement || document.body).scrollLeft - } - - function ai() { - return window.pageYOffset || (document.documentElement || document.body).scrollTop - } - - function li(t, e, i, n, r) { - if (!r && e.widgets) - for (var s = 0; s < e.widgets.length; ++s) - if (e.widgets[s].above) { - var o = Fe(e.widgets[s]); - i.top += o, i.bottom += o - } - if ("line" == n) return i; - n || (n = "local"); - var a = pt(e); - if ("local" == n ? a += Re(t.display) : a -= t.display.viewOffset, "page" == n || "window" == n) { - var l = t.display.lineSpace.getBoundingClientRect(); - a += l.top + ("window" == n ? 0 : ai()); - var c = l.left + ("window" == n ? 0 : oi()); - i.left += c, i.right += c - } - return i.top += a, i.bottom += a, i - } - - function ci(t, e, i) { - if ("div" == i) return e; - var n = e.left, - r = e.top; - if ("page" == i) n -= oi(), r -= ai(); - else if ("local" == i || !i) { - var s = t.display.sizer.getBoundingClientRect(); - n += s.left, r += s.top - } - var o = t.display.lineSpace.getBoundingClientRect(); - return { - left: n - o.left, - top: r - o.top - } - } - - function ui(t, e, i, n, r) { - return n || (n = T(t.doc, e.line)), li(t, n, Ye(t, n, e.ch, r), i) - } - - function hi(t, e, i, n, r, s) { - function o(e, o) { - var a = Ze(t, r, e, o ? "right" : "left", s); - return o ? a.left = a.right : a.right = a.left, li(t, n, a, i) - } - - function a(t, e) { - var i = l[e], - n = i.level % 2; - return t == yt(i) && e && i.level < l[e - 1].level ? (i = l[--e], t = bt(i) - (i.level % 2 ? 0 : 1), n = !0) : t == bt(i) && e < l.length - 1 && i.level < l[e + 1].level && (i = l[++e], t = yt(i) - i.level % 2, n = !1), n && t == i.to && t > i.from ? o(t - 1) : o(t, n) - } - n = n || T(t.doc, e.line), r || (r = Je(t, n)); - var l = Et(n), - c = e.ch; - if (!l) return o(c); - var u = kt(l, c), - h = a(c, u); - return null != _o && (h.other = a(c, _o)), h - } - - function di(t, e) { - var i = 0; - e = H(t.doc, e), t.options.lineWrapping || (i = vi(t.display) * e.ch); - var n = T(t.doc, e.line), - r = pt(n) + Re(t.display); - return { - left: i, - right: i, - top: r, - bottom: r + n.height - } - } - - function fi(t, e, i, n) { - var r = O(t, e); - return r.xRel = n, i && (r.outside = !0), r - } - - function pi(t, e, i) { - var n = t.doc; - if ((i += t.display.viewOffset) < 0) return fi(n.first, 0, !0, -1); - var r = L(n, i), - s = n.first + n.size - 1; - if (r > s) return fi(n.first + n.size - 1, T(n, s).text.length, !0, 1); - e < 0 && (e = 0); - for (var o = T(n, r);;) { - var a = gi(t, o, r, e, i), - l = ot(o), - c = l && l.find(0, !0); - if (!l || !(a.ch > c.from.ch || a.ch == c.from.ch && a.xRel > 0)) return a; - r = $(o = c.to.line) - } - } - - function gi(t, e, i, n, r) { - function s(n) { - var r = hi(t, O(i, n), "line", e, c); - return a = !0, o > r.bottom ? r.left - l : o < r.top ? r.left + l : (a = !1, r.left) - } - var o = r - pt(e), - a = !1, - l = 2 * t.display.wrapper.clientWidth, - c = Je(t, e), - u = Et(e), - h = e.text.length, - d = xt(e), - f = wt(e), - p = s(d), - g = a, - m = s(f), - v = a; - if (n > m) return fi(i, f, v, 1); - for (;;) { - if (u ? f == d || f == Tt(e, d, 1) : f - d <= 1) { - var y = n < p || n - p <= m - n ? d : f, - b = y == d ? g : v, - x = n - (y == d ? p : m); - if (v && !u && !/\s/.test(e.text.charAt(y)) && x > 0 && y < e.text.length && c.view.measure.heights.length > 1) { - var w = Ze(t, c, y, "right"); - o <= w.bottom && o >= w.top && Math.abs(n - w.right) < x && (b = !1, y++, x = n - w.right) - } - for (; k(e.text.charAt(y));) ++y; - return fi(i, y, b, x < -1 ? -1 : x > 1 ? 1 : 0) - } - var C = Math.ceil(h / 2), - S = d + C; - if (u) { - S = d; - for (var T = 0; T < C; ++T) S = Tt(e, S, 1) - } - var M = s(S); - M > n ? (f = S, m = M, (v = a) && (m += 1e3), h = C) : (d = S, p = M, g = a, h -= C) - } - } - - function mi(t) { - if (null != t.cachedTextHeight) return t.cachedTextHeight; - if (null == Yo) { - Yo = n("pre"); - for (var r = 0; r < 49; ++r) Yo.appendChild(document.createTextNode("x")), Yo.appendChild(n("br")); - Yo.appendChild(document.createTextNode("x")) - } - i(t.measure, Yo); - var s = Yo.offsetHeight / 50; - return s > 3 && (t.cachedTextHeight = s), e(t.measure), s || 1 - } - - function vi(t) { - if (null != t.cachedCharWidth) return t.cachedCharWidth; - var e = n("span", "xxxxxxxxxx"), - r = n("pre", [e]); - i(t.measure, r); - var s = e.getBoundingClientRect(), - o = (s.right - s.left) / 10; - return o > 2 && (t.cachedCharWidth = o), o || 10 - } - - function yi(t) { - for (var e = t.display, i = {}, n = {}, r = e.gutters.clientLeft, s = e.gutters.firstChild, o = 0; s; s = s.nextSibling, ++o) i[t.options.gutters[o]] = s.offsetLeft + s.clientLeft + r, n[t.options.gutters[o]] = s.clientWidth; - return { - fixedPos: bi(e), - gutterTotalWidth: e.gutters.offsetWidth, - gutterLeft: i, - gutterWidth: n, - wrapperWidth: e.wrapper.clientWidth - } - } - - function bi(t) { - return t.scroller.getBoundingClientRect().left - t.sizer.getBoundingClientRect().left - } - - function xi(t) { - var e = mi(t.display), - i = t.options.lineWrapping, - n = i && Math.max(5, t.display.scroller.clientWidth / vi(t.display) - 3); - return function(r) { - if (dt(t.doc, r)) return 0; - var s = 0; - if (r.widgets) - for (var o = 0; o < r.widgets.length; o++) r.widgets[o].height && (s += r.widgets[o].height); - return i ? s + (Math.ceil(r.text.length / n) || 1) * e : s + e - } - } - - function wi(t) { - var e = t.doc, - i = xi(t); - e.iter(function(t) { - var e = i(t); - e != t.height && P(t, e) - }) - } - - function Ci(t, e, i, n) { - var r = t.display; - if (!i && "true" == Ht(e).getAttribute("cm-not-content")) return null; - var s, o, a = r.lineSpace.getBoundingClientRect(); - try { - s = e.clientX - a.left, o = e.clientY - a.top - } catch (e) { - return null - } - var l, c = pi(t, s, o); - if (n && 1 == c.xRel && (l = T(t.doc, c.line).text).length == c.ch) { - var h = u(l, l.length, t.options.tabSize) - l.length; - c = O(c.line, Math.max(0, Math.round((s - We(t.display).left) / vi(t.display)) - h)) - } - return c - } - - function ki(t, e) { - if (e >= t.display.viewTo) return null; - if ((e -= t.display.viewFrom) < 0) return null; - for (var i = t.display.view, n = 0; n < i.length; n++) - if ((e -= i[n].size) < 0) return n - } - - function Si(t) { - t.display.input.showSelection(t.display.input.prepareSelection()) - } - - function Ti(t, e) { - for (var i = t.doc, n = {}, r = n.cursors = document.createDocumentFragment(), s = n.selection = document.createDocumentFragment(), o = 0; o < i.sel.ranges.length; o++) - if (!1 !== e || o != i.sel.primIndex) { - var a = i.sel.ranges[o]; - if (!(a.from().line >= t.display.viewTo || a.to().line < t.display.viewFrom)) { - var l = a.empty(); - (l || t.options.showCursorWhenSelecting) && Mi(t, a.head, r), l || Ei(t, a, s) - } - } - return n - } - - function Mi(t, e, i) { - var r = hi(t, e, "div", null, null, !t.options.singleCursorHeightPerLine), - s = i.appendChild(n("div", " ", "CodeMirror-cursor")); - if (s.style.left = r.left + "px", s.style.top = r.top + "px", s.style.height = Math.max(0, r.bottom - r.top) * t.options.cursorHeight + "px", r.other) { - var o = i.appendChild(n("div", " ", "CodeMirror-cursor CodeMirror-secondarycursor")); - o.style.display = "", o.style.left = r.other.left + "px", o.style.top = r.other.top + "px", o.style.height = .85 * (r.other.bottom - r.other.top) + "px" - } - } - - function Ei(t, e, i) { - function r(t, e, i, r) { - e < 0 && (e = 0), e = Math.round(e), r = Math.round(r), l.appendChild(n("div", null, "CodeMirror-selected", "position: absolute; left: " + t + "px;\n top: " + e + "px; width: " + (null == i ? h - t : i) + "px;\n height: " + (r - e) + "px")) - } - - function s(e, i, n) { - function s(i, n) { - return ui(t, O(e, i), "div", c, n) - } - var o, l, c = T(a, e), - d = c.text.length; - return vt(Et(c), i || 0, null == n ? d : n, function(t, e, a) { - var c, f, p, g = s(t, "left"); - if (t == e) c = g, f = p = g.left; - else { - if (c = s(e - 1, "right"), "rtl" == a) { - var m = g; - g = c, c = m - } - f = g.left, p = c.right - } - null == i && 0 == t && (f = u), c.top - g.top > 3 && (r(f, g.top, null, g.bottom), f = u, g.bottom < c.top && r(f, g.bottom, null, c.top)), null == n && e == d && (p = h), (!o || g.top < o.top || g.top == o.top && g.left < o.left) && (o = g), (!l || c.bottom > l.bottom || c.bottom == l.bottom && c.right > l.right) && (l = c), f < u + 1 && (f = u), r(f, c.top, p - f, c.bottom) - }), { - start: o, - end: l - } - } - var o = t.display, - a = t.doc, - l = document.createDocumentFragment(), - c = We(t.display), - u = c.left, - h = Math.max(o.sizerWidth, je(t) - o.sizer.offsetLeft) - c.right, - d = e.from(), - f = e.to(); - if (d.line == f.line) s(d.line, d.ch, f.ch); - else { - var p = T(a, d.line), - g = T(a, f.line), - m = lt(p) == lt(g), - v = s(d.line, d.ch, m ? p.text.length + 1 : null).end, - y = s(f.line, m ? 0 : null, f.ch).start; - m && (v.top < y.top - 2 ? (r(v.right, v.top, null, v.bottom), r(u, y.top, y.left, y.bottom)) : r(v.right, v.top, y.left - v.right, v.bottom)), v.bottom < y.top && r(u, v.bottom, null, y.top) - } - i.appendChild(l) - } - - function Pi(t) { - if (t.state.focused) { - var e = t.display; - clearInterval(e.blinker); - var i = !0; - e.cursorDiv.style.visibility = "", t.options.cursorBlinkRate > 0 ? e.blinker = setInterval(function() { - return e.cursorDiv.style.visibility = (i = !i) ? "" : "hidden" - }, t.options.cursorBlinkRate) : t.options.cursorBlinkRate < 0 && (e.cursorDiv.style.visibility = "hidden") - } - } - - function $i(t) { - t.state.focused || (t.display.input.focus(), Ai(t)) - } - - function Li(t) { - t.state.delayingBlurEvent = !0, setTimeout(function() { - t.state.delayingBlurEvent && (t.state.delayingBlurEvent = !1, Ni(t)) - }, 100) - } - - function Ai(t, e) { - t.state.delayingBlurEvent && (t.state.delayingBlurEvent = !1), "nocursor" != t.options.readOnly && (t.state.focused || (Lt(t, "focus", t, e), t.state.focused = !0, o(t.display.wrapper, "CodeMirror-focused"), t.curOp || t.display.selForContextMenu == t.doc.sel || (t.display.input.reset(), so && setTimeout(function() { - return t.display.input.reset(!0) - }, 20)), t.display.input.receivedFocus()), Pi(t)) - } - - function Ni(t, e) { - t.state.delayingBlurEvent || (t.state.focused && (Lt(t, "blur", t, e), t.state.focused = !1, Co(t.display.wrapper, "CodeMirror-focused")), clearInterval(t.display.blinker), setTimeout(function() { - t.state.focused || (t.display.shift = !1) - }, 150)) - } - - function Oi(t) { - var e = t.display, - i = e.view; - if (e.alignWidgets || e.gutters.firstChild && t.options.fixedGutter) { - for (var n = bi(e) - e.scroller.scrollLeft + t.doc.scrollLeft, r = e.gutters.offsetWidth, s = n + "px", o = 0; o < i.length; o++) - if (!i[o].hidden) { - t.options.fixedGutter && (i[o].gutter && (i[o].gutter.style.left = s), i[o].gutterBackground && (i[o].gutterBackground.style.left = s)); - var a = i[o].alignable; - if (a) - for (var l = 0; l < a.length; l++) a[l].style.left = s - } - t.options.fixedGutter && (e.gutters.style.left = n + r + "px") - } - } - - function Ii(t) { - if (!t.options.lineNumbers) return !1; - var e = t.doc, - i = N(t.options, e.first + e.size - 1), - r = t.display; - if (i.length != r.lineNumChars) { - var s = r.measure.appendChild(n("div", [n("div", i)], "CodeMirror-linenumber CodeMirror-gutter-elt")), - o = s.firstChild.offsetWidth, - a = s.offsetWidth - o; - return r.lineGutter.style.width = "", r.lineNumInnerWidth = Math.max(o, r.lineGutter.offsetWidth - a) + 1, r.lineNumWidth = r.lineNumInnerWidth + a, r.lineNumChars = r.lineNumInnerWidth ? i.length : -1, r.lineGutter.style.width = r.lineNumWidth + "px", $n(t), !0 - } - return !1 - } - - function Di(t) { - for (var e = t.display, i = e.lineDiv.offsetTop, n = 0; n < e.view.length; n++) { - var r = e.view[n], - s = void 0; - if (!r.hidden) { - if (no && ro < 8) { - var o = r.node.offsetTop + r.node.offsetHeight; - s = o - i, i = o - } else { - var a = r.node.getBoundingClientRect(); - s = a.bottom - a.top - } - var l = r.line.height - s; - if (s < 2 && (s = mi(e)), (l > .001 || l < -.001) && (P(r.line, s), _i(r.line), r.rest)) - for (var c = 0; c < r.rest.length; c++) _i(r.rest[c]) - } - } - } - - function _i(t) { - if (t.widgets) - for (var e = 0; e < t.widgets.length; ++e) t.widgets[e].height = t.widgets[e].node.parentNode.offsetHeight - } - - function zi(t, e, i) { - var n = i && null != i.top ? Math.max(0, i.top) : t.scroller.scrollTop; - n = Math.floor(n - Re(t)); - var r = i && null != i.bottom ? i.bottom : n + t.wrapper.clientHeight, - s = L(e, n), - o = L(e, r); - if (i && i.ensure) { - var a = i.ensure.from.line, - l = i.ensure.to.line; - a < s ? (s = a, o = L(e, pt(T(e, a)) + t.wrapper.clientHeight)) : Math.min(l, e.lastLine()) >= o && (s = L(e, pt(T(e, l)) - t.wrapper.clientHeight), o = l) - } - return { - from: s, - to: Math.max(o, s + 1) - } - } - - function Fi(t, e) { - Math.abs(t.doc.scrollTop - e) < 2 || (t.doc.scrollTop = e, to || En(t, { - top: e - }), t.display.scroller.scrollTop != e && (t.display.scroller.scrollTop = e), t.display.scrollbars.setScrollTop(e), to && En(t), wn(t, 100)) - } - - function Hi(t, e, i) { - (i ? e == t.doc.scrollLeft : Math.abs(t.doc.scrollLeft - e) < 2) || (e = Math.min(e, t.display.scroller.scrollWidth - t.display.scroller.clientWidth), t.doc.scrollLeft = e, Oi(t), t.display.scroller.scrollLeft != e && (t.display.scroller.scrollLeft = e), t.display.scrollbars.setScrollLeft(e)) - } - - function Ri(t) { - var e = t.wheelDeltaX, - i = t.wheelDeltaY; - return null == e && t.detail && t.axis == t.HORIZONTAL_AXIS && (e = t.detail), null == i && t.detail && t.axis == t.VERTICAL_AXIS ? i = t.detail : null == i && (i = t.wheelDelta), { - x: e, - y: i - } - } - - function Vi(t) { - var e = Ri(t); - return e.x *= ia, e.y *= ia, e - } - - function Wi(t, e) { - var i = Ri(e), - n = i.x, - r = i.y, - s = t.display, - o = s.scroller, - a = o.scrollWidth > o.clientWidth, - l = o.scrollHeight > o.clientHeight; - if (n && a || r && l) { - if (r && go && so) t: for (var c = e.target, u = s.view; c != o; c = c.parentNode) - for (var h = 0; h < u.length; h++) - if (u[h].node == c) { - t.display.currentWheelTarget = c; - break t - } - if (n && !to && !lo && null != ia) return r && l && Fi(t, Math.max(0, Math.min(o.scrollTop + r * ia, o.scrollHeight - o.clientHeight))), Hi(t, Math.max(0, Math.min(o.scrollLeft + n * ia, o.scrollWidth - o.clientWidth))), (!r || r && l) && Dt(e), void(s.wheelStartX = null); - if (r && null != ia) { - var d = r * ia, - f = t.doc.scrollTop, - p = f + s.wrapper.clientHeight; - d < 0 ? f = Math.max(0, f + d - 50) : p = Math.min(t.doc.height, p + d + 50), En(t, { - top: f, - bottom: p - }) - } - ea < 20 && (null == s.wheelStartX ? (s.wheelStartX = o.scrollLeft, s.wheelStartY = o.scrollTop, s.wheelDX = n, s.wheelDY = r, setTimeout(function() { - if (null != s.wheelStartX) { - var t = o.scrollLeft - s.wheelStartX, - e = o.scrollTop - s.wheelStartY, - i = e && s.wheelDY && e / s.wheelDY || t && s.wheelDX && t / s.wheelDX; - s.wheelStartX = s.wheelStartY = null, i && (ia = (ia * ea + i) / (ea + 1), ++ea) - } - }, 200)) : (s.wheelDX += n, s.wheelDY += r)) - } - } - - function Bi(t) { - var e = t.display, - i = e.gutters.offsetWidth, - n = Math.round(t.doc.height + Ve(t.display)); - return { - clientHeight: e.scroller.clientHeight, - viewHeight: e.wrapper.clientHeight, - scrollWidth: e.scroller.scrollWidth, - clientWidth: e.scroller.clientWidth, - viewWidth: e.wrapper.clientWidth, - barLeft: t.options.fixedGutter ? i : 0, - docHeight: n, - scrollHeight: n + Be(t) + e.barHeight, - nativeBarWidth: e.nativeBarWidth, - gutterWidth: i - } - } - - function ji(t, e, i) { - this.cm = i; - var r = this.vert = n("div", [n("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"), - s = this.horiz = n("div", [n("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); - t(r), t(s), Ho(r, "scroll", function() { - r.clientHeight && e(r.scrollTop, "vertical") - }), Ho(s, "scroll", function() { - s.clientWidth && e(s.scrollLeft, "horizontal") - }), this.checkedZeroWidth = !1, no && ro < 8 && (this.horiz.style.minHeight = this.vert.style.minWidth = "18px") - } - - function Ui() {} - - function qi(t, e) { - e || (e = Bi(t)); - var i = t.display.barWidth, - n = t.display.barHeight; - Ki(t, e); - for (var r = 0; r < 4 && i != t.display.barWidth || n != t.display.barHeight; r++) i != t.display.barWidth && t.options.lineWrapping && Di(t), Ki(t, Bi(t)), i = t.display.barWidth, n = t.display.barHeight - } - - function Ki(t, e) { - var i = t.display, - n = i.scrollbars.update(e); - i.sizer.style.paddingRight = (i.barWidth = n.right) + "px", i.sizer.style.paddingBottom = (i.barHeight = n.bottom) + "px", i.heightForcer.style.borderBottom = n.bottom + "px solid transparent", n.right && n.bottom ? (i.scrollbarFiller.style.display = "block", i.scrollbarFiller.style.height = n.bottom + "px", i.scrollbarFiller.style.width = n.right + "px") : i.scrollbarFiller.style.display = "", n.bottom && t.options.coverGutterNextToScrollbar && t.options.fixedGutter ? (i.gutterFiller.style.display = "block", i.gutterFiller.style.height = n.bottom + "px", i.gutterFiller.style.width = e.gutterWidth + "px") : i.gutterFiller.style.display = "" - } - - function Gi(t) { - t.display.scrollbars && (t.display.scrollbars.clear(), t.display.scrollbars.addClass && Co(t.display.wrapper, t.display.scrollbars.addClass)), t.display.scrollbars = new na[t.options.scrollbarStyle](function(e) { - t.display.wrapper.insertBefore(e, t.display.scrollbarFiller), Ho(e, "mousedown", function() { - t.state.focused && setTimeout(function() { - return t.display.input.focus() - }, 0) - }), e.setAttribute("cm-not-content", "true") - }, function(e, i) { - "horizontal" == i ? Hi(t, e) : Fi(t, e) - }, t), t.display.scrollbars.addClass && o(t.display.wrapper, t.display.scrollbars.addClass) - } - - function Yi(t, e) { - if (!At(t, "scrollCursorIntoView")) { - var i = t.display, - r = i.sizer.getBoundingClientRect(), - s = null; - if (e.top + r.top < 0 ? s = !0 : e.bottom + r.top > (window.innerHeight || document.documentElement.clientHeight) && (s = !1), null != s && !ho) { - var o = n("div", "​", null, "position: absolute;\n top: " + (e.top - i.viewOffset - Re(t.display)) + "px;\n height: " + (e.bottom - e.top + Be(t) + i.barHeight) + "px;\n left: " + e.left + "px; width: 2px;"); - t.display.lineSpace.appendChild(o), o.scrollIntoView(s), t.display.lineSpace.removeChild(o) - } - } - } - - function Xi(t, e, i, n) { - null == n && (n = 0); - for (var r, s = 0; s < 5; s++) { - var o = !1; - r = hi(t, e); - var a = i && i != e ? hi(t, i) : r, - l = Zi(t, Math.min(r.left, a.left), Math.min(r.top, a.top) - n, Math.max(r.left, a.left), Math.max(r.bottom, a.bottom) + n), - c = t.doc.scrollTop, - u = t.doc.scrollLeft; - if (null != l.scrollTop && (Fi(t, l.scrollTop), Math.abs(t.doc.scrollTop - c) > 1 && (o = !0)), null != l.scrollLeft && (Hi(t, l.scrollLeft), Math.abs(t.doc.scrollLeft - u) > 1 && (o = !0)), !o) break - } - return r - } - - function Ji(t, e, i, n, r) { - var s = Zi(t, e, i, n, r); - null != s.scrollTop && Fi(t, s.scrollTop), null != s.scrollLeft && Hi(t, s.scrollLeft) - } - - function Zi(t, e, i, n, r) { - var s = t.display, - o = mi(t.display); - i < 0 && (i = 0); - var a = t.curOp && null != t.curOp.scrollTop ? t.curOp.scrollTop : s.scroller.scrollTop, - l = Ue(t), - c = {}; - r - i > l && (r = i + l); - var u = t.doc.height + Ve(s), - h = i < o, - d = r > u - o; - if (i < a) c.scrollTop = h ? 0 : i; - else if (r > a + l) { - var f = Math.min(i, (d ? u : r) - l); - f != a && (c.scrollTop = f) - } - var p = t.curOp && null != t.curOp.scrollLeft ? t.curOp.scrollLeft : s.scroller.scrollLeft, - g = je(t) - (t.options.fixedGutter ? s.gutters.offsetWidth : 0), - m = n - e > g; - return m && (n = e + g), e < 10 ? c.scrollLeft = 0 : e < p ? c.scrollLeft = Math.max(0, e - (m ? 0 : 10)) : n > g + p - 3 && (c.scrollLeft = n + (m ? 0 : 10) - g), c - } - - function Qi(t, e, i) { - null == e && null == i || en(t), null != e && (t.curOp.scrollLeft = (null == t.curOp.scrollLeft ? t.doc.scrollLeft : t.curOp.scrollLeft) + e), null != i && (t.curOp.scrollTop = (null == t.curOp.scrollTop ? t.doc.scrollTop : t.curOp.scrollTop) + i) - } - - function tn(t) { - en(t); - var e = t.getCursor(), - i = e, - n = e; - t.options.lineWrapping || (i = e.ch ? O(e.line, e.ch - 1) : e, n = O(e.line, e.ch + 1)), t.curOp.scrollToPos = { - from: i, - to: n, - margin: t.options.cursorScrollMargin, - isCursor: !0 - } - } - - function en(t) { - var e = t.curOp.scrollToPos; - if (e) { - t.curOp.scrollToPos = null; - var i = di(t, e.from), - n = di(t, e.to), - r = Zi(t, Math.min(i.left, n.left), Math.min(i.top, n.top) - e.margin, Math.max(i.right, n.right), Math.max(i.bottom, n.bottom) + e.margin); - t.scrollTo(r.scrollLeft, r.scrollTop) - } - } - - function nn(t) { - t.curOp = { - cm: t, - viewChanged: !1, - startHeight: t.doc.height, - forceUpdate: !1, - updateInput: null, - typing: !1, - changeObjs: null, - cursorActivityHandlers: null, - cursorActivityCalled: 0, - selectionChanged: !1, - updateMaxLine: !1, - scrollLeft: null, - scrollTop: null, - scrollToPos: null, - focus: !1, - id: ++ra - }, we(t.curOp) - } - - function rn(t) { - ke(t.curOp, function(t) { - for (var e = 0; e < t.ops.length; e++) t.ops[e].cm.curOp = null; - sn(t) - }) - } - - function sn(t) { - for (var e = t.ops, i = 0; i < e.length; i++) on(e[i]); - for (var n = 0; n < e.length; n++) an(e[n]); - for (var r = 0; r < e.length; r++) ln(e[r]); - for (var s = 0; s < e.length; s++) cn(e[s]); - for (var o = 0; o < e.length; o++) un(e[o]) - } - - function on(t) { - var e = t.cm, - i = e.display; - Sn(e), t.updateMaxLine && mt(e), t.mustUpdate = t.viewChanged || t.forceUpdate || null != t.scrollTop || t.scrollToPos && (t.scrollToPos.from.line < i.viewFrom || t.scrollToPos.to.line >= i.viewTo) || i.maxLineChanged && e.options.lineWrapping, t.update = t.mustUpdate && new kn(e, t.mustUpdate && { - top: t.scrollTop, - ensure: t.scrollToPos - }, t.forceUpdate) - } - - function an(t) { - t.updatedDisplay = t.mustUpdate && Tn(t.cm, t.update) - } - - function ln(t) { - var e = t.cm, - i = e.display; - t.updatedDisplay && Di(e), t.barMeasure = Bi(e), i.maxLineChanged && !e.options.lineWrapping && (t.adjustWidthTo = Ye(e, i.maxLine, i.maxLine.text.length).left + 3, e.display.sizerWidth = t.adjustWidthTo, t.barMeasure.scrollWidth = Math.max(i.scroller.clientWidth, i.sizer.offsetLeft + t.adjustWidthTo + Be(e) + e.display.barWidth), t.maxScrollLeft = Math.max(0, i.sizer.offsetLeft + t.adjustWidthTo - je(e))), (t.updatedDisplay || t.selectionChanged) && (t.preparedSelection = i.input.prepareSelection(t.focus)) - } - - function cn(t) { - var e = t.cm; - null != t.adjustWidthTo && (e.display.sizer.style.minWidth = t.adjustWidthTo + "px", t.maxScrollLeft < e.doc.scrollLeft && Hi(e, Math.min(e.display.scroller.scrollLeft, t.maxScrollLeft), !0), e.display.maxLineChanged = !1); - var i = t.focus && t.focus == s() && (!document.hasFocus || document.hasFocus()); - t.preparedSelection && e.display.input.showSelection(t.preparedSelection, i), (t.updatedDisplay || t.startHeight != e.doc.height) && qi(e, t.barMeasure), t.updatedDisplay && Ln(e, t.barMeasure), t.selectionChanged && Pi(e), e.state.focused && t.updateInput && e.display.input.reset(t.typing), i && $i(t.cm) - } - - function un(t) { - var e = t.cm, - i = e.display, - n = e.doc; - if (t.updatedDisplay && Mn(e, t.update), null == i.wheelStartX || null == t.scrollTop && null == t.scrollLeft && !t.scrollToPos || (i.wheelStartX = i.wheelStartY = null), null == t.scrollTop || i.scroller.scrollTop == t.scrollTop && !t.forceScroll || (n.scrollTop = Math.max(0, Math.min(i.scroller.scrollHeight - i.scroller.clientHeight, t.scrollTop)), i.scrollbars.setScrollTop(n.scrollTop), i.scroller.scrollTop = n.scrollTop), null == t.scrollLeft || i.scroller.scrollLeft == t.scrollLeft && !t.forceScroll || (n.scrollLeft = Math.max(0, Math.min(i.scroller.scrollWidth - i.scroller.clientWidth, t.scrollLeft)), i.scrollbars.setScrollLeft(n.scrollLeft), i.scroller.scrollLeft = n.scrollLeft, Oi(e)), t.scrollToPos) { - var r = Xi(e, H(n, t.scrollToPos.from), H(n, t.scrollToPos.to), t.scrollToPos.margin); - t.scrollToPos.isCursor && e.state.focused && Yi(e, r) - } - var s = t.maybeHiddenMarkers, - o = t.maybeUnhiddenMarkers; - if (s) - for (var a = 0; a < s.length; ++a) s[a].lines.length || Lt(s[a], "hide"); - if (o) - for (var l = 0; l < o.length; ++l) o[l].lines.length && Lt(o[l], "unhide"); - i.wrapper.offsetHeight && (n.scrollTop = e.display.scroller.scrollTop), t.changeObjs && Lt(e, "changes", e, t.changeObjs), t.update && t.update.finish() - } - - function hn(t, e) { - if (t.curOp) return e(); - nn(t); - try { - return e() - } finally { - rn(t) - } - } - - function dn(t, e) { - return function() { - if (t.curOp) return e.apply(t, arguments); - nn(t); - try { - return e.apply(t, arguments) - } finally { - rn(t) - } - } - } - - function fn(t) { - return function() { - if (this.curOp) return t.apply(this, arguments); - nn(this); - try { - return t.apply(this, arguments) - } finally { - rn(this) - } - } - } - - function pn(t) { - return function() { - var e = this.cm; - if (!e || e.curOp) return t.apply(this, arguments); - nn(e); - try { - return t.apply(this, arguments) - } finally { - rn(e) - } - } - } - - function gn(t, e, i, n) { - null == e && (e = t.doc.first), null == i && (i = t.doc.first + t.doc.size), n || (n = 0); - var r = t.display; - if (n && i < r.viewTo && (null == r.updateLineNumbers || r.updateLineNumbers > e) && (r.updateLineNumbers = e), t.curOp.viewChanged = !0, e >= r.viewTo) Do && ut(t.doc, e) < r.viewTo && vn(t); - else if (i <= r.viewFrom) Do && ht(t.doc, i + n) > r.viewFrom ? vn(t) : (r.viewFrom += n, r.viewTo += n); - else if (e <= r.viewFrom && i >= r.viewTo) vn(t); - else if (e <= r.viewFrom) { - var s = yn(t, i, i + n, 1); - s ? (r.view = r.view.slice(s.index), r.viewFrom = s.lineN, r.viewTo += n) : vn(t) - } else if (i >= r.viewTo) { - var o = yn(t, e, e, -1); - o ? (r.view = r.view.slice(0, o.index), r.viewTo = o.lineN) : vn(t) - } else { - var a = yn(t, e, e, -1), - l = yn(t, i, i + n, 1); - a && l ? (r.view = r.view.slice(0, a.index).concat(xe(t, a.lineN, l.lineN)).concat(r.view.slice(l.index)), r.viewTo += n) : vn(t) - } - var c = r.externalMeasured; - c && (i < c.lineN ? c.lineN += n : e < c.lineN + c.size && (r.externalMeasured = null)) - } - - function mn(t, e, i) { - t.curOp.viewChanged = !0; - var n = t.display, - r = t.display.externalMeasured; - if (r && e >= r.lineN && e < r.lineN + r.size && (n.externalMeasured = null), !(e < n.viewFrom || e >= n.viewTo)) { - var s = n.view[ki(t, e)]; - if (null != s.node) { - var o = s.changes || (s.changes = []); - 1 == d(o, i) && o.push(i) - } - } - } - - function vn(t) { - t.display.viewFrom = t.display.viewTo = t.doc.first, t.display.view = [], t.display.viewOffset = 0 - } - - function yn(t, e, i, n) { - var r, s = ki(t, e), - o = t.display.view; - if (!Do || i == t.doc.first + t.doc.size) return { - index: s, - lineN: i - }; - for (var a = t.display.viewFrom, l = 0; l < s; l++) a += o[l].size; - if (a != e) { - if (n > 0) { - if (s == o.length - 1) return null; - r = a + o[s].size - e, s++ - } else r = a - e; - e += r, i += r - } - for (; ut(t.doc, i) != i;) { - if (s == (n < 0 ? 0 : o.length - 1)) return null; - i += n * o[s - (n < 0 ? 1 : 0)].size, s += n - } - return { - index: s, - lineN: i - } - } - - function bn(t, e, i) { - var n = t.display; - 0 == n.view.length || e >= n.viewTo || i <= n.viewFrom ? (n.view = xe(t, e, i), n.viewFrom = e) : (n.viewFrom > e ? n.view = xe(t, e, n.viewFrom).concat(n.view) : n.viewFrom < e && (n.view = n.view.slice(ki(t, e))), n.viewFrom = e, n.viewTo < i ? n.view = n.view.concat(xe(t, n.viewTo, i)) : n.viewTo > i && (n.view = n.view.slice(0, ki(t, i)))), n.viewTo = i - } - - function xn(t) { - for (var e = t.display.view, i = 0, n = 0; n < e.length; n++) { - var r = e[n]; - r.hidden || r.node && !r.changes || ++i - } - return i - } - - function wn(t, e) { - t.doc.mode.startState && t.doc.frontier < t.display.viewTo && t.state.highlight.set(e, l(Cn, t)) - } - - function Cn(t) { - var e = t.doc; - if (e.frontier < e.first && (e.frontier = e.first), !(e.frontier >= t.display.viewTo)) { - var i = +new Date + t.options.workTime, - n = Yt(e.mode, te(t, e.frontier)), - r = []; - e.iter(e.frontier, Math.min(e.first + e.size, t.display.viewTo + 500), function(s) { - if (e.frontier >= t.display.viewFrom) { - var o = s.styles, - a = s.text.length > t.options.maxHighlightLength, - l = Zt(t, s, a ? Yt(e.mode, n) : n, !0); - s.styles = l.styles; - var c = s.styleClasses, - u = l.classes; - u ? s.styleClasses = u : c && (s.styleClasses = null); - for (var h = !o || o.length != s.styles.length || c != u && (!c || !u || c.bgClass != u.bgClass || c.textClass != u.textClass), d = 0; !h && d < o.length; ++d) h = o[d] != s.styles[d]; - h && r.push(e.frontier), s.stateAfter = a ? n : Yt(e.mode, n) - } else s.text.length <= t.options.maxHighlightLength && ee(t, s.text, n), s.stateAfter = e.frontier % 5 == 0 ? Yt(e.mode, n) : null; - if (++e.frontier, +new Date > i) return wn(t, t.options.workDelay), !0 - }), r.length && hn(t, function() { - for (var e = 0; e < r.length; e++) mn(t, r[e], "text") - }) - } - } - - function kn(t, e, i) { - var n = t.display; - this.viewport = e, this.visible = zi(n, t.doc, e), this.editorIsHidden = !n.wrapper.offsetWidth, this.wrapperHeight = n.wrapper.clientHeight, this.wrapperWidth = n.wrapper.clientWidth, this.oldDisplayWidth = je(t), this.force = i, this.dims = yi(t), this.events = [] - } - - function Sn(t) { - var e = t.display; - !e.scrollbarsClipped && e.scroller.offsetWidth && (e.nativeBarWidth = e.scroller.offsetWidth - e.scroller.clientWidth, e.heightForcer.style.height = Be(t) + "px", e.sizer.style.marginBottom = -e.nativeBarWidth + "px", e.sizer.style.borderRightWidth = Be(t) + "px", e.scrollbarsClipped = !0) - } - - function Tn(t, i) { - var n = t.display, - r = t.doc; - if (i.editorIsHidden) return vn(t), !1; - if (!i.force && i.visible.from >= n.viewFrom && i.visible.to <= n.viewTo && (null == n.updateLineNumbers || n.updateLineNumbers >= n.viewTo) && n.renderedView == n.view && 0 == xn(t)) return !1; - Ii(t) && (vn(t), i.dims = yi(t)); - var o = r.first + r.size, - a = Math.max(i.visible.from - t.options.viewportMargin, r.first), - l = Math.min(o, i.visible.to + t.options.viewportMargin); - n.viewFrom < a && a - n.viewFrom < 20 && (a = Math.max(r.first, n.viewFrom)), n.viewTo > l && n.viewTo - l < 20 && (l = Math.min(o, n.viewTo)), Do && (a = ut(t.doc, a), l = ht(t.doc, l)); - var c = a != n.viewFrom || l != n.viewTo || n.lastWrapHeight != i.wrapperHeight || n.lastWrapWidth != i.wrapperWidth; - bn(t, a, l), n.viewOffset = pt(T(t.doc, n.viewFrom)), t.display.mover.style.top = n.viewOffset + "px"; - var u = xn(t); - if (!c && 0 == u && !i.force && n.renderedView == n.view && (null == n.updateLineNumbers || n.updateLineNumbers >= n.viewTo)) return !1; - var h = s(); - return u > 4 && (n.lineDiv.style.display = "none"), Pn(t, n.updateLineNumbers, i.dims), u > 4 && (n.lineDiv.style.display = ""), n.renderedView = n.view, h && s() != h && h.offsetHeight && h.focus(), e(n.cursorDiv), e(n.selectionDiv), n.gutters.style.height = n.sizer.style.minHeight = 0, c && (n.lastWrapHeight = i.wrapperHeight, n.lastWrapWidth = i.wrapperWidth, wn(t, 400)), n.updateLineNumbers = null, !0 - } - - function Mn(t, e) { - for (var i = e.viewport, n = !0; - (n && t.options.lineWrapping && e.oldDisplayWidth != je(t) || (i && null != i.top && (i = { - top: Math.min(t.doc.height + Ve(t.display) - Ue(t), i.top) - }), e.visible = zi(t.display, t.doc, i), !(e.visible.from >= t.display.viewFrom && e.visible.to <= t.display.viewTo))) && Tn(t, e); n = !1) { - Di(t); - var r = Bi(t); - Si(t), qi(t, r), Ln(t, r) - } - e.signal(t, "update", t), t.display.viewFrom == t.display.reportedViewFrom && t.display.viewTo == t.display.reportedViewTo || (e.signal(t, "viewportChange", t, t.display.viewFrom, t.display.viewTo), t.display.reportedViewFrom = t.display.viewFrom, t.display.reportedViewTo = t.display.viewTo) - } - - function En(t, e) { - var i = new kn(t, e); - if (Tn(t, i)) { - Di(t), Mn(t, i); - var n = Bi(t); - Si(t), qi(t, n), Ln(t, n), i.finish() - } - } - - function Pn(t, i, n) { - function r(e) { - var i = e.nextSibling; - return so && go && t.display.currentWheelTarget == e ? e.style.display = "none" : e.parentNode.removeChild(e), i - } - for (var s = t.display, o = t.options.lineNumbers, a = s.lineDiv, l = a.firstChild, c = s.view, u = s.viewFrom, h = 0; h < c.length; h++) { - var f = c[h]; - if (f.hidden); - else if (f.node && f.node.parentNode == a) { - for (; l != f.node;) l = r(l); - var p = o && null != i && i <= u && f.lineNumber; - f.changes && (d(f.changes, "gutter") > -1 && (p = !1), Me(t, f, u, n)), p && (e(f.lineNumber), f.lineNumber.appendChild(document.createTextNode(N(t.options, u)))), l = f.node.nextSibling - } else { - var g = Ie(t, f, u, n); - a.insertBefore(g, l) - } - u += f.size - } - for (; l;) l = r(l) - } - - function $n(t) { - var e = t.display.gutters.offsetWidth; - t.display.sizer.style.marginLeft = e + "px" - } - - function Ln(t, e) { - t.display.sizer.style.minHeight = e.docHeight + "px", t.display.heightForcer.style.top = e.docHeight + "px", t.display.gutters.style.height = e.docHeight + t.display.barHeight + Be(t) + "px" - } - - function An(t) { - var i = t.display.gutters, - r = t.options.gutters; - e(i); - for (var s = 0; s < r.length; ++s) { - var o = r[s], - a = i.appendChild(n("div", null, "CodeMirror-gutter " + o)); - "CodeMirror-linenumbers" == o && (t.display.lineGutter = a, a.style.width = (t.display.lineNumWidth || 1) + "px") - } - i.style.display = s ? "" : "none", $n(t) - } - - function Nn(t) { - var e = d(t.gutters, "CodeMirror-linenumbers"); - 1 == e && t.lineNumbers ? t.gutters = t.gutters.concat(["CodeMirror-linenumbers"]) : e > -1 && !t.lineNumbers && (t.gutters = t.gutters.slice(0), t.gutters.splice(e, 1)) - } - - function On(t, e) { - this.ranges = t, this.primIndex = e - } - - function In(t, e) { - this.anchor = t, this.head = e - } - - function Dn(t, e) { - var i = t[e]; - t.sort(function(t, e) { - return I(t.from(), e.from()) - }), e = d(t, i); - for (var n = 1; n < t.length; n++) { - var r = t[n], - s = t[n - 1]; - if (I(s.to(), r.from()) >= 0) { - var o = z(s.from(), r.from()), - a = _(s.to(), r.to()), - l = s.empty() ? r.from() == r.head : s.from() == s.head; - n <= e && --e, t.splice(--n, 2, new In(l ? a : o, l ? o : a)) - } - } - return new On(t, e) - } - - function _n(t, e) { - return new On([new In(t, e || t)], 0) - } - - function zn(t) { - return t.text ? O(t.from.line + t.text.length - 1, g(t.text).length + (1 == t.text.length ? t.from.ch : 0)) : t.to - } - - function Fn(t, e) { - if (I(t, e.from) < 0) return t; - if (I(t, e.to) <= 0) return zn(e); - var i = t.line + e.text.length - (e.to.line - e.from.line) - 1, - n = t.ch; - return t.line == e.to.line && (n += zn(e).ch - e.to.ch), O(i, n) - } - - function Hn(t, e) { - for (var i = [], n = 0; n < t.sel.ranges.length; n++) { - var r = t.sel.ranges[n]; - i.push(new In(Fn(r.anchor, e), Fn(r.head, e))) - } - return Dn(i, t.sel.primIndex) - } - - function Rn(t, e, i) { - return t.line == e.line ? O(i.line, t.ch - e.ch + i.ch) : O(i.line + (t.line - e.line), t.ch) - } - - function Vn(t, e, i) { - for (var n = [], r = O(t.first, 0), s = r, o = 0; o < e.length; o++) { - var a = e[o], - l = Rn(a.from, r, s), - c = Rn(zn(a), r, s); - if (r = a.to, s = c, "around" == i) { - var u = t.sel.ranges[o], - h = I(u.head, u.anchor) < 0; - n[o] = new In(h ? c : l, h ? l : c) - } else n[o] = new In(l, l) - } - return new On(n, t.sel.primIndex) - } - - function Wn(t) { - t.doc.mode = Kt(t.options, t.doc.modeOption), Bn(t) - } - - function Bn(t) { - t.doc.iter(function(t) { - t.stateAfter && (t.stateAfter = null), t.styles && (t.styles = null) - }), t.doc.frontier = t.doc.first, wn(t, 100), t.state.modeGen++, t.curOp && gn(t) - } - - function jn(t, e) { - return 0 == e.from.ch && 0 == e.to.ch && "" == g(e.text) && (!t.cm || t.cm.options.wholeLineUpdateBefore) - } - - function Un(t, e, i, n) { - function r(t) { - return i ? i[t] : null - } - - function s(t, i, r) { - ce(t, i, r, n), Se(t, "change", t, e) - } - - function o(t, e) { - for (var i = [], s = t; s < e; ++s) i.push(new le(c[s], r(s), n)); - return i - } - var a = e.from, - l = e.to, - c = e.text, - u = T(t, a.line), - h = T(t, l.line), - d = g(c), - f = r(c.length - 1), - p = l.line - a.line; - if (e.full) t.insert(0, o(0, c.length)), t.remove(c.length, t.size - c.length); - else if (jn(t, e)) { - var m = o(0, c.length - 1); - s(h, h.text, f), p && t.remove(a.line, p), m.length && t.insert(a.line, m) - } else if (u == h) - if (1 == c.length) s(u, u.text.slice(0, a.ch) + d + u.text.slice(l.ch), f); - else { - var v = o(1, c.length - 1); - v.push(new le(d + u.text.slice(l.ch), f, n)), s(u, u.text.slice(0, a.ch) + c[0], r(0)), t.insert(a.line + 1, v) - } - else if (1 == c.length) s(u, u.text.slice(0, a.ch) + c[0] + h.text.slice(l.ch), r(0)), t.remove(a.line + 1, p); - else { - s(u, u.text.slice(0, a.ch) + c[0], r(0)), s(h, d + h.text.slice(l.ch), f); - var y = o(1, c.length - 1); - p > 1 && t.remove(a.line + 1, p - 1), t.insert(a.line + 1, y) - } - Se(t, "change", t, e) - } - - function qn(t, e, i) { - function n(t, r, s) { - if (t.linked) - for (var o = 0; o < t.linked.length; ++o) { - var a = t.linked[o]; - if (a.doc != r) { - var l = s && a.sharedHist; - i && !l || (e(a.doc, l), n(a.doc, t, l)) - } - } - } - n(t, null, !0) - } - - function Kn(t, e) { - if (e.cm) throw new Error("This document is already in use."); - t.doc = e, e.cm = t, wi(t), Wn(t), t.options.lineWrapping || mt(t), t.options.mode = e.modeOption, gn(t) - } - - function Gn(t) { - this.done = [], this.undone = [], this.undoDepth = 1 / 0, this.lastModTime = this.lastSelTime = 0, this.lastOp = this.lastSelOp = null, this.lastOrigin = this.lastSelOrigin = null, this.generation = this.maxGeneration = t || 1 - } - - function Yn(t, e) { - var i = { - from: D(e.from), - to: zn(e), - text: M(t, e.from, e.to) - }; - return ir(t, i, e.from.line, e.to.line + 1), qn(t, function(t) { - return ir(t, i, e.from.line, e.to.line + 1) - }, !0), i - } - - function Xn(t) { - for (; t.length;) { - if (!g(t).ranges) break; - t.pop() - } - } - - function Jn(t, e) { - return e ? (Xn(t.done), g(t.done)) : t.done.length && !g(t.done).ranges ? g(t.done) : t.done.length > 1 && !t.done[t.done.length - 2].ranges ? (t.done.pop(), g(t.done)) : void 0 - } - - function Zn(t, e, i, n) { - var r = t.history; - r.undone.length = 0; - var s, o, a = +new Date; - if ((r.lastOp == n || r.lastOrigin == e.origin && e.origin && ("+" == e.origin.charAt(0) && t.cm && r.lastModTime > a - t.cm.options.historyEventDelay || "*" == e.origin.charAt(0))) && (s = Jn(r, r.lastOp == n))) o = g(s.changes), 0 == I(e.from, e.to) && 0 == I(e.from, o.to) ? o.to = zn(e) : s.changes.push(Yn(t, e)); - else { - var l = g(r.done); - for (l && l.ranges || er(t.sel, r.done), s = { - changes: [Yn(t, e)], - generation: r.generation - }, r.done.push(s); r.done.length > r.undoDepth;) r.done.shift(), r.done[0].ranges || r.done.shift() - } - r.done.push(i), r.generation = ++r.maxGeneration, r.lastModTime = r.lastSelTime = a, r.lastOp = r.lastSelOp = n, r.lastOrigin = r.lastSelOrigin = e.origin, o || Lt(t, "historyAdded") - } - - function Qn(t, e, i, n) { - var r = e.charAt(0); - return "*" == r || "+" == r && i.ranges.length == n.ranges.length && i.somethingSelected() == n.somethingSelected() && new Date - t.history.lastSelTime <= (t.cm ? t.cm.options.historyEventDelay : 500) - } - - function tr(t, e, i, n) { - var r = t.history, - s = n && n.origin; - i == r.lastSelOp || s && r.lastSelOrigin == s && (r.lastModTime == r.lastSelTime && r.lastOrigin == s || Qn(t, s, g(r.done), e)) ? r.done[r.done.length - 1] = e : er(e, r.done), r.lastSelTime = +new Date, r.lastSelOrigin = s, r.lastSelOp = i, n && !1 !== n.clearRedo && Xn(r.undone) - } - - function er(t, e) { - var i = g(e); - i && i.ranges && i.equals(t) || e.push(t) - } - - function ir(t, e, i, n) { - var r = e["spans_" + t.id], - s = 0; - t.iter(Math.max(t.first, i), Math.min(t.first + t.size, n), function(i) { - i.markedSpans && ((r || (r = e["spans_" + t.id] = {}))[s] = i.markedSpans), ++s - }) - } - - function nr(t) { - if (!t) return null; - for (var e, i = 0; i < t.length; ++i) t[i].marker.explicitlyCleared ? e || (e = t.slice(0, i)) : e && e.push(t[i]); - return e ? e.length ? e : null : t - } - - function rr(t, e) { - var i = e["spans_" + t.id]; - if (!i) return null; - for (var n = [], r = 0; r < e.text.length; ++r) n.push(nr(i[r])); - return n - } - - function sr(t, e) { - var i = rr(t, e), - n = X(t, e); - if (!i) return n; - if (!n) return i; - for (var r = 0; r < i.length; ++r) { - var s = i[r], - o = n[r]; - if (s && o) t: for (var a = 0; a < o.length; ++a) { - for (var l = o[a], c = 0; c < s.length; ++c) - if (s[c].marker == l.marker) continue t; - s.push(l) - } else o && (i[r] = o) - } - return i - } - - function or(t, e, i) { - for (var n = [], r = 0; r < t.length; ++r) { - var s = t[r]; - if (s.ranges) n.push(i ? On.prototype.deepCopy.call(s) : s); - else { - var o = s.changes, - a = []; - n.push({ - changes: a - }); - for (var l = 0; l < o.length; ++l) { - var c = o[l], - u = void 0; - if (a.push({ - from: c.from, - to: c.to, - text: c.text - }), e) - for (var h in c)(u = h.match(/^spans_(\d+)$/)) && d(e, Number(u[1])) > -1 && (g(a)[h] = c[h], delete c[h]) - } - } - } - return n - } - - function ar(t, e, i, n) { - if (t.cm && t.cm.display.shift || t.extend) { - var r = e.anchor; - if (n) { - var s = I(i, r) < 0; - s != I(n, r) < 0 ? (r = i, i = n) : s != I(i, n) < 0 && (i = n) - } - return new In(r, i) - } - return new In(n || i, i) - } - - function lr(t, e, i, n) { - pr(t, new On([ar(t, t.sel.primary(), e, i)], 0), n) - } - - function cr(t, e, i) { - for (var n = [], r = 0; r < t.sel.ranges.length; r++) n[r] = ar(t, t.sel.ranges[r], e[r], null); - pr(t, Dn(n, t.sel.primIndex), i) - } - - function ur(t, e, i, n) { - var r = t.sel.ranges.slice(0); - r[e] = i, pr(t, Dn(r, t.sel.primIndex), n) - } - - function hr(t, e, i, n) { - pr(t, _n(e, i), n) - } - - function dr(t, e, i) { - var n = { - ranges: e.ranges, - update: function(e) { - var i = this; - this.ranges = []; - for (var n = 0; n < e.length; n++) i.ranges[n] = new In(H(t, e[n].anchor), H(t, e[n].head)) - }, - origin: i && i.origin - }; - return Lt(t, "beforeSelectionChange", t, n), t.cm && Lt(t.cm, "beforeSelectionChange", t.cm, n), n.ranges != e.ranges ? Dn(n.ranges, n.ranges.length - 1) : e - } - - function fr(t, e, i) { - var n = t.history.done, - r = g(n); - r && r.ranges ? (n[n.length - 1] = e, gr(t, e, i)) : pr(t, e, i) - } - - function pr(t, e, i) { - gr(t, e, i), tr(t, t.sel, t.cm ? t.cm.curOp.id : NaN, i) - } - - function gr(t, e, i) { - (Ot(t, "beforeSelectionChange") || t.cm && Ot(t.cm, "beforeSelectionChange")) && (e = dr(t, e, i)), mr(t, yr(t, e, i && i.bias || (I(e.primary().head, t.sel.primary().head) < 0 ? -1 : 1), !0)), i && !1 === i.scroll || !t.cm || tn(t.cm) - } - - function mr(t, e) { - e.equals(t.sel) || (t.sel = e, t.cm && (t.cm.curOp.updateInput = t.cm.curOp.selectionChanged = !0, Nt(t.cm)), Se(t, "cursorActivity", t)) - } - - function vr(t) { - mr(t, yr(t, t.sel, null, !1), Po) - } - - function yr(t, e, i, n) { - for (var r, s = 0; s < e.ranges.length; s++) { - var o = e.ranges[s], - a = e.ranges.length == t.sel.ranges.length && t.sel.ranges[s], - l = xr(t, o.anchor, a && a.anchor, i, n), - c = xr(t, o.head, a && a.head, i, n); - (r || l != o.anchor || c != o.head) && (r || (r = e.ranges.slice(0, s)), r[s] = new In(l, c)) - } - return r ? Dn(r, e.primIndex) : e - } - - function br(t, e, i, n, r) { - var s = T(t, e.line); - if (s.markedSpans) - for (var o = 0; o < s.markedSpans.length; ++o) { - var a = s.markedSpans[o], - l = a.marker; - if ((null == a.from || (l.inclusiveLeft ? a.from <= e.ch : a.from < e.ch)) && (null == a.to || (l.inclusiveRight ? a.to >= e.ch : a.to > e.ch))) { - if (r && (Lt(l, "beforeCursorEnter"), l.explicitlyCleared)) { - if (s.markedSpans) { - --o; - continue - } - break - } - if (!l.atomic) continue; - if (i) { - var c = l.find(n < 0 ? 1 : -1), - u = void 0; - if ((n < 0 ? l.inclusiveRight : l.inclusiveLeft) && (c = wr(t, c, -n, c && c.line == e.line ? s : null)), c && c.line == e.line && (u = I(c, i)) && (n < 0 ? u < 0 : u > 0)) return br(t, c, e, n, r) - } - var h = l.find(n < 0 ? -1 : 1); - return (n < 0 ? l.inclusiveLeft : l.inclusiveRight) && (h = wr(t, h, n, h.line == e.line ? s : null)), h ? br(t, h, e, n, r) : null - } - } - return e - } - - function xr(t, e, i, n, r) { - var s = n || 1, - o = br(t, e, i, s, r) || !r && br(t, e, i, s, !0) || br(t, e, i, -s, r) || !r && br(t, e, i, -s, !0); - return o || (t.cantEdit = !0, O(t.first, 0)) - } - - function wr(t, e, i, n) { - return i < 0 && 0 == e.ch ? e.line > t.first ? H(t, O(e.line - 1)) : null : i > 0 && e.ch == (n || T(t, e.line)).text.length ? e.line < t.first + t.size - 1 ? O(e.line + 1, 0) : null : new O(e.line, e.ch + i) - } - - function Cr(t) { - t.setSelection(O(t.firstLine(), 0), O(t.lastLine()), Po) - } - - function kr(t, e, i) { - var n = { - canceled: !1, - from: e.from, - to: e.to, - text: e.text, - origin: e.origin, - cancel: function() { - return n.canceled = !0 - } - }; - return i && (n.update = function(e, i, r, s) { - e && (n.from = H(t, e)), i && (n.to = H(t, i)), r && (n.text = r), void 0 !== s && (n.origin = s) - }), Lt(t, "beforeChange", t, n), t.cm && Lt(t.cm, "beforeChange", t.cm, n), n.canceled ? null : { - from: n.from, - to: n.to, - text: n.text, - origin: n.origin - } - } - - function Sr(t, e, i) { - if (t.cm) { - if (!t.cm.curOp) return dn(t.cm, Sr)(t, e, i); - if (t.cm.state.suppressEdits) return - } - if (!(Ot(t, "beforeChange") || t.cm && Ot(t.cm, "beforeChange")) || (e = kr(t, e, !0))) { - var n = Io && !i && Z(t, e.from, e.to); - if (n) - for (var r = n.length - 1; r >= 0; --r) Tr(t, { - from: n[r].from, - to: n[r].to, - text: r ? [""] : e.text - }); - else Tr(t, e) - } - } - - function Tr(t, e) { - if (1 != e.text.length || "" != e.text[0] || 0 != I(e.from, e.to)) { - var i = Hn(t, e); - Zn(t, e, i, t.cm ? t.cm.curOp.id : NaN), Pr(t, e, i, X(t, e)); - var n = []; - qn(t, function(t, i) { - i || -1 != d(n, t.history) || (Or(t.history, e), n.push(t.history)), Pr(t, e, null, X(t, e)) - }) - } - } - - function Mr(t, e, i) { - if (!t.cm || !t.cm.state.suppressEdits || i) { - for (var n, r = t.history, s = t.sel, o = "undo" == e ? r.done : r.undone, a = "undo" == e ? r.undone : r.done, l = 0; l < o.length && (n = o[l], i ? !n.ranges || n.equals(t.sel) : n.ranges); l++); - if (l != o.length) { - for (r.lastOrigin = r.lastSelOrigin = null; n = o.pop(), n.ranges;) { - if (er(n, a), i && !n.equals(t.sel)) return void pr(t, n, { - clearRedo: !1 - }); - s = n - } - var c = []; - er(s, a), a.push({ - changes: c, - generation: r.generation - }), r.generation = n.generation || ++r.maxGeneration; - for (var u = Ot(t, "beforeChange") || t.cm && Ot(t.cm, "beforeChange"), h = n.changes.length - 1; h >= 0; --h) { - var f = function(i) { - var r = n.changes[i]; - if (r.origin = e, u && !kr(t, r, !1)) return o.length = 0, {}; - c.push(Yn(t, r)); - var s = i ? Hn(t, r) : g(o); - Pr(t, r, s, sr(t, r)), !i && t.cm && t.cm.scrollIntoView({ - from: r.from, - to: zn(r) - }); - var a = []; - qn(t, function(t, e) { - e || -1 != d(a, t.history) || (Or(t.history, r), a.push(t.history)), Pr(t, r, null, sr(t, r)) - }) - }(h); - if (f) return f.v - } - } - } - } - - function Er(t, e) { - if (0 != e && (t.first += e, t.sel = new On(m(t.sel.ranges, function(t) { - return new In(O(t.anchor.line + e, t.anchor.ch), O(t.head.line + e, t.head.ch)) - }), t.sel.primIndex), t.cm)) { - gn(t.cm, t.first, t.first - e, e); - for (var i = t.cm.display, n = i.viewFrom; n < i.viewTo; n++) mn(t.cm, n, "gutter") - } - } - - function Pr(t, e, i, n) { - if (t.cm && !t.cm.curOp) return dn(t.cm, Pr)(t, e, i, n); - if (e.to.line < t.first) return void Er(t, e.text.length - 1 - (e.to.line - e.from.line)); - if (!(e.from.line > t.lastLine())) { - if (e.from.line < t.first) { - var r = e.text.length - 1 - (t.first - e.from.line); - Er(t, r), e = { - from: O(t.first, 0), - to: O(e.to.line + r, e.to.ch), - text: [g(e.text)], - origin: e.origin - } - } - var s = t.lastLine(); - e.to.line > s && (e = { - from: e.from, - to: O(s, T(t, s).text.length), - text: [e.text[0]], - origin: e.origin - }), e.removed = M(t, e.from, e.to), i || (i = Hn(t, e)), t.cm ? $r(t.cm, e, n) : Un(t, e, n), gr(t, i, Po) - } - } - - function $r(t, e, i) { - var n = t.doc, - r = t.display, - s = e.from, - o = e.to, - a = !1, - l = s.line; - t.options.lineWrapping || (l = $(lt(T(n, s.line))), n.iter(l, o.line + 1, function(t) { - if (t == r.maxLine) return a = !0, !0 - })), n.sel.contains(e.from, e.to) > -1 && Nt(t), Un(n, e, i, xi(t)), t.options.lineWrapping || (n.iter(l, s.line + e.text.length, function(t) { - var e = gt(t); - e > r.maxLineLength && (r.maxLine = t, r.maxLineLength = e, r.maxLineChanged = !0, a = !1) - }), a && (t.curOp.updateMaxLine = !0)), n.frontier = Math.min(n.frontier, s.line), wn(t, 400); - var c = e.text.length - (o.line - s.line) - 1; - e.full ? gn(t) : s.line != o.line || 1 != e.text.length || jn(t.doc, e) ? gn(t, s.line, o.line + 1, c) : mn(t, s.line, "text"); - var u = Ot(t, "changes"), - h = Ot(t, "change"); - if (h || u) { - var d = { - from: s, - to: o, - text: e.text, - removed: e.removed, - origin: e.origin - }; - h && Se(t, "change", t, d), u && (t.curOp.changeObjs || (t.curOp.changeObjs = [])).push(d) - } - t.display.selForContextMenu = null - } - - function Lr(t, e, i, n, r) { - if (n || (n = i), I(n, i) < 0) { - var s = n; - n = i, i = s - } - "string" == typeof e && (e = t.splitLines(e)), Sr(t, { - from: i, - to: n, - text: e, - origin: r - }) - } - - function Ar(t, e, i, n) { - i < t.line ? t.line += n : e < t.line && (t.line = e, t.ch = 0) - } - - function Nr(t, e, i, n) { - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = !0; - if (s.ranges) { - s.copied || (s = t[r] = s.deepCopy(), s.copied = !0); - for (var a = 0; a < s.ranges.length; a++) Ar(s.ranges[a].anchor, e, i, n), Ar(s.ranges[a].head, e, i, n) - } else { - for (var l = 0; l < s.changes.length; ++l) { - var c = s.changes[l]; - if (i < c.from.line) c.from = O(c.from.line + n, c.from.ch), c.to = O(c.to.line + n, c.to.ch); - else if (e <= c.to.line) { - o = !1; - break - } - } - o || (t.splice(0, r + 1), r = 0) - } - } - } - - function Or(t, e) { - var i = e.from.line, - n = e.to.line, - r = e.text.length - (n - i) - 1; - Nr(t.done, i, n, r), Nr(t.undone, i, n, r) - } - - function Ir(t, e, i, n) { - var r = e, - s = e; - return "number" == typeof e ? s = T(t, F(t, e)) : r = $(e), null == r ? null : (n(s, r) && t.cm && mn(t.cm, r, i), s) - } - - function Dr(t) { - var e = this; - this.lines = t, this.parent = null; - for (var i = 0, n = 0; n < t.length; ++n) t[n].parent = e, i += t[n].height; - this.height = i - } - - function _r(t) { - var e = this; - this.children = t; - for (var i = 0, n = 0, r = 0; r < t.length; ++r) { - var s = t[r]; - i += s.chunkSize(), n += s.height, s.parent = e - } - this.size = i, this.height = n, this.parent = null - } - - function zr(t, e, i) { - var n = this; - if (i) - for (var r in i) i.hasOwnProperty(r) && (n[r] = i[r]); - this.doc = t, this.node = e - } - - function Fr(t, e, i) { - pt(e) < (t.curOp && t.curOp.scrollTop || t.doc.scrollTop) && Qi(t, null, i) - } - - function Hr(t, e, i, n) { - var r = new zr(t, i, n), - s = t.cm; - return s && r.noHScroll && (s.display.alignWidgets = !0), Ir(t, e, "widget", function(e) { - var i = e.widgets || (e.widgets = []); - if (null == r.insertAt ? i.push(r) : i.splice(Math.min(i.length - 1, Math.max(0, r.insertAt)), 0, r), r.line = e, s && !dt(t, e)) { - var n = pt(e) < t.scrollTop; - P(e, e.height + Fe(r)), n && Qi(s, null, r.height), s.curOp.forceUpdate = !0 - } - return !0 - }), r - } - - function Rr(t, e) { - this.lines = [], this.type = e, this.doc = t, this.id = ++sa - } - - function Vr(t, e, i, r, s) { - if (r && r.shared) return Br(t, e, i, r, s); - if (t.cm && !t.cm.curOp) return dn(t.cm, Vr)(t, e, i, r, s); - var o = new Rr(t, s), - a = I(e, i); - if (r && c(r, o, !1), a > 0 || 0 == a && !1 !== o.clearWhenEmpty) return o; - if (o.replacedWith && (o.collapsed = !0, o.widgetNode = n("span", [o.replacedWith], "CodeMirror-widget"), r.handleMouseEvents || o.widgetNode.setAttribute("cm-ignore-events", "true"), r.insertLeft && (o.widgetNode.insertLeft = !0)), o.collapsed) { - if (at(t, e.line, e, i, o) || e.line != i.line && at(t, i.line, e, i, o)) throw new Error("Inserting collapsed marker partially overlapping an existing one"); - B() - } - o.addToHistory && Zn(t, { - from: e, - to: i, - origin: "markText" - }, t.sel, NaN); - var l, u = e.line, - h = t.cm; - if (t.iter(u, i.line + 1, function(t) { - h && o.collapsed && !h.options.lineWrapping && lt(t) == h.display.maxLine && (l = !0), o.collapsed && u != e.line && P(t, 0), K(t, new j(o, u == e.line ? e.ch : null, u == i.line ? i.ch : null)), ++u - }), o.collapsed && t.iter(e.line, i.line + 1, function(e) { - dt(t, e) && P(e, 0) - }), o.clearOnEnter && Ho(o, "beforeCursorEnter", function() { - return o.clear() - }), o.readOnly && (W(), (t.history.done.length || t.history.undone.length) && t.clearHistory()), o.collapsed && (o.id = ++sa, o.atomic = !0), h) { - if (l && (h.curOp.updateMaxLine = !0), o.collapsed) gn(h, e.line, i.line + 1); - else if (o.className || o.title || o.startStyle || o.endStyle || o.css) - for (var d = e.line; d <= i.line; d++) mn(h, d, "text"); - o.atomic && vr(h.doc), Se(h, "markerAdded", h, o) - } - return o - } - - function Wr(t, e) { - var i = this; - this.markers = t, this.primary = e; - for (var n = 0; n < t.length; ++n) t[n].parent = i - } - - function Br(t, e, i, n, r) { - n = c(n), n.shared = !1; - var s = [Vr(t, e, i, n, r)], - o = s[0], - a = n.widgetNode; - return qn(t, function(t) { - a && (n.widgetNode = a.cloneNode(!0)), s.push(Vr(t, H(t, e), H(t, i), n, r)); - for (var l = 0; l < t.linked.length; ++l) - if (t.linked[l].isParent) return; - o = g(s) - }), new Wr(s, o) - } - - function jr(t) { - return t.findMarks(O(t.first, 0), t.clipPos(O(t.lastLine())), function(t) { - return t.parent - }) - } - - function Ur(t, e) { - for (var i = 0; i < e.length; i++) { - var n = e[i], - r = n.find(), - s = t.clipPos(r.from), - o = t.clipPos(r.to); - if (I(s, o)) { - var a = Vr(t, s, o, n.primary, n.primary.type); - n.markers.push(a), a.parent = n - } - } - } - - function qr(t) { - for (var e = 0; e < t.length; e++) ! function(e) { - var i = t[e], - n = [i.primary.doc]; - qn(i.primary.doc, function(t) { - return n.push(t) - }); - for (var r = 0; r < i.markers.length; r++) { - var s = i.markers[r]; - 1 == d(n, s.doc) && (s.parent = null, i.markers.splice(r--, 1)) - } - }(e) - } - - function Kr(t) { - var e = this; - if (Xr(e), !At(e, t) && !He(e.display, t)) { - Dt(t), no && (la = +new Date); - var i = Ci(e, t, !0), - n = t.dataTransfer.files; - if (i && !e.isReadOnly()) - if (n && n.length && window.FileReader && window.File) - for (var r = n.length, s = Array(r), o = 0, a = 0; a < r; ++a) ! function(t, n) { - if (!e.options.allowDropFileTypes || -1 != d(e.options.allowDropFileTypes, t.type)) { - var a = new FileReader; - a.onload = dn(e, function() { - var t = a.result; - if (/[\x00-\x08\x0e-\x1f]{2}/.test(t) && (t = ""), s[n] = t, ++o == r) { - i = H(e.doc, i); - var l = { - from: i, - to: i, - text: e.doc.splitLines(s.join(e.doc.lineSeparator())), - origin: "paste" - }; - Sr(e.doc, l), fr(e.doc, _n(i, zn(l))) - } - }), a.readAsText(t) - } - }(n[a], a); - else { - if (e.state.draggingText && e.doc.sel.contains(i) > -1) return e.state.draggingText(t), void setTimeout(function() { - return e.display.input.focus() - }, 20); - try { - var l = t.dataTransfer.getData("Text"); - if (l) { - var c; - if (e.state.draggingText && !e.state.draggingText.copy && (c = e.listSelections()), gr(e.doc, _n(i, i)), c) - for (var u = 0; u < c.length; ++u) Lr(e.doc, "", c[u].anchor, c[u].head, "drag"); - e.replaceSelection(l, "around", "paste"), e.display.input.focus() - } - } catch (t) {} - } - } - } - - function Gr(t, e) { - if (no && (!t.state.draggingText || +new Date - la < 100)) return void Ft(e); - if (!At(t, e) && !He(t.display, e) && (e.dataTransfer.setData("Text", t.getSelection()), e.dataTransfer.effectAllowed = "copyMove", e.dataTransfer.setDragImage && !co)) { - var i = n("img", null, null, "position: fixed; left: 0; top: 0;"); - i.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", lo && (i.width = i.height = 1, t.display.wrapper.appendChild(i), i._top = i.offsetTop), e.dataTransfer.setDragImage(i, 0, 0), lo && i.parentNode.removeChild(i) - } - } - - function Yr(t, e) { - var r = Ci(t, e); - if (r) { - var s = document.createDocumentFragment(); - Mi(t, r, s), t.display.dragCursor || (t.display.dragCursor = n("div", null, "CodeMirror-cursors CodeMirror-dragcursors"), t.display.lineSpace.insertBefore(t.display.dragCursor, t.display.cursorDiv)), i(t.display.dragCursor, s) - } - } - - function Xr(t) { - t.display.dragCursor && (t.display.lineSpace.removeChild(t.display.dragCursor), t.display.dragCursor = null) - } - - function Jr(t) { - if (document.body.getElementsByClassName) - for (var e = document.body.getElementsByClassName("CodeMirror"), i = 0; i < e.length; i++) { - var n = e[i].CodeMirror; - n && t(n) - } - } - - function Zr() { - ca || (Qr(), ca = !0) - } - - function Qr() { - var t; - Ho(window, "resize", function() { - null == t && (t = setTimeout(function() { - t = null, Jr(ts) - }, 100)) - }), Ho(window, "blur", function() { - return Jr(Ni) - }) - } - - function ts(t) { - var e = t.display; - e.lastWrapHeight == e.wrapper.clientHeight && e.lastWrapWidth == e.wrapper.clientWidth || (e.cachedCharWidth = e.cachedTextHeight = e.cachedPaddingH = null, e.scrollbarsClipped = !1, t.setSize()) - } - - function es(t) { - var e = t.split(/-(?!$)/); - t = e[e.length - 1]; - for (var i, n, r, s, o = 0; o < e.length - 1; o++) { - var a = e[o]; - if (/^(cmd|meta|m)$/i.test(a)) s = !0; - else if (/^a(lt)?$/i.test(a)) i = !0; - else if (/^(c|ctrl|control)$/i.test(a)) n = !0; - else { - if (!/^s(hift)?$/i.test(a)) throw new Error("Unrecognized modifier name: " + a); - r = !0 - } - } - return i && (t = "Alt-" + t), n && (t = "Ctrl-" + t), s && (t = "Cmd-" + t), r && (t = "Shift-" + t), t - } - - function is(t) { - var e = {}; - for (var i in t) - if (t.hasOwnProperty(i)) { - var n = t[i]; - if (/^(name|fallthrough|(de|at)tach)$/.test(i)) continue; - if ("..." == n) { - delete t[i]; - continue - } - for (var r = m(i.split(" "), es), s = 0; s < r.length; s++) { - var o = void 0, - a = void 0; - s == r.length - 1 ? (a = r.join(" "), o = n) : (a = r.slice(0, s + 1).join(" "), o = "..."); - var l = e[a]; - if (l) { - if (l != o) throw new Error("Inconsistent bindings for " + a) - } else e[a] = o - } - delete t[i] - } - for (var c in e) t[c] = e[c]; - return t - } - - function ns(t, e, i, n) { - e = os(e); - var r = e.call ? e.call(t, n) : e[t]; - if (!1 === r) return "nothing"; - if ("..." === r) return "multi"; - if (null != r && i(r)) return "handled"; - if (e.fallthrough) { - if ("[object Array]" != Object.prototype.toString.call(e.fallthrough)) return ns(t, e.fallthrough, i, n); - for (var s = 0; s < e.fallthrough.length; s++) { - var o = ns(t, e.fallthrough[s], i, n); - if (o) return o - } - } - } - - function rs(t) { - var e = "string" == typeof t ? t : ua[t.keyCode]; - return "Ctrl" == e || "Alt" == e || "Shift" == e || "Mod" == e - } - - function ss(t, e) { - if (lo && 34 == t.keyCode && t.char) return !1; - var i = ua[t.keyCode], - n = i; - return null != n && !t.altGraphKey && (t.altKey && "Alt" != i && (n = "Alt-" + n), (xo ? t.metaKey : t.ctrlKey) && "Ctrl" != i && (n = "Ctrl-" + n), (xo ? t.ctrlKey : t.metaKey) && "Cmd" != i && (n = "Cmd-" + n), !e && t.shiftKey && "Shift" != i && (n = "Shift-" + n), n) - } - - function os(t) { - return "string" == typeof t ? pa[t] : t - } - - function as(t, e) { - for (var i = t.doc.sel.ranges, n = [], r = 0; r < i.length; r++) { - for (var s = e(i[r]); n.length && I(s.from, g(n).to) <= 0;) { - var o = n.pop(); - if (I(o.from, s.from) < 0) { - s.from = o.from; - break - } - } - n.push(s) - } - hn(t, function() { - for (var e = n.length - 1; e >= 0; e--) Lr(t.doc, "", n[e].from, n[e].to, "+delete"); - tn(t) - }) - } - - function ls(t, e) { - var i = T(t.doc, e), - n = lt(i); - n != i && (e = $(n)); - var r = Et(n); - return O(e, r ? r[0].level % 2 ? wt(n) : xt(n) : 0) - } - - function cs(t, e) { - for (var i, n = T(t.doc, e); i = ot(n);) n = i.find(1, !0).line, e = null; - var r = Et(n), - s = r ? r[0].level % 2 ? xt(n) : wt(n) : n.text.length; - return O(null == e ? $(n) : e, s) - } - - function us(t, e) { - var i = ls(t, e.line), - n = T(t.doc, i.line), - r = Et(n); - if (!r || 0 == r[0].level) { - var s = Math.max(0, n.text.search(/\S/)), - o = e.line == i.line && e.ch <= s && e.ch; - return O(i.line, o ? 0 : s) - } - return i - } - - function hs(t, e, i) { - if ("string" == typeof e && !(e = va[e])) return !1; - t.display.input.ensurePolled(); - var n = t.display.shift, - r = !1; - try { - t.isReadOnly() && (t.state.suppressEdits = !0), i && (t.display.shift = !1), r = e(t) != Eo - } finally { - t.display.shift = n, t.state.suppressEdits = !1 - } - return r - } - - function ds(t, e, i) { - for (var n = 0; n < t.state.keyMaps.length; n++) { - var r = ns(e, t.state.keyMaps[n], i, t); - if (r) return r - } - return t.options.extraKeys && ns(e, t.options.extraKeys, i, t) || ns(e, t.options.keyMap, i, t) - } - - function fs(t, e, i, n) { - var r = t.state.keySeq; - if (r) { - if (rs(e)) return "handled"; - ya.set(50, function() { - t.state.keySeq == r && (t.state.keySeq = null, t.display.input.reset()) - }), e = r + " " + e - } - var s = ds(t, e, n); - return "multi" == s && (t.state.keySeq = e), "handled" == s && Se(t, "keyHandled", t, e, i), "handled" != s && "multi" != s || (Dt(i), Pi(t)), r && !s && /\'$/.test(e) ? (Dt(i), !0) : !!s - } - - function ps(t, e) { - var i = ss(e, !0); - return !!i && (e.shiftKey && !t.state.keySeq ? fs(t, "Shift-" + i, e, function(e) { - return hs(t, e, !0) - }) || fs(t, i, e, function(e) { - if ("string" == typeof e ? /^go[A-Z]/.test(e) : e.motion) return hs(t, e) - }) : fs(t, i, e, function(e) { - return hs(t, e) - })) - } - - function gs(t, e, i) { - return fs(t, "'" + i + "'", e, function(e) { - return hs(t, e, !0) - }) - } - - function ms(t) { - var e = this; - if (e.curOp.focus = s(), !At(e, t)) { - no && ro < 11 && 27 == t.keyCode && (t.returnValue = !1); - var i = t.keyCode; - e.display.shift = 16 == i || t.shiftKey; - var n = ps(e, t); - lo && (ba = n ? i : null, !n && 88 == i && !Bo && (go ? t.metaKey : t.ctrlKey) && e.replaceSelection("", null, "cut")), 18 != i || /\bCodeMirror-crosshair\b/.test(e.display.lineDiv.className) || vs(e) - } - } - - function vs(t) { - function e(t) { - 18 != t.keyCode && t.altKey || (Co(i, "CodeMirror-crosshair"), $t(document, "keyup", e), $t(document, "mouseover", e)) - } - var i = t.display.lineDiv; - o(i, "CodeMirror-crosshair"), Ho(document, "keyup", e), Ho(document, "mouseover", e) - } - - function ys(t) { - 16 == t.keyCode && (this.doc.sel.shift = !1), At(this, t) - } - - function bs(t) { - var e = this; - if (!(He(e.display, t) || At(e, t) || t.ctrlKey && !t.altKey || go && t.metaKey)) { - var i = t.keyCode, - n = t.charCode; - if (lo && i == ba) return ba = null, void Dt(t); - if (!lo || t.which && !(t.which < 10) || !ps(e, t)) { - var r = String.fromCharCode(null == n ? i : n); - "\b" != r && (gs(e, t, r) || e.display.input.onKeyPress(t)) - } - } - } - - function xs(t) { - var e = this, - i = e.display; - if (!(At(e, t) || i.activeTouch && i.input.supportsTouch())) { - if (i.input.ensurePolled(), i.shift = t.shiftKey, He(i, t)) return void(so || (i.scroller.draggable = !1, setTimeout(function() { - return i.scroller.draggable = !0 - }, 100))); - if (!Ts(e, t)) { - var n = Ci(e, t); - switch (window.focus(), Rt(t)) { - case 1: - e.state.selectingText ? e.state.selectingText(t) : n ? ws(e, t, n) : Ht(t) == i.scroller && Dt(t); - break; - case 2: - so && (e.state.lastMiddleDown = +new Date), n && lr(e.doc, n), setTimeout(function() { - return i.input.focus() - }, 20), Dt(t); - break; - case 3: - wo ? Ms(e, t) : Li(e) - } - } - } - } - - function ws(t, e, i) { - no ? setTimeout(l($i, t), 0) : t.curOp.focus = s(); - var n, r = +new Date; - ma && ma.time > r - 400 && 0 == I(ma.pos, i) ? n = "triple" : ga && ga.time > r - 400 && 0 == I(ga.pos, i) ? (n = "double", ma = { - time: r, - pos: i - }) : (n = "single", ga = { - time: r, - pos: i - }); - var o, a = t.doc.sel, - c = go ? e.metaKey : e.ctrlKey; - t.options.dragDrop && Ro && !t.isReadOnly() && "single" == n && (o = a.contains(i)) > -1 && (I((o = a.ranges[o]).from(), i) < 0 || i.xRel > 0) && (I(o.to(), i) > 0 || i.xRel < 0) ? Cs(t, e, i, c) : ks(t, e, i, n, c) - } - - function Cs(t, e, i, n) { - var r = t.display, - s = +new Date, - o = dn(t, function(a) { - so && (r.scroller.draggable = !1), t.state.draggingText = !1, $t(document, "mouseup", o), $t(r.scroller, "drop", o), Math.abs(e.clientX - a.clientX) + Math.abs(e.clientY - a.clientY) < 10 && (Dt(a), !n && +new Date - 200 < s && lr(t.doc, i), so || no && 9 == ro ? setTimeout(function() { - document.body.focus(), r.input.focus() - }, 20) : r.input.focus()) - }); - so && (r.scroller.draggable = !0), t.state.draggingText = o, o.copy = go ? e.altKey : e.ctrlKey, r.scroller.dragDrop && r.scroller.dragDrop(), Ho(document, "mouseup", o), Ho(r.scroller, "drop", o) - } - - function ks(t, e, i, n, r) { - function o(e) { - if (0 != I(b, e)) - if (b = e, "rect" == n) { - for (var r = [], s = t.options.tabSize, o = u(T(h, i.line).text, i.ch, s), a = u(T(h, e.line).text, e.ch, s), l = Math.min(o, a), c = Math.max(o, a), m = Math.min(i.line, e.line), v = Math.min(t.lastLine(), Math.max(i.line, e.line)); m <= v; m++) { - var y = T(h, m).text, - x = f(y, l, s); - l == c ? r.push(new In(O(m, x), O(m, x))) : y.length > x && r.push(new In(O(m, x), O(m, f(y, c, s)))) - } - r.length || r.push(new In(i, i)), pr(h, Dn(g.ranges.slice(0, p).concat(r), p), { - origin: "*mouse", - scroll: !1 - }), t.scrollIntoView(e) - } else { - var w = d, - C = w.anchor, - k = e; - if ("single" != n) { - var S; - S = "double" == n ? t.findWordAt(e) : new In(O(e.line, 0), H(h, O(e.line + 1, 0))), I(S.anchor, C) > 0 ? (k = S.head, C = z(w.from(), S.anchor)) : (k = S.anchor, C = _(w.to(), S.head)) - } - var M = g.ranges.slice(0); - M[p] = new In(H(h, C), k), pr(h, Dn(M, p), $o) - } - } - - function a(e) { - var i = ++w, - r = Ci(t, e, !0, "rect" == n); - if (r) - if (0 != I(r, b)) { - t.curOp.focus = s(), o(r); - var l = zi(c, h); - (r.line >= l.to || r.line < l.from) && setTimeout(dn(t, function() { - w == i && a(e) - }), 150) - } else { - var u = e.clientY < x.top ? -20 : e.clientY > x.bottom ? 20 : 0; - u && setTimeout(dn(t, function() { - w == i && (c.scroller.scrollTop += u, a(e)) - }), 50) - } - } - - function l(e) { - t.state.selectingText = !1, w = 1 / 0, Dt(e), c.input.focus(), $t(document, "mousemove", C), $t(document, "mouseup", k), h.history.lastSelOrigin = null - } - var c = t.display, - h = t.doc; - Dt(e); - var d, p, g = h.sel, - m = g.ranges; - if (r && !e.shiftKey ? (p = h.sel.contains(i), d = p > -1 ? m[p] : new In(i, i)) : (d = h.sel.primary(), p = h.sel.primIndex), mo ? e.shiftKey && e.metaKey : e.altKey) n = "rect", r || (d = new In(i, i)), i = Ci(t, e, !0, !0), p = -1; - else if ("double" == n) { - var v = t.findWordAt(i); - d = t.display.shift || h.extend ? ar(h, d, v.anchor, v.head) : v - } else if ("triple" == n) { - var y = new In(O(i.line, 0), H(h, O(i.line + 1, 0))); - d = t.display.shift || h.extend ? ar(h, d, y.anchor, y.head) : y - } else d = ar(h, d, i); - r ? -1 == p ? (p = m.length, pr(h, Dn(m.concat([d]), p), { - scroll: !1, - origin: "*mouse" - })) : m.length > 1 && m[p].empty() && "single" == n && !e.shiftKey ? (pr(h, Dn(m.slice(0, p).concat(m.slice(p + 1)), 0), { - scroll: !1, - origin: "*mouse" - }), g = h.sel) : ur(h, p, d, $o) : (p = 0, pr(h, new On([d], 0), $o), g = h.sel); - var b = i, - x = c.wrapper.getBoundingClientRect(), - w = 0, - C = dn(t, function(t) { - Rt(t) ? a(t) : l(t) - }), - k = dn(t, l); - t.state.selectingText = k, Ho(document, "mousemove", C), Ho(document, "mouseup", k) - } - - function Ss(t, e, i, n) { - var r, s; - try { - r = e.clientX, s = e.clientY - } catch (e) { - return !1 - } - if (r >= Math.floor(t.display.gutters.getBoundingClientRect().right)) return !1; - n && Dt(e); - var o = t.display, - a = o.lineDiv.getBoundingClientRect(); - if (s > a.bottom || !Ot(t, i)) return zt(e); - s -= a.top - o.viewOffset; - for (var l = 0; l < t.options.gutters.length; ++l) { - var c = o.gutters.childNodes[l]; - if (c && c.getBoundingClientRect().right >= r) { - return Lt(t, i, t, L(t.doc, s), t.options.gutters[l], e), zt(e) - } - } - } - - function Ts(t, e) { - return Ss(t, e, "gutterClick", !0) - } - - function Ms(t, e) { - He(t.display, e) || Es(t, e) || At(t, e, "contextmenu") || t.display.input.onContextMenu(e) - } - - function Es(t, e) { - return !!Ot(t, "gutterContextMenu") && Ss(t, e, "gutterContextMenu", !1) - } - - function Ps(t) { - t.display.wrapper.className = t.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + t.options.theme.replace(/(^|\s)\s*/g, " cm-s-"), si(t) - } - - function $s(t) { - An(t), gn(t), setTimeout(function() { - return Oi(t) - }, 20) - } - - function Ls(t, e, i) { - if (!e != !(i && i != xa)) { - var n = t.display.dragFunctions, - r = e ? Ho : $t; - r(t.display.scroller, "dragstart", n.start), r(t.display.scroller, "dragenter", n.enter), r(t.display.scroller, "dragover", n.over), r(t.display.scroller, "dragleave", n.leave), r(t.display.scroller, "drop", n.drop) - } - } - - function As(t) { - t.options.lineWrapping ? (o(t.display.wrapper, "CodeMirror-wrap"), t.display.sizer.style.minWidth = "", t.display.sizerWidth = null) : (Co(t.display.wrapper, "CodeMirror-wrap"), mt(t)), wi(t), gn(t), si(t), setTimeout(function() { - return qi(t) - }, 100) - } - - function Ns(t, e) { - var i = this; - if (!(this instanceof Ns)) return new Ns(t, e); - this.options = e = e ? c(e) : {}, c(wa, e, !1), Nn(e); - var n = e.value; - "string" == typeof n && (n = new aa(n, e.mode, null, e.lineSeparator)), this.doc = n; - var r = new Ns.inputStyles[e.inputStyle](this), - s = this.display = new S(t, n, r); - s.wrapper.CodeMirror = this, An(this), Ps(this), e.lineWrapping && (this.display.wrapper.className += " CodeMirror-wrap"), e.autofocus && !po && s.input.focus(), Gi(this), this.state = { - keyMaps: [], - overlays: [], - modeGen: 0, - overwrite: !1, - delayingBlurEvent: !1, - focused: !1, - suppressEdits: !1, - pasteIncoming: !1, - cutIncoming: !1, - selectingText: !1, - draggingText: !1, - highlight: new h, - keySeq: null, - specialChars: null - }, no && ro < 11 && setTimeout(function() { - return i.display.input.reset(!0) - }, 20), Os(this), Zr(), nn(this), this.curOp.forceUpdate = !0, Kn(this, n), e.autofocus && !po || this.hasFocus() ? setTimeout(l(Ai, this), 20) : Ni(this); - for (var o in Ca) Ca.hasOwnProperty(o) && Ca[o](i, e[o], xa); - Ii(this), e.finishInit && e.finishInit(this); - for (var a = 0; a < ka.length; ++a) ka[a](i); - rn(this), so && e.lineWrapping && "optimizelegibility" == getComputedStyle(s.lineDiv).textRendering && (s.lineDiv.style.textRendering = "auto") - } - - function Os(t) { - function e() { - r.activeTouch && (s = setTimeout(function() { - return r.activeTouch = null - }, 1e3), o = r.activeTouch, o.end = +new Date) - } - - function i(t) { - if (1 != t.touches.length) return !1; - var e = t.touches[0]; - return e.radiusX <= 1 && e.radiusY <= 1 - } - - function n(t, e) { - if (null == e.left) return !0; - var i = e.left - t.left, - n = e.top - t.top; - return i * i + n * n > 400 - } - var r = t.display; - Ho(r.scroller, "mousedown", dn(t, xs)), no && ro < 11 ? Ho(r.scroller, "dblclick", dn(t, function(e) { - if (!At(t, e)) { - var i = Ci(t, e); - if (i && !Ts(t, e) && !He(t.display, e)) { - Dt(e); - var n = t.findWordAt(i); - lr(t.doc, n.anchor, n.head) - } - } - })) : Ho(r.scroller, "dblclick", function(e) { - return At(t, e) || Dt(e) - }), wo || Ho(r.scroller, "contextmenu", function(e) { - return Ms(t, e) - }); - var s, o = { - end: 0 - }; - Ho(r.scroller, "touchstart", function(e) { - if (!At(t, e) && !i(e)) { - r.input.ensurePolled(), clearTimeout(s); - var n = +new Date; - r.activeTouch = { - start: n, - moved: !1, - prev: n - o.end <= 300 ? o : null - }, 1 == e.touches.length && (r.activeTouch.left = e.touches[0].pageX, r.activeTouch.top = e.touches[0].pageY) - } - }), Ho(r.scroller, "touchmove", function() { - r.activeTouch && (r.activeTouch.moved = !0) - }), Ho(r.scroller, "touchend", function(i) { - var s = r.activeTouch; - if (s && !He(r, i) && null != s.left && !s.moved && new Date - s.start < 300) { - var o, a = t.coordsChar(r.activeTouch, "page"); - o = !s.prev || n(s, s.prev) ? new In(a, a) : !s.prev.prev || n(s, s.prev.prev) ? t.findWordAt(a) : new In(O(a.line, 0), H(t.doc, O(a.line + 1, 0))), t.setSelection(o.anchor, o.head), t.focus(), Dt(i) - } - e() - }), Ho(r.scroller, "touchcancel", e), Ho(r.scroller, "scroll", function() { - r.scroller.clientHeight && (Fi(t, r.scroller.scrollTop), Hi(t, r.scroller.scrollLeft, !0), Lt(t, "scroll", t)) - }), Ho(r.scroller, "mousewheel", function(e) { - return Wi(t, e) - }), Ho(r.scroller, "DOMMouseScroll", function(e) { - return Wi(t, e) - }), Ho(r.wrapper, "scroll", function() { - return r.wrapper.scrollTop = r.wrapper.scrollLeft = 0 - }), r.dragFunctions = { - enter: function(e) { - At(t, e) || Ft(e) - }, - over: function(e) { - At(t, e) || (Yr(t, e), Ft(e)) - }, - start: function(e) { - return Gr(t, e) - }, - drop: dn(t, Kr), - leave: function(e) { - At(t, e) || Xr(t) - } - }; - var a = r.input.getField(); - Ho(a, "keyup", function(e) { - return ys.call(t, e) - }), Ho(a, "keydown", dn(t, ms)), Ho(a, "keypress", dn(t, bs)), Ho(a, "focus", function(e) { - return Ai(t, e) - }), Ho(a, "blur", function(e) { - return Ni(t, e) - }) - } - - function Is(t, e, i, n) { - var r, s = t.doc; - null == i && (i = "add"), "smart" == i && (s.mode.indent ? r = te(t, e) : i = "prev"); - var o = t.options.tabSize, - a = T(s, e), - l = u(a.text, null, o); - a.stateAfter && (a.stateAfter = null); - var c, h = a.text.match(/^\s*/)[0]; - if (n || /\S/.test(a.text)) { - if ("smart" == i && ((c = s.mode.indent(r, a.text.slice(h.length), a.text)) == Eo || c > 150)) { - if (!n) return; - i = "prev" - } - } else c = 0, i = "not"; - "prev" == i ? c = e > s.first ? u(T(s, e - 1).text, null, o) : 0 : "add" == i ? c = l + t.options.indentUnit : "subtract" == i ? c = l - t.options.indentUnit : "number" == typeof i && (c = l + i), c = Math.max(0, c); - var d = "", - f = 0; - if (t.options.indentWithTabs) - for (var g = Math.floor(c / o); g; --g) f += o, d += "\t"; - if (f < c && (d += p(c - f)), d != h) return Lr(s, d, O(e, 0), O(e, h.length), "+input"), a.stateAfter = null, !0; - for (var m = 0; m < s.sel.ranges.length; m++) { - var v = s.sel.ranges[m]; - if (v.head.line == e && v.head.ch < h.length) { - var y = O(e, h.length); - ur(s, m, new In(y, y)); - break - } - } - } - - function Ds(t) { - Sa = t - } - - function _s(t, e, i, n, r) { - var s = t.doc; - t.display.shift = !1, n || (n = s.sel); - var o = t.state.pasteIncoming || "paste" == r, - a = Vo(e), - l = null; - if (o && n.ranges.length > 1) - if (Sa && Sa.text.join("\n") == e) { - if (n.ranges.length % Sa.text.length == 0) { - l = []; - for (var c = 0; c < Sa.text.length; c++) l.push(s.splitLines(Sa.text[c])) - } - } else a.length == n.ranges.length && (l = m(a, function(t) { - return [t] - })); - for (var u, h = n.ranges.length - 1; h >= 0; h--) { - var d = n.ranges[h], - f = d.from(), - p = d.to(); - d.empty() && (i && i > 0 ? f = O(f.line, f.ch - i) : t.state.overwrite && !o ? p = O(p.line, Math.min(T(s, p.line).text.length, p.ch + g(a).length)) : Sa && Sa.lineWise && Sa.text.join("\n") == e && (f = p = O(f.line, 0))), u = t.curOp.updateInput; - var v = { - from: f, - to: p, - text: l ? l[h % l.length] : a, - origin: r || (o ? "paste" : t.state.cutIncoming ? "cut" : "+input") - }; - Sr(t.doc, v), Se(t, "inputRead", t, v) - } - e && !o && Fs(t, e), tn(t), t.curOp.updateInput = u, t.curOp.typing = !0, t.state.pasteIncoming = t.state.cutIncoming = !1 - } - - function zs(t, e) { - var i = t.clipboardData && t.clipboardData.getData("Text"); - if (i) return t.preventDefault(), e.isReadOnly() || e.options.disableInput || hn(e, function() { - return _s(e, i, 0, null, "paste") - }), !0 - } - - function Fs(t, e) { - if (t.options.electricChars && t.options.smartIndent) - for (var i = t.doc.sel, n = i.ranges.length - 1; n >= 0; n--) { - var r = i.ranges[n]; - if (!(r.head.ch > 100 || n && i.ranges[n - 1].head.line == r.head.line)) { - var s = t.getModeAt(r.head), - o = !1; - if (s.electricChars) { - for (var a = 0; a < s.electricChars.length; a++) - if (e.indexOf(s.electricChars.charAt(a)) > -1) { - o = Is(t, r.head.line, "smart"); - break - } - } else s.electricInput && s.electricInput.test(T(t.doc, r.head.line).text.slice(0, r.head.ch)) && (o = Is(t, r.head.line, "smart")); - o && Se(t, "electricInput", t, r.head.line) - } - } - } - - function Hs(t) { - for (var e = [], i = [], n = 0; n < t.doc.sel.ranges.length; n++) { - var r = t.doc.sel.ranges[n].head.line, - s = { - anchor: O(r, 0), - head: O(r + 1, 0) - }; - i.push(s), e.push(t.getRange(s.anchor, s.head)) - } - return { - text: e, - ranges: i - } - } - - function Rs(t, e) { - t.setAttribute("autocorrect", "off"), t.setAttribute("autocapitalize", "off"), t.setAttribute("spellcheck", !!e) - } - - function Vs() { - var t = n("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"), - e = n("div", [t], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - return so ? t.style.width = "1000px" : t.setAttribute("wrap", "off"), fo && (t.style.border = "1px solid black"), Rs(t), e - } - - function Ws(t, e, i, n, r) { - function s() { - var e = a + i; - return !(e < t.first || e >= t.first + t.size) && (a = e, u = T(t, e)) - } - - function o(t) { - var e = (r ? Tt : Mt)(u, l, i, !0); - if (null == e) { - if (t || !s()) return !1; - l = r ? (i < 0 ? wt : xt)(u) : i < 0 ? u.text.length : 0 - } else l = e; - return !0 - } - var a = e.line, - l = e.ch, - c = i, - u = T(t, a); - if ("char" == n) o(); - else if ("column" == n) o(!0); - else if ("word" == n || "group" == n) - for (var h = null, d = "group" == n, f = t.cm && t.cm.getHelper(e, "wordChars"), p = !0; !(i < 0) || o(!p); p = !1) { - var g = u.text.charAt(l) || "\n", - m = w(g, f) ? "w" : d && "\n" == g ? "n" : !d || /\s/.test(g) ? null : "p"; - if (!d || p || m || (m = "s"), h && h != m) { - i < 0 && (i = 1, o()); - break - } - if (m && (h = m), i > 0 && !o(!p)) break - } - var v = xr(t, O(a, l), e, c, !0); - return I(e, v) || (v.hitSide = !0), v - } - - function Bs(t, e, i, n) { - var r, s = t.doc, - o = e.left; - if ("page" == n) { - var a = Math.min(t.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight), - l = Math.max(a - .5 * mi(t.display), 3); - r = (i > 0 ? e.bottom : e.top) + i * l - } else "line" == n && (r = i > 0 ? e.bottom + 3 : e.top - 3); - for (var c; c = pi(t, o, r), c.outside;) { - if (i < 0 ? r <= 0 : r >= s.height) { - c.hitSide = !0; - break - } - r += 5 * i - } - return c - } - - function js(t) { - this.cm = t, this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null, this.polling = new h, this.composing = null, this.gracePeriod = !1, this.readDOMTimeout = null - } - - function Us(t, e) { - var i = Xe(t, e.line); - if (!i || i.hidden) return null; - var n = T(t.doc, e.line), - r = Ke(i, n, e.line), - s = Et(n), - o = "left"; - if (s) { - o = kt(s, e.ch) % 2 ? "right" : "left" - } - var a = Qe(r.map, e.ch, o); - return a.offset = "right" == a.collapse ? a.end : a.start, a - } - - function qs(t, e) { - return e && (t.bad = !0), t - } - - function Ks(t, e, i, n, r) { - function s(t) { - return function(e) { - return e.id == t - } - } - - function o(e) { - if (1 == e.nodeType) { - var i = e.getAttribute("cm-text"); - if (null != i) return void(a += "" == i ? e.textContent.replace(/\u200b/g, "") : i); - var u, h = e.getAttribute("cm-marker"); - if (h) { - var d = t.findMarks(O(n, 0), O(r + 1, 0), s(+h)); - return void(d.length && (u = d[0].find()) && (a += M(t.doc, u.from, u.to).join(c))) - } - if ("false" == e.getAttribute("contenteditable")) return; - for (var f = 0; f < e.childNodes.length; f++) o(e.childNodes[f]); - /^(pre|div|p)$/i.test(e.nodeName) && (l = !0) - } else if (3 == e.nodeType) { - var p = e.nodeValue; - if (!p) return; - l && (a += c, l = !1), a += p - } - } - for (var a = "", l = !1, c = t.doc.lineSeparator(); o(e), e != i;) e = e.nextSibling; - return a - } - - function Gs(t, e, i) { - var n; - if (e == t.display.lineDiv) { - if (!(n = t.display.lineDiv.childNodes[i])) return qs(t.clipPos(O(t.display.viewTo - 1)), !0); - e = null, i = 0 - } else - for (n = e;; n = n.parentNode) { - if (!n || n == t.display.lineDiv) return null; - if (n.parentNode && n.parentNode == t.display.lineDiv) break - } - for (var r = 0; r < t.display.view.length; r++) { - var s = t.display.view[r]; - if (s.node == n) return Ys(s, e, i) - } - } - - function Ys(t, e, i) { - function n(e, i, n) { - for (var r = -1; r < (h ? h.length : 0); r++) - for (var s = r < 0 ? u.map : h[r], o = 0; o < s.length; o += 3) { - var a = s[o + 2]; - if (a == e || a == i) { - var l = $(r < 0 ? t.line : t.rest[r]), - c = s[o] + n; - return (n < 0 || a != e) && (c = s[o + (n ? 1 : 0)]), O(l, c) - } - } - } - var s = t.text.firstChild, - o = !1; - if (!e || !r(s, e)) return qs(O($(t.line), 0), !0); - if (e == s && (o = !0, e = s.childNodes[i], i = 0, !e)) { - var a = t.rest ? g(t.rest) : t.line; - return qs(O($(a), a.text.length), o) - } - var l = 3 == e.nodeType ? e : null, - c = e; - for (l || 1 != e.childNodes.length || 3 != e.firstChild.nodeType || (l = e.firstChild, i && (i = l.nodeValue.length)); c.parentNode != s;) c = c.parentNode; - var u = t.measure, - h = u.maps, - d = n(l, c, i); - if (d) return qs(d, o); - for (var f = c.nextSibling, p = l ? l.nodeValue.length - i : 0; f; f = f.nextSibling) { - if (d = n(f, f.firstChild, 0)) return qs(O(d.line, d.ch - p), o); - p += f.textContent.length - } - for (var m = c.previousSibling, v = i; m; m = m.previousSibling) { - if (d = n(m, m.firstChild, -1)) return qs(O(d.line, d.ch + v), o); - v += m.textContent.length - } - } - - function Xs(t) { - this.cm = t, this.prevInput = "", this.pollingFast = !1, this.polling = new h, this.inaccurateSelection = !1, this.hasSelection = !1, this.composing = null - } - - function Js(t, e) { - function i() { - t.value = l.getValue() - } - if (e = e ? c(e) : {}, e.value = t.value, !e.tabindex && t.tabIndex && (e.tabindex = t.tabIndex), !e.placeholder && t.placeholder && (e.placeholder = t.placeholder), null == e.autofocus) { - var n = s(); - e.autofocus = n == t || null != t.getAttribute("autofocus") && n == document.body - } - var r; - if (t.form && (Ho(t.form, "submit", i), !e.leaveSubmitMethodAlone)) { - var o = t.form; - r = o.submit; - try { - var a = o.submit = function() { - i(), o.submit = r, o.submit(), o.submit = a - } - } catch (t) {} - } - e.finishInit = function(e) { - e.save = i, e.getTextArea = function() { - return t - }, e.toTextArea = function() { - e.toTextArea = isNaN, i(), t.parentNode.removeChild(e.getWrapperElement()), t.style.display = "", t.form && ($t(t.form, "submit", i), "function" == typeof t.form.submit && (t.form.submit = r)) - } - }, t.style.display = "none"; - var l = Ns(function(e) { - return t.parentNode.insertBefore(e, t.nextSibling) - }, e); - return l - } - var Zs = navigator.userAgent, - Qs = navigator.platform, - to = /gecko\/\d/i.test(Zs), - eo = /MSIE \d/.test(Zs), - io = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Zs), - no = eo || io, - ro = no && (eo ? document.documentMode || 6 : io[1]), - so = /WebKit\//.test(Zs), - oo = so && /Qt\/\d+\.\d+/.test(Zs), - ao = /Chrome\//.test(Zs), - lo = /Opera\//.test(Zs), - co = /Apple Computer/.test(navigator.vendor), - uo = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Zs), - ho = /PhantomJS/.test(Zs), - fo = /AppleWebKit/.test(Zs) && /Mobile\/\w+/.test(Zs), - po = fo || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Zs), - go = fo || /Mac/.test(Qs), - mo = /\bCrOS\b/.test(Zs), - vo = /win/i.test(Qs), - yo = lo && Zs.match(/Version\/(\d*\.\d*)/); - yo && (yo = Number(yo[1])), yo && yo >= 15 && (lo = !1, so = !0); - var bo, xo = go && (oo || lo && (null == yo || yo < 12.11)), - wo = to || no && ro >= 9, - Co = function(e, i) { - var n = e.className, - r = t(i).exec(n); - if (r) { - var s = n.slice(r.index + r[0].length); - e.className = n.slice(0, r.index) + (s ? r[1] + s : "") - } - }; - bo = document.createRange ? function(t, e, i, n) { - var r = document.createRange(); - return r.setEnd(n || t, i), r.setStart(t, e), r - } : function(t, e, i) { - var n = document.body.createTextRange(); - try { - n.moveToElementText(t.parentNode) - } catch (t) { - return n - } - return n.collapse(!0), n.moveEnd("character", i), n.moveStart("character", e), n - }; - var ko = function(t) { - t.select() - }; - fo ? ko = function(t) { - t.selectionStart = 0, t.selectionEnd = t.value.length - } : no && (ko = function(t) { - try { - t.select() - } catch (t) {} - }), h.prototype.set = function(t, e) { - clearTimeout(this.id), this.id = setTimeout(e, t) - }; - var So, To, Mo = 30, - Eo = { - toString: function() { - return "CodeMirror.Pass" - } - }, - Po = { - scroll: !1 - }, - $o = { - origin: "*mouse" - }, - Lo = { - origin: "+move" - }, - Ao = [""], - No = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/, - Oo = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/, - Io = !1, - Do = !1, - _o = null, - zo = function() { - function t(t) { - return t <= 247 ? i.charAt(t) : 1424 <= t && t <= 1524 ? "R" : 1536 <= t && t <= 1773 ? n.charAt(t - 1536) : 1774 <= t && t <= 2220 ? "r" : 8192 <= t && t <= 8203 ? "w" : 8204 == t ? "b" : "L" - } - - function e(t, e, i) { - this.level = t, this.from = e, this.to = i - } - var i = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN", - n = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm", - r = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/, - s = /[stwN]/, - o = /[LRr]/, - a = /[Lb1n]/, - l = /[1n]/; - return function(i) { - if (!r.test(i)) return !1; - for (var n = i.length, c = [], u = 0; u < n; ++u) c.push(t(i.charCodeAt(u))); - for (var h = 0, d = "L"; h < n; ++h) { - var f = c[h]; - "m" == f ? c[h] = d : d = f - } - for (var p = 0, m = "L"; p < n; ++p) { - var v = c[p]; - "1" == v && "r" == m ? c[p] = "n" : o.test(v) && (m = v, "r" == v && (c[p] = "R")) - } - for (var y = 1, b = c[0]; y < n - 1; ++y) { - var x = c[y]; - "+" == x && "1" == b && "1" == c[y + 1] ? c[y] = "1" : "," != x || b != c[y + 1] || "1" != b && "n" != b || (c[y] = b), b = x - } - for (var w = 0; w < n; ++w) { - var C = c[w]; - if ("," == C) c[w] = "N"; - else if ("%" == C) { - var k = void 0; - for (k = w + 1; k < n && "%" == c[k]; ++k); - for (var S = w && "!" == c[w - 1] || k < n && "1" == c[k] ? "1" : "N", T = w; T < k; ++T) c[T] = S; - w = k - 1 - } - } - for (var M = 0, E = "L"; M < n; ++M) { - var P = c[M]; - "L" == E && "1" == P ? c[M] = "L" : o.test(P) && (E = P) - } - for (var $ = 0; $ < n; ++$) - if (s.test(c[$])) { - var L = void 0; - for (L = $ + 1; L < n && s.test(c[L]); ++L); - for (var A = "L" == ($ ? c[$ - 1] : "L"), N = "L" == (L < n ? c[L] : "L"), O = A || N ? "L" : "R", I = $; I < L; ++I) c[I] = O; - $ = L - 1 - } - for (var D, _ = [], z = 0; z < n;) - if (a.test(c[z])) { - var F = z; - for (++z; z < n && a.test(c[z]); ++z); - _.push(new e(0, F, z)) - } else { - var H = z, - R = _.length; - for (++z; z < n && "L" != c[z]; ++z); - for (var V = H; V < z;) - if (l.test(c[V])) { - H < V && _.splice(R, 0, new e(1, H, V)); - var W = V; - for (++V; V < z && l.test(c[V]); ++V); - _.splice(R, 0, new e(2, W, V)), H = V - } else ++V; - H < z && _.splice(R, 0, new e(1, H, z)) - } - return 1 == _[0].level && (D = i.match(/^\s+/)) && (_[0].from = D[0].length, _.unshift(new e(0, 0, D[0].length))), 1 == g(_).level && (D = i.match(/\s+$/)) && (g(_).to -= D[0].length, _.push(new e(0, n - D[0].length, n))), 2 == _[0].level && _.unshift(new e(1, _[0].to, _[0].to)), _[0].level != g(_).level && _.push(new e(_[0].level, n, n)), _ - } - }(), - Fo = [], - Ho = function(t, e, i) { - if (t.addEventListener) t.addEventListener(e, i, !1); - else if (t.attachEvent) t.attachEvent("on" + e, i); - else { - var n = t._handlers || (t._handlers = {}); - n[e] = (n[e] || Fo).concat(i) - } - }, - Ro = function() { - if (no && ro < 9) return !1; - var t = n("div"); - return "draggable" in t || "dragDrop" in t - }(), - Vo = 3 != "\n\nb".split(/\n/).length ? function(t) { - for (var e = 0, i = [], n = t.length; e <= n;) { - var r = t.indexOf("\n", e); - 1 == r && (r = t.length); - var s = t.slice(e, "\r" == t.charAt(r - 1) ? r - 1 : r), - o = s.indexOf("\r"); - 1 != o ? (i.push(s.slice(0, o)), e += o + 1) : (i.push(s), e = r + 1) - } - return i - } : function(t) { - return t.split(/\r\n?|\n/) - }, - Wo = window.getSelection ? function(t) { - try { - return t.selectionStart != t.selectionEnd - } catch (t) { - return !1 - } - } : function(t) { - var e; - try { - e = t.ownerDocument.selection.createRange() - } catch (t) {} - return !(!e || e.parentElement() != t) && 0 != e.compareEndPoints("StartToEnd", e) - }, - Bo = function() { - var t = n("div"); - return "oncopy" in t || (t.setAttribute("oncopy", "return;"), "function" == typeof t.oncopy) - }(), - jo = null, - Uo = {}, - qo = {}, - Ko = {}, - Go = function(t, e) { - this.pos = this.start = 0, this.string = t, this.tabSize = e || 8, this.lastColumnPos = this.lastColumnValue = 0, this.lineStart = 0 - }; - Go.prototype = { - eol: function() { - return this.pos >= this.string.length - }, - sol: function() { - return this.pos == this.lineStart - }, - peek: function() { - return this.string.charAt(this.pos) || void 0 - }, - next: function() { - if (this.pos < this.string.length) return this.string.charAt(this.pos++) - }, - eat: function(t) { - var e = this.string.charAt(this.pos); - if ("string" == typeof t ? e == t : e && (t.test ? t.test(e) : t(e))) return ++this.pos, e - }, - eatWhile: function(t) { - for (var e = this.pos; this.eat(t);); - return this.pos > e - }, - eatSpace: function() { - for (var t = this, e = this.pos; - /[\s\u00a0]/.test(this.string.charAt(this.pos));) ++t.pos; - return this.pos > e - }, - skipToEnd: function() { - this.pos = this.string.length - }, - skipTo: function(t) { - var e = this.string.indexOf(t, this.pos); - if (e > -1) return this.pos = e, !0 - }, - backUp: function(t) { - this.pos -= t - }, - column: function() { - return this.lastColumnPos < this.start && (this.lastColumnValue = u(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue), this.lastColumnPos = this.start), this.lastColumnValue - (this.lineStart ? u(this.string, this.lineStart, this.tabSize) : 0) - }, - indentation: function() { - return u(this.string, null, this.tabSize) - (this.lineStart ? u(this.string, this.lineStart, this.tabSize) : 0) - }, - match: function(t, e, i) { - if ("string" != typeof t) { - var n = this.string.slice(this.pos).match(t); - return n && n.index > 0 ? null : (n && !1 !== e && (this.pos += n[0].length), n) - } - var r = function(t) { - return i ? t.toLowerCase() : t - }; - if (r(this.string.substr(this.pos, t.length)) == r(t)) return !1 !== e && (this.pos += t.length), !0 - }, - current: function() { - return this.string.slice(this.start, this.pos) - }, - hideFirstChars: function(t, e) { - this.lineStart += t; - try { - return e() - } finally { - this.lineStart -= t - } - } - }, It(le), le.prototype.lineNo = function() { - return $(this) - }; - var Yo, Xo = {}, - Jo = {}, - Zo = null, - Qo = null, - ta = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }, - ea = 0, - ia = null; - no ? ia = -.53 : to ? ia = 15 : ao ? ia = -.7 : co && (ia = -1 / 3), ji.prototype = c({ - update: function(t) { - var e = t.scrollWidth > t.clientWidth + 1, - i = t.scrollHeight > t.clientHeight + 1, - n = t.nativeBarWidth; - if (i) { - this.vert.style.display = "block", this.vert.style.bottom = e ? n + "px" : "0"; - var r = t.viewHeight - (e ? n : 0); - this.vert.firstChild.style.height = Math.max(0, t.scrollHeight - t.clientHeight + r) + "px" - } else this.vert.style.display = "", this.vert.firstChild.style.height = "0"; - if (e) { - this.horiz.style.display = "block", this.horiz.style.right = i ? n + "px" : "0", this.horiz.style.left = t.barLeft + "px"; - var s = t.viewWidth - t.barLeft - (i ? n : 0); - this.horiz.firstChild.style.width = t.scrollWidth - t.clientWidth + s + "px" - } else this.horiz.style.display = "", this.horiz.firstChild.style.width = "0"; - return !this.checkedZeroWidth && t.clientHeight > 0 && (0 == n && this.zeroWidthHack(), this.checkedZeroWidth = !0), { - right: i ? n : 0, - bottom: e ? n : 0 - } - }, - setScrollLeft: function(t) { - this.horiz.scrollLeft != t && (this.horiz.scrollLeft = t), this.disableHoriz && this.enableZeroWidthBar(this.horiz, this.disableHoriz) - }, - setScrollTop: function(t) { - this.vert.scrollTop != t && (this.vert.scrollTop = t), this.disableVert && this.enableZeroWidthBar(this.vert, this.disableVert) - }, - zeroWidthHack: function() { - var t = go && !uo ? "12px" : "18px"; - this.horiz.style.height = this.vert.style.width = t, this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none", this.disableHoriz = new h, this.disableVert = new h - }, - enableZeroWidthBar: function(t, e) { - function i() { - var n = t.getBoundingClientRect(); - document.elementFromPoint(n.left + 1, n.bottom - 1) != t ? t.style.pointerEvents = "none" : e.set(1e3, i) - } - t.style.pointerEvents = "auto", e.set(1e3, i) - }, - clear: function() { - var t = this.horiz.parentNode; - t.removeChild(this.horiz), t.removeChild(this.vert) - } - }, ji.prototype), Ui.prototype = c({ - update: function() { - return { - bottom: 0, - right: 0 - } - }, - setScrollLeft: function() {}, - setScrollTop: function() {}, - clear: function() {} - }, Ui.prototype); - var na = { - native: ji, - null: Ui - }, - ra = 0; - kn.prototype.signal = function(t, e) { - Ot(t, e) && this.events.push(arguments) - }, kn.prototype.finish = function() { - for (var t = this, e = 0; e < this.events.length; e++) Lt.apply(null, t.events[e]) - }, On.prototype = { - primary: function() { - return this.ranges[this.primIndex] - }, - equals: function(t) { - var e = this; - if (t == this) return !0; - if (t.primIndex != this.primIndex || t.ranges.length != this.ranges.length) return !1; - for (var i = 0; i < this.ranges.length; i++) { - var n = e.ranges[i], - r = t.ranges[i]; - if (0 != I(n.anchor, r.anchor) || 0 != I(n.head, r.head)) return !1 - } - return !0 - }, - deepCopy: function() { - for (var t = this, e = [], i = 0; i < this.ranges.length; i++) e[i] = new In(D(t.ranges[i].anchor), D(t.ranges[i].head)); - return new On(e, this.primIndex) - }, - somethingSelected: function() { - for (var t = this, e = 0; e < this.ranges.length; e++) - if (!t.ranges[e].empty()) return !0; - return !1 - }, - contains: function(t, e) { - var i = this; - e || (e = t); - for (var n = 0; n < this.ranges.length; n++) { - var r = i.ranges[n]; - if (I(e, r.from()) >= 0 && I(t, r.to()) <= 0) return n - } - return -1 - } - }, In.prototype = { - from: function() { - return z(this.anchor, this.head) - }, - to: function() { - return _(this.anchor, this.head) - }, - empty: function() { - return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch - } - }, Dr.prototype = { - chunkSize: function() { - return this.lines.length - }, - removeInner: function(t, e) { - for (var i = this, n = t, r = t + e; n < r; ++n) { - var s = i.lines[n]; - i.height -= s.height, ue(s), Se(s, "delete") - } - this.lines.splice(t, e) - }, - collapse: function(t) { - t.push.apply(t, this.lines) - }, - insertInner: function(t, e, i) { - var n = this; - this.height += i, this.lines = this.lines.slice(0, t).concat(e).concat(this.lines.slice(t)); - for (var r = 0; r < e.length; ++r) e[r].parent = n - }, - iterN: function(t, e, i) { - for (var n = this, r = t + e; t < r; ++t) - if (i(n.lines[t])) return !0 - } - }, _r.prototype = { - chunkSize: function() { - return this.size - }, - removeInner: function(t, e) { - var i = this; - this.size -= e; - for (var n = 0; n < this.children.length; ++n) { - var r = i.children[n], - s = r.chunkSize(); - if (t < s) { - var o = Math.min(e, s - t), - a = r.height; - if (r.removeInner(t, o), i.height -= a - r.height, s == o && (i.children.splice(n--, 1), r.parent = null), 0 == (e -= o)) break; - t = 0 - } else t -= s - } - if (this.size - e < 25 && (this.children.length > 1 || !(this.children[0] instanceof Dr))) { - var l = []; - this.collapse(l), this.children = [new Dr(l)], this.children[0].parent = this - } - }, - collapse: function(t) { - for (var e = this, i = 0; i < this.children.length; ++i) e.children[i].collapse(t) - }, - insertInner: function(t, e, i) { - var n = this; - this.size += e.length, this.height += i; - for (var r = 0; r < this.children.length; ++r) { - var s = n.children[r], - o = s.chunkSize(); - if (t <= o) { - if (s.insertInner(t, e, i), s.lines && s.lines.length > 50) { - for (var a = s.lines.length % 25 + 25, l = a; l < s.lines.length;) { - var c = new Dr(s.lines.slice(l, l += 25)); - s.height -= c.height, n.children.splice(++r, 0, c), c.parent = n - } - s.lines = s.lines.slice(0, a), n.maybeSpill() - } - break - } - t -= o - } - }, - maybeSpill: function() { - if (!(this.children.length <= 10)) { - var t = this; - do { - var e = t.children.splice(t.children.length - 5, 5), - i = new _r(e); - if (t.parent) { - t.size -= i.size, t.height -= i.height; - var n = d(t.parent.children, t); - t.parent.children.splice(n + 1, 0, i) - } else { - var r = new _r(t.children); - r.parent = t, t.children = [r, i], t = r - } - i.parent = t.parent - } while (t.children.length > 10); - t.parent.maybeSpill() - } - }, - iterN: function(t, e, i) { - for (var n = this, r = 0; r < this.children.length; ++r) { - var s = n.children[r], - o = s.chunkSize(); - if (t < o) { - var a = Math.min(e, o - t); - if (s.iterN(t, a, i)) return !0; - if (0 == (e -= a)) break; - t = 0 - } else t -= o - } - } - }, It(zr), zr.prototype.clear = function() { - var t = this, - e = this.doc.cm, - i = this.line.widgets, - n = this.line, - r = $(n); - if (null != r && i) { - for (var s = 0; s < i.length; ++s) i[s] == t && i.splice(s--, 1); - i.length || (n.widgets = null); - var o = Fe(this); - P(n, Math.max(0, n.height - o)), e && hn(e, function() { - Fr(e, n, -o), mn(e, r, "widget") - }) - } - }, zr.prototype.changed = function() { - var t = this.height, - e = this.doc.cm, - i = this.line; - this.height = null; - var n = Fe(this) - t; - n && (P(i, i.height + n), e && hn(e, function() { - e.curOp.forceUpdate = !0, Fr(e, i, n) - })) - }; - var sa = 0; - It(Rr), Rr.prototype.clear = function() { - var t = this; - if (!this.explicitlyCleared) { - var e = this.doc.cm, - i = e && !e.curOp; - if (i && nn(e), Ot(this, "clear")) { - var n = this.find(); - n && Se(this, "clear", n.from, n.to) - } - for (var r = null, s = null, o = 0; o < this.lines.length; ++o) { - var a = t.lines[o], - l = U(a.markedSpans, t); - e && !t.collapsed ? mn(e, $(a), "text") : e && (null != l.to && (s = $(a)), null != l.from && (r = $(a))), a.markedSpans = q(a.markedSpans, l), null == l.from && t.collapsed && !dt(t.doc, a) && e && P(a, mi(e.display)) - } - if (e && this.collapsed && !e.options.lineWrapping) - for (var c = 0; c < this.lines.length; ++c) { - var u = lt(t.lines[c]), - h = gt(u); - h > e.display.maxLineLength && (e.display.maxLine = u, e.display.maxLineLength = h, e.display.maxLineChanged = !0) - } - null != r && e && this.collapsed && gn(e, r, s + 1), this.lines.length = 0, this.explicitlyCleared = !0, this.atomic && this.doc.cantEdit && (this.doc.cantEdit = !1, e && vr(e.doc)), e && Se(e, "markerCleared", e, this), i && rn(e), this.parent && this.parent.clear() - } - }, Rr.prototype.find = function(t, e) { - var i = this; - null == t && "bookmark" == this.type && (t = 1); - for (var n, r, s = 0; s < this.lines.length; ++s) { - var o = i.lines[s], - a = U(o.markedSpans, i); - if (null != a.from && (n = O(e ? o : $(o), a.from), -1 == t)) return n; - if (null != a.to && (r = O(e ? o : $(o), a.to), 1 == t)) return r - } - return n && { - from: n, - to: r - } - }, Rr.prototype.changed = function() { - var t = this.find(-1, !0), - e = this, - i = this.doc.cm; - t && i && hn(i, function() { - var n = t.line, - r = $(t.line), - s = Xe(i, r); - if (s && (ni(s), i.curOp.selectionChanged = i.curOp.forceUpdate = !0), i.curOp.updateMaxLine = !0, !dt(e.doc, n) && null != e.height) { - var o = e.height; - e.height = null; - var a = Fe(e) - o; - a && P(n, n.height + a) - } - }) - }, Rr.prototype.attachLine = function(t) { - if (!this.lines.length && this.doc.cm) { - var e = this.doc.cm.curOp; - e.maybeHiddenMarkers && -1 != d(e.maybeHiddenMarkers, this) || (e.maybeUnhiddenMarkers || (e.maybeUnhiddenMarkers = [])).push(this) - } - this.lines.push(t) - }, Rr.prototype.detachLine = function(t) { - if (this.lines.splice(d(this.lines, t), 1), !this.lines.length && this.doc.cm) { - var e = this.doc.cm.curOp; - (e.maybeHiddenMarkers || (e.maybeHiddenMarkers = [])).push(this) - } - }, It(Wr), Wr.prototype.clear = function() { - var t = this; - if (!this.explicitlyCleared) { - this.explicitlyCleared = !0; - for (var e = 0; e < this.markers.length; ++e) t.markers[e].clear(); - Se(this, "clear") - } - }, Wr.prototype.find = function(t, e) { - return this.primary.find(t, e) - }; - var oa = 0, - aa = function(t, e, i, n) { - if (!(this instanceof aa)) return new aa(t, e, i, n); - null == i && (i = 0), _r.call(this, [new Dr([new le("", null)])]), this.first = i, this.scrollTop = this.scrollLeft = 0, this.cantEdit = !1, this.cleanGeneration = 1, this.frontier = i; - var r = O(i, 0); - this.sel = _n(r), this.history = new Gn(null), this.id = ++oa, this.modeOption = e, this.lineSep = n, this.extend = !1, "string" == typeof t && (t = this.splitLines(t)), Un(this, { - from: r, - to: r, - text: t - }), pr(this, _n(r), Po) - }; - aa.prototype = b(_r.prototype, { - constructor: aa, - iter: function(t, e, i) { - i ? this.iterN(t - this.first, e - t, i) : this.iterN(this.first, this.first + this.size, t) - }, - insert: function(t, e) { - for (var i = 0, n = 0; n < e.length; ++n) i += e[n].height; - this.insertInner(t - this.first, e, i) - }, - remove: function(t, e) { - this.removeInner(t - this.first, e) - }, - getValue: function(t) { - var e = E(this, this.first, this.first + this.size); - return !1 === t ? e : e.join(t || this.lineSeparator()) - }, - setValue: pn(function(t) { - var e = O(this.first, 0), - i = this.first + this.size - 1; - Sr(this, { - from: e, - to: O(i, T(this, i).text.length), - text: this.splitLines(t), - origin: "setValue", - full: !0 - }, !0), pr(this, _n(e)) - }), - replaceRange: function(t, e, i, n) { - e = H(this, e), i = i ? H(this, i) : e, Lr(this, t, e, i, n) - }, - getRange: function(t, e, i) { - var n = M(this, H(this, t), H(this, e)); - return !1 === i ? n : n.join(i || this.lineSeparator()) - }, - getLine: function(t) { - var e = this.getLineHandle(t); - return e && e.text - }, - getLineHandle: function(t) { - if (A(this, t)) return T(this, t) - }, - getLineNumber: function(t) { - return $(t) - }, - getLineHandleVisualStart: function(t) { - return "number" == typeof t && (t = T(this, t)), lt(t) - }, - lineCount: function() { - return this.size - }, - firstLine: function() { - return this.first - }, - lastLine: function() { - return this.first + this.size - 1 - }, - clipPos: function(t) { - return H(this, t) - }, - getCursor: function(t) { - var e = this.sel.primary(); - return null == t || "head" == t ? e.head : "anchor" == t ? e.anchor : "end" == t || "to" == t || !1 === t ? e.to() : e.from() - }, - listSelections: function() { - return this.sel.ranges - }, - somethingSelected: function() { - return this.sel.somethingSelected() - }, - setCursor: pn(function(t, e, i) { - hr(this, H(this, "number" == typeof t ? O(t, e || 0) : t), null, i) - }), - setSelection: pn(function(t, e, i) { - hr(this, H(this, t), H(this, e || t), i) - }), - extendSelection: pn(function(t, e, i) { - lr(this, H(this, t), e && H(this, e), i) - }), - extendSelections: pn(function(t, e) { - cr(this, V(this, t), e) - }), - extendSelectionsBy: pn(function(t, e) { - cr(this, V(this, m(this.sel.ranges, t)), e) - }), - setSelections: pn(function(t, e, i) { - var n = this; - if (t.length) { - for (var r = [], s = 0; s < t.length; s++) r[s] = new In(H(n, t[s].anchor), H(n, t[s].head)); - null == e && (e = Math.min(t.length - 1, this.sel.primIndex)), pr(this, Dn(r, e), i) - } - }), - addSelection: pn(function(t, e, i) { - var n = this.sel.ranges.slice(0); - n.push(new In(H(this, t), H(this, e || t))), pr(this, Dn(n, n.length - 1), i) - }), - getSelection: function(t) { - for (var e, i = this, n = this.sel.ranges, r = 0; r < n.length; r++) { - var s = M(i, n[r].from(), n[r].to()); - e = e ? e.concat(s) : s - } - return !1 === t ? e : e.join(t || this.lineSeparator()) - }, - getSelections: function(t) { - for (var e = this, i = [], n = this.sel.ranges, r = 0; r < n.length; r++) { - var s = M(e, n[r].from(), n[r].to()); - !1 !== t && (s = s.join(t || e.lineSeparator())), i[r] = s - } - return i - }, - replaceSelection: function(t, e, i) { - for (var n = [], r = 0; r < this.sel.ranges.length; r++) n[r] = t; - this.replaceSelections(n, e, i || "+input") - }, - replaceSelections: pn(function(t, e, i) { - for (var n = this, r = [], s = this.sel, o = 0; o < s.ranges.length; o++) { - var a = s.ranges[o]; - r[o] = { - from: a.from(), - to: a.to(), - text: n.splitLines(t[o]), - origin: i - } - } - for (var l = e && "end" != e && Vn(this, r, e), c = r.length - 1; c >= 0; c--) Sr(n, r[c]); - l ? fr(this, l) : this.cm && tn(this.cm) - }), - undo: pn(function() { - Mr(this, "undo") - }), - redo: pn(function() { - Mr(this, "redo") - }), - undoSelection: pn(function() { - Mr(this, "undo", !0) - }), - redoSelection: pn(function() { - Mr(this, "redo", !0) - }), - setExtending: function(t) { - this.extend = t - }, - getExtending: function() { - return this.extend - }, - historySize: function() { - for (var t = this.history, e = 0, i = 0, n = 0; n < t.done.length; n++) t.done[n].ranges || ++e; - for (var r = 0; r < t.undone.length; r++) t.undone[r].ranges || ++i; - return { - undo: e, - redo: i - } - }, - clearHistory: function() { - this.history = new Gn(this.history.maxGeneration) - }, - markClean: function() { - this.cleanGeneration = this.changeGeneration(!0) - }, - changeGeneration: function(t) { - return t && (this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null), this.history.generation - }, - isClean: function(t) { - return this.history.generation == (t || this.cleanGeneration) - }, - getHistory: function() { - return { - done: or(this.history.done), - undone: or(this.history.undone) - } - }, - setHistory: function(t) { - var e = this.history = new Gn(this.history.maxGeneration); - e.done = or(t.done.slice(0), null, !0), e.undone = or(t.undone.slice(0), null, !0) - }, - setGutterMarker: pn(function(t, e, i) { - return Ir(this, t, "gutter", function(t) { - var n = t.gutterMarkers || (t.gutterMarkers = {}); - return n[e] = i, !i && C(n) && (t.gutterMarkers = null), !0 - }) - }), - clearGutter: pn(function(t) { - var e = this, - i = this.first; - this.iter(function(n) { - n.gutterMarkers && n.gutterMarkers[t] && Ir(e, n, "gutter", function() { - return n.gutterMarkers[t] = null, C(n.gutterMarkers) && (n.gutterMarkers = null), !0 - }), ++i - }) - }), - lineInfo: function(t) { - var e; - if ("number" == typeof t) { - if (!A(this, t)) return null; - if (e = t, !(t = T(this, t))) return null - } else if (null == (e = $(t))) return null; - return { - line: e, - handle: t, - text: t.text, - gutterMarkers: t.gutterMarkers, - textClass: t.textClass, - bgClass: t.bgClass, - wrapClass: t.wrapClass, - widgets: t.widgets - } - }, - addLineClass: pn(function(e, i, n) { - return Ir(this, e, "gutter" == i ? "gutter" : "class", function(e) { - var r = "text" == i ? "textClass" : "background" == i ? "bgClass" : "gutter" == i ? "gutterClass" : "wrapClass"; - if (e[r]) { - if (t(n).test(e[r])) return !1; - e[r] += " " + n - } else e[r] = n; - return !0 - }) - }), - removeLineClass: pn(function(e, i, n) { - return Ir(this, e, "gutter" == i ? "gutter" : "class", function(e) { - var r = "text" == i ? "textClass" : "background" == i ? "bgClass" : "gutter" == i ? "gutterClass" : "wrapClass", - s = e[r]; - if (!s) return !1; - if (null == n) e[r] = null; - else { - var o = s.match(t(n)); - if (!o) return !1; - var a = o.index + o[0].length; - e[r] = s.slice(0, o.index) + (o.index && a != s.length ? " " : "") + s.slice(a) || null - } - return !0 - }) - }), - addLineWidget: pn(function(t, e, i) { - return Hr(this, t, e, i) - }), - removeLineWidget: function(t) { - t.clear() - }, - markText: function(t, e, i) { - return Vr(this, H(this, t), H(this, e), i, i && i.type || "range") - }, - setBookmark: function(t, e) { - var i = { - replacedWith: e && (null == e.nodeType ? e.widget : e), - insertLeft: e && e.insertLeft, - clearWhenEmpty: !1, - shared: e && e.shared, - handleMouseEvents: e && e.handleMouseEvents - }; - return t = H(this, t), Vr(this, t, t, i, "bookmark") - }, - findMarksAt: function(t) { - t = H(this, t); - var e = [], - i = T(this, t.line).markedSpans; - if (i) - for (var n = 0; n < i.length; ++n) { - var r = i[n]; - (null == r.from || r.from <= t.ch) && (null == r.to || r.to >= t.ch) && e.push(r.marker.parent || r.marker) - } - return e - }, - findMarks: function(t, e, i) { - t = H(this, t), e = H(this, e); - var n = [], - r = t.line; - return this.iter(t.line, e.line + 1, function(s) { - var o = s.markedSpans; - if (o) - for (var a = 0; a < o.length; a++) { - var l = o[a]; - null != l.to && r == t.line && t.ch >= l.to || null == l.from && r != t.line || null != l.from && r == e.line && l.from >= e.ch || i && !i(l.marker) || n.push(l.marker.parent || l.marker) - }++r - }), n - }, - getAllMarks: function() { - var t = []; - return this.iter(function(e) { - var i = e.markedSpans; - if (i) - for (var n = 0; n < i.length; ++n) null != i[n].from && t.push(i[n].marker) - }), t - }, - posFromIndex: function(t) { - var e, i = this.first, - n = this.lineSeparator().length; - return this.iter(function(r) { - var s = r.text.length + n; - if (s > t) return e = t, !0; - t -= s, ++i - }), H(this, O(i, e)) - }, - indexFromPos: function(t) { - t = H(this, t); - var e = t.ch; - if (t.line < this.first || t.ch < 0) return 0; - var i = this.lineSeparator().length; - return this.iter(this.first, t.line, function(t) { - e += t.text.length + i - }), e - }, - copy: function(t) { - var e = new aa(E(this, this.first, this.first + this.size), this.modeOption, this.first, this.lineSep); - return e.scrollTop = this.scrollTop, e.scrollLeft = this.scrollLeft, e.sel = this.sel, e.extend = !1, t && (e.history.undoDepth = this.history.undoDepth, e.setHistory(this.getHistory())), e - }, - linkedDoc: function(t) { - t || (t = {}); - var e = this.first, - i = this.first + this.size; - null != t.from && t.from > e && (e = t.from), null != t.to && t.to < i && (i = t.to); - var n = new aa(E(this, e, i), t.mode || this.modeOption, e, this.lineSep); - return t.sharedHist && (n.history = this.history), (this.linked || (this.linked = [])).push({ - doc: n, - sharedHist: t.sharedHist - }), n.linked = [{ - doc: this, - isParent: !0, - sharedHist: t.sharedHist - }], Ur(n, jr(this)), n - }, - unlinkDoc: function(t) { - var e = this; - if (t instanceof Ns && (t = t.doc), this.linked) - for (var i = 0; i < this.linked.length; ++i) { - var n = e.linked[i]; - if (n.doc == t) { - e.linked.splice(i, 1), t.unlinkDoc(e), qr(jr(e)); - break - } - } - if (t.history == this.history) { - var r = [t.id]; - qn(t, function(t) { - return r.push(t.id) - }, !0), t.history = new Gn(null), t.history.done = or(this.history.done, r), t.history.undone = or(this.history.undone, r) - } - }, - iterLinkedDocs: function(t) { - qn(this, t) - }, - getMode: function() { - return this.mode - }, - getEditor: function() { - return this.cm - }, - splitLines: function(t) { - return this.lineSep ? t.split(this.lineSep) : Vo(t) - }, - lineSeparator: function() { - return this.lineSep || "\n" - } - }), aa.prototype.eachLine = aa.prototype.iter; - for (var la = 0, ca = !1, ua = { - 3: "Enter", - 8: "Backspace", - 9: "Tab", - 13: "Enter", - 16: "Shift", - 17: "Ctrl", - 18: "Alt", - 19: "Pause", - 20: "CapsLock", - 27: "Esc", - 32: "Space", - 33: "PageUp", - 34: "PageDown", - 35: "End", - 36: "Home", - 37: "Left", - 38: "Up", - 39: "Right", - 40: "Down", - 44: "PrintScrn", - 45: "Insert", - 46: "Delete", - 59: ";", - 61: "=", - 91: "Mod", - 92: "Mod", - 93: "Mod", - 106: "*", - 107: "=", - 109: "-", - 110: ".", - 111: "/", - 127: "Delete", - 173: "-", - 186: ";", - 187: "=", - 188: ",", - 189: "-", - 190: ".", - 191: "/", - 192: "`", - 219: "[", - 220: "\\", - 221: "]", - 222: "'", - 63232: "Up", - 63233: "Down", - 63234: "Left", - 63235: "Right", - 63272: "Delete", - 63273: "Home", - 63275: "End", - 63276: "PageUp", - 63277: "PageDown", - 63302: "Insert" - }, ha = 0; ha < 10; ha++) ua[ha + 48] = ua[ha + 96] = String(ha); - for (var da = 65; da <= 90; da++) ua[da] = String.fromCharCode(da); - for (var fa = 1; fa <= 12; fa++) ua[fa + 111] = ua[fa + 63235] = "F" + fa; - var pa = {}; - pa.basic = { - Left: "goCharLeft", - Right: "goCharRight", - Up: "goLineUp", - Down: "goLineDown", - End: "goLineEnd", - Home: "goLineStartSmart", - PageUp: "goPageUp", - PageDown: "goPageDown", - Delete: "delCharAfter", - Backspace: "delCharBefore", - "Shift-Backspace": "delCharBefore", - Tab: "defaultTab", - "Shift-Tab": "indentAuto", - Enter: "newlineAndIndent", - Insert: "toggleOverwrite", - Esc: "singleSelection" - }, pa.pcDefault = { - "Ctrl-A": "selectAll", - "Ctrl-D": "deleteLine", - "Ctrl-Z": "undo", - "Shift-Ctrl-Z": "redo", - "Ctrl-Y": "redo", - "Ctrl-Home": "goDocStart", - "Ctrl-End": "goDocEnd", - "Ctrl-Up": "goLineUp", - "Ctrl-Down": "goLineDown", - "Ctrl-Left": "goGroupLeft", - "Ctrl-Right": "goGroupRight", - "Alt-Left": "goLineStart", - "Alt-Right": "goLineEnd", - "Ctrl-Backspace": "delGroupBefore", - "Ctrl-Delete": "delGroupAfter", - "Ctrl-S": "save", - "Ctrl-F": "find", - "Ctrl-G": "findNext", - "Shift-Ctrl-G": "findPrev", - "Shift-Ctrl-F": "replace", - "Shift-Ctrl-R": "replaceAll", - "Ctrl-[": "indentLess", - "Ctrl-]": "indentMore", - "Ctrl-U": "undoSelection", - "Shift-Ctrl-U": "redoSelection", - "Alt-U": "redoSelection", - fallthrough: "basic" - }, pa.emacsy = { - "Ctrl-F": "goCharRight", - "Ctrl-B": "goCharLeft", - "Ctrl-P": "goLineUp", - "Ctrl-N": "goLineDown", - "Alt-F": "goWordRight", - "Alt-B": "goWordLeft", - "Ctrl-A": "goLineStart", - "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", - "Shift-Ctrl-V": "goPageUp", - "Ctrl-D": "delCharAfter", - "Ctrl-H": "delCharBefore", - "Alt-D": "delWordAfter", - "Alt-Backspace": "delWordBefore", - "Ctrl-K": "killLine", - "Ctrl-T": "transposeChars", - "Ctrl-O": "openLine" - }, pa.macDefault = { - "Cmd-A": "selectAll", - "Cmd-D": "deleteLine", - "Cmd-Z": "undo", - "Shift-Cmd-Z": "redo", - "Cmd-Y": "redo", - "Cmd-Home": "goDocStart", - "Cmd-Up": "goDocStart", - "Cmd-End": "goDocEnd", - "Cmd-Down": "goDocEnd", - "Alt-Left": "goGroupLeft", - "Alt-Right": "goGroupRight", - "Cmd-Left": "goLineLeft", - "Cmd-Right": "goLineRight", - "Alt-Backspace": "delGroupBefore", - "Ctrl-Alt-Backspace": "delGroupAfter", - "Alt-Delete": "delGroupAfter", - "Cmd-S": "save", - "Cmd-F": "find", - "Cmd-G": "findNext", - "Shift-Cmd-G": "findPrev", - "Cmd-Alt-F": "replace", - "Shift-Cmd-Alt-F": "replaceAll", - "Cmd-[": "indentLess", - "Cmd-]": "indentMore", - "Cmd-Backspace": "delWrappedLineLeft", - "Cmd-Delete": "delWrappedLineRight", - "Cmd-U": "undoSelection", - "Shift-Cmd-U": "redoSelection", - "Ctrl-Up": "goDocStart", - "Ctrl-Down": "goDocEnd", - fallthrough: ["basic", "emacsy"] - }, pa.default = go ? pa.macDefault : pa.pcDefault; - var ga, ma, va = { - selectAll: Cr, - singleSelection: function(t) { - return t.setSelection(t.getCursor("anchor"), t.getCursor("head"), Po) - }, - killLine: function(t) { - return as(t, function(e) { - if (e.empty()) { - var i = T(t.doc, e.head.line).text.length; - return e.head.ch == i && e.head.line < t.lastLine() ? { - from: e.head, - to: O(e.head.line + 1, 0) - } : { - from: e.head, - to: O(e.head.line, i) - } - } - return { - from: e.from(), - to: e.to() - } - }) - }, - deleteLine: function(t) { - return as(t, function(e) { - return { - from: O(e.from().line, 0), - to: H(t.doc, O(e.to().line + 1, 0)) - } - }) - }, - delLineLeft: function(t) { - return as(t, function(t) { - return { - from: O(t.from().line, 0), - to: t.from() - } - }) - }, - delWrappedLineLeft: function(t) { - return as(t, function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return { - from: t.coordsChar({ - left: 0, - top: i - }, "div"), - to: e.from() - } - }) - }, - delWrappedLineRight: function(t) { - return as(t, function(e) { - var i = t.charCoords(e.head, "div").top + 5, - n = t.coordsChar({ - left: t.display.lineDiv.offsetWidth + 100, - top: i - }, "div"); - return { - from: e.from(), - to: n - } - }) - }, - undo: function(t) { - return t.undo() - }, - redo: function(t) { - return t.redo() - }, - undoSelection: function(t) { - return t.undoSelection() - }, - redoSelection: function(t) { - return t.redoSelection() - }, - goDocStart: function(t) { - return t.extendSelection(O(t.firstLine(), 0)) - }, - goDocEnd: function(t) { - return t.extendSelection(O(t.lastLine())) - }, - goLineStart: function(t) { - return t.extendSelectionsBy(function(e) { - return ls(t, e.head.line) - }, { - origin: "+move", - bias: 1 - }) - }, - goLineStartSmart: function(t) { - return t.extendSelectionsBy(function(e) { - return us(t, e.head) - }, { - origin: "+move", - bias: 1 - }) - }, - goLineEnd: function(t) { - return t.extendSelectionsBy(function(e) { - return cs(t, e.head.line) - }, { - origin: "+move", - bias: -1 - }) - }, - goLineRight: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return t.coordsChar({ - left: t.display.lineDiv.offsetWidth + 100, - top: i - }, "div") - }, Lo) - }, - goLineLeft: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return t.coordsChar({ - left: 0, - top: i - }, "div") - }, Lo) - }, - goLineLeftSmart: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5, - n = t.coordsChar({ - left: 0, - top: i - }, "div"); - return n.ch < t.getLine(n.line).search(/\S/) ? us(t, e.head) : n - }, Lo) - }, - goLineUp: function(t) { - return t.moveV(-1, "line") - }, - goLineDown: function(t) { - return t.moveV(1, "line") - }, - goPageUp: function(t) { - return t.moveV(-1, "page") - }, - goPageDown: function(t) { - return t.moveV(1, "page") - }, - goCharLeft: function(t) { - return t.moveH(-1, "char") - }, - goCharRight: function(t) { - return t.moveH(1, "char") - }, - goColumnLeft: function(t) { - return t.moveH(-1, "column") - }, - goColumnRight: function(t) { - return t.moveH(1, "column") - }, - goWordLeft: function(t) { - return t.moveH(-1, "word") - }, - goGroupRight: function(t) { - return t.moveH(1, "group") - }, - goGroupLeft: function(t) { - return t.moveH(-1, "group") - }, - goWordRight: function(t) { - return t.moveH(1, "word") - }, - delCharBefore: function(t) { - return t.deleteH(-1, "char") - }, - delCharAfter: function(t) { - return t.deleteH(1, "char") - }, - delWordBefore: function(t) { - return t.deleteH(-1, "word") - }, - delWordAfter: function(t) { - return t.deleteH(1, "word") - }, - delGroupBefore: function(t) { - return t.deleteH(-1, "group") - }, - delGroupAfter: function(t) { - return t.deleteH(1, "group") - }, - indentAuto: function(t) { - return t.indentSelection("smart") - }, - indentMore: function(t) { - return t.indentSelection("add") - }, - indentLess: function(t) { - return t.indentSelection("subtract") - }, - insertTab: function(t) { - return t.replaceSelection("\t") - }, - insertSoftTab: function(t) { - for (var e = [], i = t.listSelections(), n = t.options.tabSize, r = 0; r < i.length; r++) { - var s = i[r].from(), - o = u(t.getLine(s.line), s.ch, n); - e.push(p(n - o % n)) - } - t.replaceSelections(e) - }, - defaultTab: function(t) { - t.somethingSelected() ? t.indentSelection("add") : t.execCommand("insertTab") - }, - transposeChars: function(t) { - return hn(t, function() { - for (var e = t.listSelections(), i = [], n = 0; n < e.length; n++) - if (e[n].empty()) { - var r = e[n].head, - s = T(t.doc, r.line).text; - if (s) - if (r.ch == s.length && (r = new O(r.line, r.ch - 1)), r.ch > 0) r = new O(r.line, r.ch + 1), t.replaceRange(s.charAt(r.ch - 1) + s.charAt(r.ch - 2), O(r.line, r.ch - 2), r, "+transpose"); - else if (r.line > t.doc.first) { - var o = T(t.doc, r.line - 1).text; - o && (r = new O(r.line, 1), t.replaceRange(s.charAt(0) + t.doc.lineSeparator() + o.charAt(o.length - 1), O(r.line - 1, o.length - 1), r, "+transpose")) - } - i.push(new In(r, r)) - } - t.setSelections(i) - }) - }, - newlineAndIndent: function(t) { - return hn(t, function() { - for (var e = t.listSelections(), i = e.length - 1; i >= 0; i--) t.replaceRange(t.doc.lineSeparator(), e[i].anchor, e[i].head, "+input"); - e = t.listSelections(); - for (var n = 0; n < e.length; n++) t.indentLine(e[n].from().line, null, !0); - tn(t) - }) - }, - openLine: function(t) { - return t.replaceSelection("\n", "start") - }, - toggleOverwrite: function(t) { - return t.toggleOverwrite() - } - }, - ya = new h, - ba = null, - xa = { - toString: function() { - return "CodeMirror.Init" - } - }, - wa = {}, - Ca = {}; - Ns.defaults = wa, Ns.optionHandlers = Ca; - var ka = []; - Ns.defineInitHook = function(t) { - return ka.push(t) - }; - var Sa = null; - js.prototype = c({ - init: function(t) { - function e(t) { - if (!At(r, t)) { - if (r.somethingSelected()) Ds({ - lineWise: !1, - text: r.getSelections() - }), "cut" == t.type && r.replaceSelection("", null, "cut"); - else { - if (!r.options.lineWiseCopyCut) return; - var e = Hs(r); - Ds({ - lineWise: !0, - text: e.text - }), "cut" == t.type && r.operation(function() { - r.setSelections(e.ranges, 0, Po), r.replaceSelection("", null, "cut") - }) - } - if (t.clipboardData) { - t.clipboardData.clearData(); - var i = Sa.text.join("\n"); - if (t.clipboardData.setData("Text", i), t.clipboardData.getData("Text") == i) return void t.preventDefault() - } - var o = Vs(), - a = o.firstChild; - r.display.lineSpace.insertBefore(o, r.display.lineSpace.firstChild), a.value = Sa.text.join("\n"); - var l = document.activeElement; - ko(a), setTimeout(function() { - r.display.lineSpace.removeChild(o), l.focus(), l == s && n.showPrimarySelection() - }, 50) - } - } - var i = this, - n = this, - r = n.cm, - s = n.div = t.lineDiv; - Rs(s, r.options.spellcheck), Ho(s, "paste", function(t) { - At(r, t) || zs(t, r) || ro <= 11 && setTimeout(dn(r, function() { - n.pollContent() || gn(r) - }), 20) - }), Ho(s, "compositionstart", function(t) { - i.composing = { - data: t.data - } - }), Ho(s, "compositionupdate", function(t) { - i.composing || (i.composing = { - data: t.data - }) - }), Ho(s, "compositionend", function(t) { - i.composing && (t.data != i.composing.data && i.readFromDOMSoon(), i.composing = null) - }), Ho(s, "touchstart", function() { - return n.forceCompositionEnd() - }), Ho(s, "input", function() { - i.composing || i.readFromDOMSoon() - }), Ho(s, "copy", e), Ho(s, "cut", e) - }, - prepareSelection: function() { - var t = Ti(this.cm, !1); - return t.focus = this.cm.state.focused, t - }, - showSelection: function(t, e) { - t && this.cm.display.view.length && ((t.focus || e) && this.showPrimarySelection(), this.showMultipleSelections(t)) - }, - showPrimarySelection: function() { - var t = window.getSelection(), - e = this.cm.doc.sel.primary(), - i = Gs(this.cm, t.anchorNode, t.anchorOffset), - n = Gs(this.cm, t.focusNode, t.focusOffset); - if (!i || i.bad || !n || n.bad || 0 != I(z(i, n), e.from()) || 0 != I(_(i, n), e.to())) { - var r = Us(this.cm, e.from()), - s = Us(this.cm, e.to()); - if (r || s) { - var o = this.cm.display.view, - a = t.rangeCount && t.getRangeAt(0); - if (r) { - if (!s) { - var l = o[o.length - 1].measure, - c = l.maps ? l.maps[l.maps.length - 1] : l.map; - s = { - node: c[c.length - 1], - offset: c[c.length - 2] - c[c.length - 3] - } - } - } else r = { - node: o[0].measure.map[2], - offset: 0 - }; - var u; - try { - u = bo(r.node, r.offset, s.offset, s.node) - } catch (t) {} - u && (!to && this.cm.state.focused ? (t.collapse(r.node, r.offset), u.collapsed || (t.removeAllRanges(), t.addRange(u))) : (t.removeAllRanges(), t.addRange(u)), a && null == t.anchorNode ? t.addRange(a) : to && this.startGracePeriod()), this.rememberSelection() - } - } - }, - startGracePeriod: function() { - var t = this; - clearTimeout(this.gracePeriod), this.gracePeriod = setTimeout(function() { - t.gracePeriod = !1, t.selectionChanged() && t.cm.operation(function() { - return t.cm.curOp.selectionChanged = !0 - }) - }, 20) - }, - showMultipleSelections: function(t) { - i(this.cm.display.cursorDiv, t.cursors), i(this.cm.display.selectionDiv, t.selection) - }, - rememberSelection: function() { - var t = window.getSelection(); - this.lastAnchorNode = t.anchorNode, this.lastAnchorOffset = t.anchorOffset, this.lastFocusNode = t.focusNode, this.lastFocusOffset = t.focusOffset - }, - selectionInEditor: function() { - var t = window.getSelection(); - if (!t.rangeCount) return !1; - var e = t.getRangeAt(0).commonAncestorContainer; - return r(this.div, e) - }, - focus: function() { - "nocursor" != this.cm.options.readOnly && (this.selectionInEditor() || this.showSelection(this.prepareSelection(), !0), this.div.focus()) - }, - blur: function() { - this.div.blur() - }, - getField: function() { - return this.div - }, - supportsTouch: function() { - return !0 - }, - receivedFocus: function() { - function t() { - e.cm.state.focused && (e.pollSelection(), e.polling.set(e.cm.options.pollInterval, t)) - } - var e = this; - this.selectionInEditor() ? this.pollSelection() : hn(this.cm, function() { - return e.cm.curOp.selectionChanged = !0 - }), this.polling.set(this.cm.options.pollInterval, t) - }, - selectionChanged: function() { - var t = window.getSelection(); - return t.anchorNode != this.lastAnchorNode || t.anchorOffset != this.lastAnchorOffset || t.focusNode != this.lastFocusNode || t.focusOffset != this.lastFocusOffset - }, - pollSelection: function() { - if (!this.composing && null == this.readDOMTimeout && !this.gracePeriod && this.selectionChanged()) { - var t = window.getSelection(), - e = this.cm; - this.rememberSelection(); - var i = Gs(e, t.anchorNode, t.anchorOffset), - n = Gs(e, t.focusNode, t.focusOffset); - i && n && hn(e, function() { - pr(e.doc, _n(i, n), Po), (i.bad || n.bad) && (e.curOp.selectionChanged = !0) - }) - } - }, - pollContent: function() { - null != this.readDOMTimeout && (clearTimeout(this.readDOMTimeout), this.readDOMTimeout = null); - var t = this.cm, - e = t.display, - i = t.doc.sel.primary(), - n = i.from(), - r = i.to(); - if (0 == n.ch && n.line > t.firstLine() && (n = O(n.line - 1, T(t.doc, n.line - 1).length)), r.ch == T(t.doc, r.line).text.length && r.line < t.lastLine() && (r = O(r.line + 1, 0)), n.line < e.viewFrom || r.line > e.viewTo - 1) return !1; - var s, o, a; - n.line == e.viewFrom || 0 == (s = ki(t, n.line)) ? (o = $(e.view[0].line), a = e.view[0].node) : (o = $(e.view[s].line), a = e.view[s - 1].node.nextSibling); - var l, c, u = ki(t, r.line); - if (u == e.view.length - 1 ? (l = e.viewTo - 1, c = e.lineDiv.lastChild) : (l = $(e.view[u + 1].line) - 1, c = e.view[u + 1].node.previousSibling), !a) return !1; - for (var h = t.doc.splitLines(Ks(t, a, c, o, l)), d = M(t.doc, O(o, 0), O(l, T(t.doc, l).text.length)); h.length > 1 && d.length > 1;) - if (g(h) == g(d)) h.pop(), d.pop(), l--; - else { - if (h[0] != d[0]) break; - h.shift(), d.shift(), o++ - } - for (var f = 0, p = 0, m = h[0], v = d[0], y = Math.min(m.length, v.length); f < y && m.charCodeAt(f) == v.charCodeAt(f);) ++f; - for (var b = g(h), x = g(d), w = Math.min(b.length - (1 == h.length ? f : 0), x.length - (1 == d.length ? f : 0)); p < w && b.charCodeAt(b.length - p - 1) == x.charCodeAt(x.length - p - 1);) ++p; - h[h.length - 1] = b.slice(0, b.length - p).replace(/^\u200b+/, ""), h[0] = h[0].slice(f).replace(/\u200b+$/, ""); - var C = O(o, f), - k = O(l, d.length ? g(d).length - p : 0); - return h.length > 1 || h[0] || I(C, k) ? (Lr(t.doc, h, C, k, "+input"), !0) : void 0 - }, - ensurePolled: function() { - this.forceCompositionEnd() - }, - reset: function() { - this.forceCompositionEnd() - }, - forceCompositionEnd: function() { - this.composing && (this.composing = null, this.pollContent() || gn(this.cm), this.div.blur(), this.div.focus()) - }, - readFromDOMSoon: function() { - var t = this; - null == this.readDOMTimeout && (this.readDOMTimeout = setTimeout(function() { - t.readDOMTimeout = null, t.composing || !t.cm.isReadOnly() && t.pollContent() || hn(t.cm, function() { - return gn(t.cm) - }) - }, 80)) - }, - setUneditable: function(t) { - t.contentEditable = "false" - }, - onKeyPress: function(t) { - t.preventDefault(), this.cm.isReadOnly() || dn(this.cm, _s)(this.cm, String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), 0) - }, - readOnlyChanged: function(t) { - this.div.contentEditable = String("nocursor" != t) - }, - onContextMenu: y, - resetPosition: y, - needsContentAttribute: !0 - }, js.prototype), Xs.prototype = c({ - init: function(t) { - function e(t) { - if (!At(r, t)) { - if (r.somethingSelected()) Ds({ - lineWise: !1, - text: r.getSelections() - }), n.inaccurateSelection && (n.prevInput = "", n.inaccurateSelection = !1, o.value = Sa.text.join("\n"), ko(o)); - else { - if (!r.options.lineWiseCopyCut) return; - var e = Hs(r); - Ds({ - lineWise: !0, - text: e.text - }), "cut" == t.type ? r.setSelections(e.ranges, null, Po) : (n.prevInput = "", o.value = e.text.join("\n"), ko(o)) - } - "cut" == t.type && (r.state.cutIncoming = !0) - } - } - var i = this, - n = this, - r = this.cm, - s = this.wrapper = Vs(), - o = this.textarea = s.firstChild; - t.wrapper.insertBefore(s, t.wrapper.firstChild), fo && (o.style.width = "0px"), Ho(o, "input", function() { - no && ro >= 9 && i.hasSelection && (i.hasSelection = null), n.poll() - }), Ho(o, "paste", function(t) { - At(r, t) || zs(t, r) || (r.state.pasteIncoming = !0, n.fastPoll()) - }), Ho(o, "cut", e), Ho(o, "copy", e), Ho(t.scroller, "paste", function(e) { - He(t, e) || At(r, e) || (r.state.pasteIncoming = !0, n.focus()) - }), Ho(t.lineSpace, "selectstart", function(e) { - He(t, e) || Dt(e) - }), Ho(o, "compositionstart", function() { - var t = r.getCursor("from"); - n.composing && n.composing.range.clear(), n.composing = { - start: t, - range: r.markText(t, r.getCursor("to"), { - className: "CodeMirror-composing" - }) - } - }), Ho(o, "compositionend", function() { - n.composing && (n.poll(), n.composing.range.clear(), n.composing = null) - }) - }, - prepareSelection: function() { - var t = this.cm, - e = t.display, - i = t.doc, - n = Ti(t); - if (t.options.moveInputWithCursor) { - var r = hi(t, i.sel.primary().head, "div"), - s = e.wrapper.getBoundingClientRect(), - o = e.lineDiv.getBoundingClientRect(); - n.teTop = Math.max(0, Math.min(e.wrapper.clientHeight - 10, r.top + o.top - s.top)), n.teLeft = Math.max(0, Math.min(e.wrapper.clientWidth - 10, r.left + o.left - s.left)) - } - return n - }, - showSelection: function(t) { - var e = this.cm, - n = e.display; - i(n.cursorDiv, t.cursors), i(n.selectionDiv, t.selection), null != t.teTop && (this.wrapper.style.top = t.teTop + "px", this.wrapper.style.left = t.teLeft + "px") - }, - reset: function(t) { - if (!this.contextMenuPending) { - var e, i, n = this.cm, - r = n.doc; - if (n.somethingSelected()) { - this.prevInput = ""; - var s = r.sel.primary(); - e = Bo && (s.to().line - s.from().line > 100 || (i = n.getSelection()).length > 1e3); - var o = e ? "-" : i || n.getSelection(); - this.textarea.value = o, n.state.focused && ko(this.textarea), no && ro >= 9 && (this.hasSelection = o) - } else t || (this.prevInput = this.textarea.value = "", no && ro >= 9 && (this.hasSelection = null)); - this.inaccurateSelection = e - } - }, - getField: function() { - return this.textarea - }, - supportsTouch: function() { - return !1 - }, - focus: function() { - if ("nocursor" != this.cm.options.readOnly && (!po || s() != this.textarea)) try { - this.textarea.focus() - } catch (t) {} - }, - blur: function() { - this.textarea.blur() - }, - resetPosition: function() { - this.wrapper.style.top = this.wrapper.style.left = 0 - }, - receivedFocus: function() { - this.slowPoll() - }, - slowPoll: function() { - var t = this; - this.pollingFast || this.polling.set(this.cm.options.pollInterval, function() { - t.poll(), t.cm.state.focused && t.slowPoll() - }) - }, - fastPoll: function() { - function t() { - i.poll() || e ? (i.pollingFast = !1, i.slowPoll()) : (e = !0, i.polling.set(60, t)) - } - var e = !1, - i = this; - i.pollingFast = !0, i.polling.set(20, t) - }, - poll: function() { - var t = this, - e = this.cm, - i = this.textarea, - n = this.prevInput; - if (this.contextMenuPending || !e.state.focused || Wo(i) && !n && !this.composing || e.isReadOnly() || e.options.disableInput || e.state.keySeq) return !1; - var r = i.value; - if (r == n && !e.somethingSelected()) return !1; - if (no && ro >= 9 && this.hasSelection === r || go && /[\uf700-\uf7ff]/.test(r)) return e.display.input.reset(), !1; - if (e.doc.sel == e.display.selForContextMenu) { - var s = r.charCodeAt(0); - if (8203 != s || n || (n = "​"), 8666 == s) return this.reset(), this.cm.execCommand("undo") - } - for (var o = 0, a = Math.min(n.length, r.length); o < a && n.charCodeAt(o) == r.charCodeAt(o);) ++o; - return hn(e, function() { - _s(e, r.slice(o), n.length - o, null, t.composing ? "*compose" : null), r.length > 1e3 || r.indexOf("\n") > -1 ? i.value = t.prevInput = "" : t.prevInput = r, t.composing && (t.composing.range.clear(), t.composing.range = e.markText(t.composing.start, e.getCursor("to"), { - className: "CodeMirror-composing" - })) - }), !0 - }, - ensurePolled: function() { - this.pollingFast && this.poll() && (this.pollingFast = !1) - }, - onKeyPress: function() { - no && ro >= 9 && (this.hasSelection = null), this.fastPoll() - }, - onContextMenu: function(t) { - function e() { - if (null != o.selectionStart) { - var t = r.somethingSelected(), - e = "​" + (t ? o.value : ""); - o.value = "⇚", o.value = e, n.prevInput = t ? "" : "​", o.selectionStart = 1, o.selectionEnd = e.length, s.selForContextMenu = r.doc.sel - } - } - - function i() { - if (n.contextMenuPending = !1, n.wrapper.style.cssText = u, o.style.cssText = c, no && ro < 9 && s.scrollbars.setScrollTop(s.scroller.scrollTop = l), null != o.selectionStart) { - (!no || no && ro < 9) && e(); - var t = 0, - i = function() { - s.selForContextMenu == r.doc.sel && 0 == o.selectionStart && o.selectionEnd > 0 && "​" == n.prevInput ? dn(r, Cr)(r) : t++ < 10 ? s.detectingSelectAll = setTimeout(i, 500) : s.input.reset() - }; - s.detectingSelectAll = setTimeout(i, 200) - } - } - var n = this, - r = n.cm, - s = r.display, - o = n.textarea, - a = Ci(r, t), - l = s.scroller.scrollTop; - if (a && !lo) { - r.options.resetSelectionOnContextMenu && -1 == r.doc.sel.contains(a) && dn(r, pr)(r.doc, _n(a), Po); - var c = o.style.cssText, - u = n.wrapper.style.cssText; - n.wrapper.style.cssText = "position: absolute"; - var h = n.wrapper.getBoundingClientRect(); - o.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (t.clientY - h.top - 5) + "px; left: " + (t.clientX - h.left - 5) + "px;\n z-index: 1000; background: " + (no ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; - var d; - if (so && (d = window.scrollY), s.input.focus(), so && window.scrollTo(null, d), s.input.reset(), r.somethingSelected() || (o.value = n.prevInput = " "), n.contextMenuPending = !0, s.selForContextMenu = r.doc.sel, clearTimeout(s.detectingSelectAll), no && ro >= 9 && e(), wo) { - Ft(t); - var f = function() { - $t(window, "mouseup", f), setTimeout(i, 20) - }; - Ho(window, "mouseup", f) - } else setTimeout(i, 50) - } - }, - readOnlyChanged: function(t) { - t || this.reset() - }, - setUneditable: y, - needsContentAttribute: !1 - }, Xs.prototype), - function(t) { - function e(e, n, r, s) { - t.defaults[e] = n, r && (i[e] = s ? function(t, e, i) { - i != xa && r(t, e, i) - } : r) - } - var i = t.optionHandlers; - t.defineOption = e, t.Init = xa, e("value", "", function(t, e) { - return t.setValue(e) - }, !0), e("mode", null, function(t, e) { - t.doc.modeOption = e, Wn(t) - }, !0), e("indentUnit", 2, Wn, !0), e("indentWithTabs", !1), e("smartIndent", !0), e("tabSize", 4, function(t) { - Bn(t), si(t), gn(t) - }, !0), e("lineSeparator", null, function(t, e) { - if (t.doc.lineSep = e, e) { - var i = [], - n = t.doc.first; - t.doc.iter(function(t) { - for (var r = 0;;) { - var s = t.text.indexOf(e, r); - if (-1 == s) break; - r = s + e.length, i.push(O(n, s)) - } - n++ - }); - for (var r = i.length - 1; r >= 0; r--) Lr(t.doc, e, i[r], O(i[r].line, i[r].ch + e.length)) - } - }), e("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(t, e, i) { - t.state.specialChars = new RegExp(e.source + (e.test("\t") ? "" : "|\t"), "g"), i != xa && t.refresh() - }), e("specialCharPlaceholder", fe, function(t) { - return t.refresh() - }, !0), e("electricChars", !0), e("inputStyle", po ? "contenteditable" : "textarea", function() { - throw new Error("inputStyle can not (yet) be changed in a running editor") - }, !0), e("spellcheck", !1, function(t, e) { - return t.getInputField().spellcheck = e - }, !0), e("rtlMoveVisually", !vo), e("wholeLineUpdateBefore", !0), e("theme", "default", function(t) { - Ps(t), $s(t) - }, !0), e("keyMap", "default", function(t, e, i) { - var n = os(e), - r = i != xa && os(i); - r && r.detach && r.detach(t, n), n.attach && n.attach(t, r || null) - }), e("extraKeys", null), e("lineWrapping", !1, As, !0), e("gutters", [], function(t) { - Nn(t.options), $s(t) - }, !0), e("fixedGutter", !0, function(t, e) { - t.display.gutters.style.left = e ? bi(t.display) + "px" : "0", t.refresh() - }, !0), e("coverGutterNextToScrollbar", !1, function(t) { - return qi(t) - }, !0), e("scrollbarStyle", "native", function(t) { - Gi(t), qi(t), t.display.scrollbars.setScrollTop(t.doc.scrollTop), t.display.scrollbars.setScrollLeft(t.doc.scrollLeft) - }, !0), e("lineNumbers", !1, function(t) { - Nn(t.options), $s(t) - }, !0), e("firstLineNumber", 1, $s, !0), e("lineNumberFormatter", function(t) { - return t - }, $s, !0), e("showCursorWhenSelecting", !1, Si, !0), e("resetSelectionOnContextMenu", !0), e("lineWiseCopyCut", !0), e("readOnly", !1, function(t, e) { - "nocursor" == e ? (Ni(t), t.display.input.blur(), t.display.disabled = !0) : t.display.disabled = !1, t.display.input.readOnlyChanged(e) - }), e("disableInput", !1, function(t, e) { - e || t.display.input.reset() - }, !0), e("dragDrop", !0, Ls), e("allowDropFileTypes", null), e("cursorBlinkRate", 530), e("cursorScrollMargin", 0), e("cursorHeight", 1, Si, !0), e("singleCursorHeightPerLine", !0, Si, !0), e("workTime", 100), e("workDelay", 100), e("flattenSpans", !0, Bn, !0), e("addModeClass", !1, Bn, !0), e("pollInterval", 100), e("undoDepth", 200, function(t, e) { - return t.doc.history.undoDepth = e - }), e("historyEventDelay", 1250), e("viewportMargin", 10, function(t) { - return t.refresh() - }, !0), e("maxHighlightLength", 1e4, Bn, !0), e("moveInputWithCursor", !0, function(t, e) { - e || t.display.input.resetPosition() - }), e("tabindex", null, function(t, e) { - return t.display.input.getField().tabIndex = e || "" - }), e("autofocus", null) - }(Ns), - function(t) { - var e = t.optionHandlers, - i = t.helpers = {}; - t.prototype = { - constructor: t, - focus: function() { - window.focus(), this.display.input.focus() - }, - setOption: function(t, i) { - var n = this.options, - r = n[t]; - n[t] == i && "mode" != t || (n[t] = i, e.hasOwnProperty(t) && dn(this, e[t])(this, i, r)) - }, - getOption: function(t) { - return this.options[t] - }, - getDoc: function() { - return this.doc - }, - addKeyMap: function(t, e) { - this.state.keyMaps[e ? "push" : "unshift"](os(t)) - }, - removeKeyMap: function(t) { - for (var e = this.state.keyMaps, i = 0; i < e.length; ++i) - if (e[i] == t || e[i].name == t) return e.splice(i, 1), !0 - }, - addOverlay: fn(function(e, i) { - var n = e.token ? e : t.getMode(this.options, e); - if (n.startState) throw new Error("Overlays may not be stateful."); - v(this.state.overlays, { - mode: n, - modeSpec: e, - opaque: i && i.opaque, - priority: i && i.priority || 0 - }, function(t) { - return t.priority - }), this.state.modeGen++, gn(this) - }), - removeOverlay: fn(function(t) { - for (var e = this, i = this.state.overlays, n = 0; n < i.length; ++n) { - var r = i[n].modeSpec; - if (r == t || "string" == typeof t && r.name == t) return i.splice(n, 1), e.state.modeGen++, void gn(e) - } - }), - indentLine: fn(function(t, e, i) { - "string" != typeof e && "number" != typeof e && (e = null == e ? this.options.smartIndent ? "smart" : "prev" : e ? "add" : "subtract"), A(this.doc, t) && Is(this, t, e, i) - }), - indentSelection: fn(function(t) { - for (var e = this, i = this.doc.sel.ranges, n = -1, r = 0; r < i.length; r++) { - var s = i[r]; - if (s.empty()) s.head.line > n && (Is(e, s.head.line, t, !0), n = s.head.line, r == e.doc.sel.primIndex && tn(e)); - else { - var o = s.from(), - a = s.to(), - l = Math.max(n, o.line); - n = Math.min(e.lastLine(), a.line - (a.ch ? 0 : 1)) + 1; - for (var c = l; c < n; ++c) Is(e, c, t); - var u = e.doc.sel.ranges; - 0 == o.ch && i.length == u.length && u[r].from().ch > 0 && ur(e.doc, r, new In(o, u[r].to()), Po) - } - } - }), - getTokenAt: function(t, e) { - return re(this, t, e) - }, - getLineTokens: function(t, e) { - return re(this, O(t), e, !0) - }, - getTokenTypeAt: function(t) { - t = H(this.doc, t); - var e, i = Qt(this, T(this.doc, t.line)), - n = 0, - r = (i.length - 1) / 2, - s = t.ch; - if (0 == s) e = i[2]; - else - for (;;) { - var o = n + r >> 1; - if ((o ? i[2 * o - 1] : 0) >= s) r = o; - else { - if (!(i[2 * o + 1] < s)) { - e = i[2 * o + 2]; - break - } - n = o + 1 - } - } - var a = e ? e.indexOf("overlay ") : -1; - return a < 0 ? e : 0 == a ? null : e.slice(0, a - 1) - }, - getModeAt: function(e) { - var i = this.doc.mode; - return i.innerMode ? t.innerMode(i, this.getTokenAt(e).state).mode : i - }, - getHelper: function(t, e) { - return this.getHelpers(t, e)[0] - }, - getHelpers: function(t, e) { - var n = this, - r = []; - if (!i.hasOwnProperty(e)) return r; - var s = i[e], - o = this.getModeAt(t); - if ("string" == typeof o[e]) s[o[e]] && r.push(s[o[e]]); - else if (o[e]) - for (var a = 0; a < o[e].length; a++) { - var l = s[o[e][a]]; - l && r.push(l) - } else o.helperType && s[o.helperType] ? r.push(s[o.helperType]) : s[o.name] && r.push(s[o.name]); - for (var c = 0; c < s._global.length; c++) { - var u = s._global[c]; - u.pred(o, n) && -1 == d(r, u.val) && r.push(u.val) - } - return r - }, - getStateAfter: function(t, e) { - var i = this.doc; - return t = F(i, null == t ? i.first + i.size - 1 : t), te(this, t + 1, e) - }, - cursorCoords: function(t, e) { - var i, n = this.doc.sel.primary(); - return i = null == t ? n.head : "object" == typeof t ? H(this.doc, t) : t ? n.from() : n.to(), hi(this, i, e || "page") - }, - charCoords: function(t, e) { - return ui(this, H(this.doc, t), e || "page") - }, - coordsChar: function(t, e) { - return t = ci(this, t, e || "page"), pi(this, t.left, t.top) - }, - lineAtHeight: function(t, e) { - return t = ci(this, { - top: t, - left: 0 - }, e || "page").top, L(this.doc, t + this.display.viewOffset) - }, - heightAtLine: function(t, e, i) { - var n, r = !1; - if ("number" == typeof t) { - var s = this.doc.first + this.doc.size - 1; - t < this.doc.first ? t = this.doc.first : t > s && (t = s, r = !0), n = T(this.doc, t) - } else n = t; - return li(this, n, { - top: 0, - left: 0 - }, e || "page", i).top + (r ? this.doc.height - pt(n) : 0) - }, - defaultTextHeight: function() { - return mi(this.display) - }, - defaultCharWidth: function() { - return vi(this.display) - }, - getViewport: function() { - return { - from: this.display.viewFrom, - to: this.display.viewTo - } - }, - addWidget: function(t, e, i, n, r) { - var s = this.display; - t = hi(this, H(this.doc, t)); - var o = t.bottom, - a = t.left; - if (e.style.position = "absolute", e.setAttribute("cm-ignore-events", "true"), this.display.input.setUneditable(e), s.sizer.appendChild(e), "over" == n) o = t.top; - else if ("above" == n || "near" == n) { - var l = Math.max(s.wrapper.clientHeight, this.doc.height), - c = Math.max(s.sizer.clientWidth, s.lineSpace.clientWidth); - ("above" == n || t.bottom + e.offsetHeight > l) && t.top > e.offsetHeight ? o = t.top - e.offsetHeight : t.bottom + e.offsetHeight <= l && (o = t.bottom), a + e.offsetWidth > c && (a = c - e.offsetWidth) - } - e.style.top = o + "px", e.style.left = e.style.right = "", "right" == r ? (a = s.sizer.clientWidth - e.offsetWidth, e.style.right = "0px") : ("left" == r ? a = 0 : "middle" == r && (a = (s.sizer.clientWidth - e.offsetWidth) / 2), e.style.left = a + "px"), i && Ji(this, a, o, a + e.offsetWidth, o + e.offsetHeight) - }, - triggerOnKeyDown: fn(ms), - triggerOnKeyPress: fn(bs), - triggerOnKeyUp: ys, - execCommand: function(t) { - if (va.hasOwnProperty(t)) return va[t].call(null, this) - }, - triggerElectric: fn(function(t) { - Fs(this, t) - }), - findPosH: function(t, e, i, n) { - var r = this, - s = 1; - e < 0 && (s = -1, e = -e); - for (var o = H(this.doc, t), a = 0; a < e && (o = Ws(r.doc, o, s, i, n), !o.hitSide); ++a); - return o - }, - moveH: fn(function(t, e) { - var i = this; - this.extendSelectionsBy(function(n) { - return i.display.shift || i.doc.extend || n.empty() ? Ws(i.doc, n.head, t, e, i.options.rtlMoveVisually) : t < 0 ? n.from() : n.to() - }, Lo) - }), - deleteH: fn(function(t, e) { - var i = this.doc.sel, - n = this.doc; - i.somethingSelected() ? n.replaceSelection("", null, "+delete") : as(this, function(i) { - var r = Ws(n, i.head, t, e, !1); - return t < 0 ? { - from: r, - to: i.head - } : { - from: i.head, - to: r - } - }) - }), - findPosV: function(t, e, i, n) { - var r = this, - s = 1, - o = n; - e < 0 && (s = -1, e = -e); - for (var a = H(this.doc, t), l = 0; l < e; ++l) { - var c = hi(r, a, "div"); - if (null == o ? o = c.left : c.left = o, a = Bs(r, c, s, i), a.hitSide) break - } - return a - }, - moveV: fn(function(t, e) { - var i = this, - n = this.doc, - r = [], - s = !this.display.shift && !n.extend && n.sel.somethingSelected(); - if (n.extendSelectionsBy(function(o) { - if (s) return t < 0 ? o.from() : o.to(); - var a = hi(i, o.head, "div"); - null != o.goalColumn && (a.left = o.goalColumn), r.push(a.left); - var l = Bs(i, a, t, e); - return "page" == e && o == n.sel.primary() && Qi(i, null, ui(i, l, "div").top - a.top), l - }, Lo), r.length) - for (var o = 0; o < n.sel.ranges.length; o++) n.sel.ranges[o].goalColumn = r[o] - }), - findWordAt: function(t) { - var e = this.doc, - i = T(e, t.line).text, - n = t.ch, - r = t.ch; - if (i) { - var s = this.getHelper(t, "wordChars"); - (t.xRel < 0 || r == i.length) && n ? --n : ++r; - for (var o = i.charAt(n), a = w(o, s) ? function(t) { - return w(t, s) - } : /\s/.test(o) ? function(t) { - return /\s/.test(t) - } : function(t) { - return !/\s/.test(t) && !w(t) - }; n > 0 && a(i.charAt(n - 1));) --n; - for (; r < i.length && a(i.charAt(r));) ++r - } - return new In(O(t.line, n), O(t.line, r)) - }, - toggleOverwrite: function(t) { - null != t && t == this.state.overwrite || ((this.state.overwrite = !this.state.overwrite) ? o(this.display.cursorDiv, "CodeMirror-overwrite") : Co(this.display.cursorDiv, "CodeMirror-overwrite"), Lt(this, "overwriteToggle", this, this.state.overwrite)) - }, - hasFocus: function() { - return this.display.input.getField() == s() - }, - isReadOnly: function() { - return !(!this.options.readOnly && !this.doc.cantEdit) - }, - scrollTo: fn(function(t, e) { - null == t && null == e || en(this), null != t && (this.curOp.scrollLeft = t), null != e && (this.curOp.scrollTop = e) - }), - getScrollInfo: function() { - var t = this.display.scroller; - return { - left: t.scrollLeft, - top: t.scrollTop, - height: t.scrollHeight - Be(this) - this.display.barHeight, - width: t.scrollWidth - Be(this) - this.display.barWidth, - clientHeight: Ue(this), - clientWidth: je(this) - } - }, - scrollIntoView: fn(function(t, e) { - if (null == t ? (t = { - from: this.doc.sel.primary().head, - to: null - }, null == e && (e = this.options.cursorScrollMargin)) : "number" == typeof t ? t = { - from: O(t, 0), - to: null - } : null == t.from && (t = { - from: t, - to: null - }), t.to || (t.to = t.from), t.margin = e || 0, null != t.from.line) en(this), this.curOp.scrollToPos = t; - else { - var i = Zi(this, Math.min(t.from.left, t.to.left), Math.min(t.from.top, t.to.top) - t.margin, Math.max(t.from.right, t.to.right), Math.max(t.from.bottom, t.to.bottom) + t.margin); - this.scrollTo(i.scrollLeft, i.scrollTop) - } - }), - setSize: fn(function(t, e) { - var i = this, - n = function(t) { - return "number" == typeof t || /^\d+$/.test(String(t)) ? t + "px" : t - }; - null != t && (this.display.wrapper.style.width = n(t)), null != e && (this.display.wrapper.style.height = n(e)), this.options.lineWrapping && ri(this); - var r = this.display.viewFrom; - this.doc.iter(r, this.display.viewTo, function(t) { - if (t.widgets) - for (var e = 0; e < t.widgets.length; e++) - if (t.widgets[e].noHScroll) { - mn(i, r, "widget"); - break - }++r - }), this.curOp.forceUpdate = !0, Lt(this, "refresh", this) - }), - operation: function(t) { - return hn(this, t) - }, - refresh: fn(function() { - var t = this.display.cachedTextHeight; - gn(this), this.curOp.forceUpdate = !0, si(this), this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop), $n(this), (null == t || Math.abs(t - mi(this.display)) > .5) && wi(this), Lt(this, "refresh", this) - }), - swapDoc: fn(function(t) { - var e = this.doc; - return e.cm = null, Kn(this, t), si(this), this.display.input.reset(), this.scrollTo(t.scrollLeft, t.scrollTop), this.curOp.forceScroll = !0, Se(this, "swapDoc", this, e), e - }), - getInputField: function() { - return this.display.input.getField() - }, - getWrapperElement: function() { - return this.display.wrapper - }, - getScrollerElement: function() { - return this.display.scroller - }, - getGutterElement: function() { - return this.display.gutters - } - }, It(t), t.registerHelper = function(e, n, r) { - i.hasOwnProperty(e) || (i[e] = t[e] = { - _global: [] - }), i[e][n] = r - }, t.registerGlobalHelper = function(e, n, r, s) { - t.registerHelper(e, n, s), i[e]._global.push({ - pred: r, - val: s - }) - } - }(Ns); - var Ta = "iter insert remove copy getEditor constructor".split(" "); - for (var Ma in aa.prototype) aa.prototype.hasOwnProperty(Ma) && d(Ta, Ma) < 0 && (Ns.prototype[Ma] = function(t) { - return function() { - return t.apply(this.doc, arguments) - } - }(aa.prototype[Ma])); - return It(aa), Ns.inputStyles = { - textarea: Xs, - contenteditable: js - }, Ns.defineMode = function(t) { - Ns.defaults.mode || "null" == t || (Ns.defaults.mode = t), jt.apply(this, arguments) - }, Ns.defineMIME = Ut, Ns.defineMode("null", function() { - return { - token: function(t) { - return t.skipToEnd() - } - } - }), Ns.defineMIME("text/plain", "null"), Ns.defineExtension = function(t, e) { - Ns.prototype[t] = e - }, Ns.defineDocExtension = function(t, e) { - aa.prototype[t] = e - }, Ns.fromTextArea = Js, - function(t) { - t.off = $t, t.on = Ho, t.wheelEventPixels = Vi, t.Doc = aa, t.splitLines = Vo, t.countColumn = u, t.findColumn = f, t.isWordChar = x, t.Pass = Eo, t.signal = Lt, t.Line = le, t.changeEnd = zn, t.scrollbarModel = na, t.Pos = O, t.cmpPos = I, t.modes = Uo, t.mimeModes = qo, t.resolveMode = qt, t.getMode = Kt, t.modeExtensions = Ko, t.extendMode = Gt, t.copyState = Yt, t.startState = Jt, t.innerMode = Xt, t.commands = va, t.keyMap = pa, t.keyName = ss, t.isModifierKey = rs, t.lookupKey = ns, t.normalizeKeyMap = is, t.StringStream = Go, t.SharedTextMarker = Wr, t.TextMarker = Rr, t.LineWidget = zr, t.e_preventDefault = Dt, t.e_stopPropagation = _t, t.e_stop = Ft, t.addClass = o, t.contains = r, t.rmClass = Co, t.keyNames = ua - }(Ns), Ns.version = "5.21.0", Ns - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: { - change: "onChange" - }, - initialize: function(t) { - var e = this.model; - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.target = e.target, this.className = this.pfx + "trait", this.labelClass = this.ppfx + "label", this.fieldClass = this.ppfx + "field " + this.ppfx + "field-" + e.get("type"), this.inputhClass = this.ppfx + "input-holder", e.off("change:value", this.onValueChange), this.listenTo(e, "change:value", this.onValueChange), this.tmpl = '
' - }, - onChange: function() { - this.model.set("value", this.getInputEl().value) - }, - getValueForTarget: function() { - return this.model.get("value") - }, - onValueChange: function() { - var t = this.model, - i = this.target, - n = t.get("name"), - r = this.getValueForTarget(); - if (t.get("changeProp")) i.set(n, r); - else { - var s = e.clone(i.get("attributes")); - s[n] = r, i.set("attributes", s) - } - }, - renderLabel: function() { - this.$el.html('
' + this.getLabel() + "
") - }, - getLabel: function() { - var t = this.model, - e = t.get("label") || t.get("name"); - return e.charAt(0).toUpperCase() + e.slice(1).replace(/-/g, " ") - }, - getInputEl: function() { - if (!this.$input) { - var t = this.model, - e = this.target, - i = t.get("name"), - n = { - placeholder: t.get("placeholder") || t.get("default"), - type: t.get("type") || "text" - }; - if (t.get("changeProp")) n.value = e.get(i); - else { - var r = e.get("attributes"); - n.value = t.get("value") || r[i] - } - t.get("min") && (n.min = t.get("min")), t.get("max") && (n.max = t.get("max")), this.$input = $("", n) - } - return this.$input.get(0) - }, - getModelValue: function() { - var t, e = this.model, - i = this.target, - n = e.get("name"); - if (e.get("changeProp")) t = i.get(n); - else { - var r = i.get("attributes"); - t = e.get("value") || r[n] - } - return t - }, - renderField: function() { - if (!this.$input) { - this.$el.append(this.tmpl); - var t = this.getInputEl(); - this.$el.find("." + this.inputhClass).prepend(t) - } - }, - render: function() { - return this.renderLabel(), this.renderField(), this.el.className = this.className, this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = (i(0), i(3)); - t.exports = n.extend({ - tagName: "img", - events: { - dblclick: "openModal", - click: "initResize" - }, - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), this.listenTo(this.model, "change:src", this.updateSrc), this.listenTo(this.model, "dblclick active", this.openModal), this.classEmpty = this.ppfx + "plh-image", this.config.modal && (this.modal = this.config.modal), this.config.am && (this.am = this.config.am) - }, - updateSrc: function() { - var t = this.model.get("src"); - this.$el.attr("src", t), t ? this.$el.removeClass(this.classEmpty) : this.$el.addClass(this.classEmpty) - }, - openModal: function(t) { - var e = this.opts.config.em, - i = e ? e.get("Editor") : ""; - i && i.runCommand("open-assets", { - target: this.model, - onSelect: function() { - i.Modal.close(), i.AssetManager.setTarget(null) - } - }) - }, - render: function() { - this.updateAttributes(), this.updateClasses(); - var t = this.$el.attr("class") || ""; - return this.model.get("src") || this.$el.attr("class", (t + " " + this.classEmpty).trim()), this.$el.attr("onmousedown", "return false"), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(17)); - t.exports = e.extend({}, n, { - init: function(t) { - e.bindAll(this, "startDraw", "draw", "endDraw", "rollback"), this.config = t || {}, this.hType = this.config.newFixedH ? "height" : "min-height", this.allowDraw = 1 - }, - enable: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.enable.apply(this, e), this.$wr.css("cursor", "crosshair"), this.allowDraw && this.$wr.on("mousedown", this.startDraw), this.ghost = this.canvas.getGhostEl() - }, - startDraw: function(t) { - t.preventDefault(), this.stopSelectPosition(), this.ghost.style.display = "block", this.frameOff = this.getOffsetDim(), this.startPos = { - top: t.pageY + this.frameOff.top, - left: t.pageX + this.frameOff.left - }, this.isDragged = !1, this.tempComponent = { - style: {} - }, this.beforeDraw(this.tempComponent), this.updateSize(this.startPos.top, this.startPos.left, 0, 0), this.toggleEvents(1) - }, - toggleEvents: function(t) { - var e = t ? "on" : "off"; - this.$wr[e]("mousemove", this.draw), this.$wr[e]("mouseup", this.endDraw), this.$canvas[e]("mousemove", this.draw), $(document)[e]("mouseup", this.endDraw), $(document)[e]("keypress", this.rollback) - }, - draw: function(t) { - this.isDragged = !0, this.updateComponentSize(t) - }, - endDraw: function(t) { - this.toggleEvents(); - var e = {}; - if (this.isDragged) { - this.updateComponentSize(t), this.setRequirements(this.tempComponent); - var i = this.sorter.lastPos; - e = this.create(this.sorter.target, this.tempComponent, i.index, i.method), this.sorter.prevTarget = null - } - this.ghost.style.display = "none", this.startSelectPosition(), this.afterDraw(e) - }, - create: function(t, e, i, n, r) { - i = "after" === n ? i + 1 : i; - var s = r || {}, - o = $(t), - a = o.data("model"), - l = o.data("collection"), - c = a ? a.get("droppable") : 1; - if (s.at = i, l && c) return l.add(e, s); - console.warn("Invalid target position") - }, - setRequirements: function(t) { - var e = this.config, - i = t.style; - i.width.replace(/\D/g, "") < e.minComponentW && (i.width = e.minComponentW + "px"), i[this.hType].replace(/\D/g, "") < e.minComponentH && (i[this.hType] = e.minComponentH + "px"), e.newFixedH && (i.overflow = "auto"), this.absoluteMode ? i.position = "absolute" : (delete i.left, delete i.top); - var n = this.sorter.lastPos; - return this.nearFloat(n.index, n.method, this.sorter.lastDims) && (i.float = "left"), this.config.firstCentered && this.getCanvasWrapper() == this.sorter.target && (i.margin = "0 auto"), t - }, - updateComponentSize: function(t) { - var e = t.pageY + this.frameOff.top, - i = t.pageX + this.frameOff.left, - n = this.startPos, - r = n.top, - s = n.left, - o = e - r, - a = i - s; - i < s && (s = i, a = n.left - i), e < r && (r = e, o = n.top - e), this.updateSize(r, s, a, o) - }, - updateSize: function(t, e, i, n) { - var r = "px", - s = this.ghost.style, - o = this.tempComponent.style; - s.top = o.top = t + r, s.left = o.left = e + r, s.width = o.width = i + r, s[this.hType] = o[this.hType] = n + r - }, - rollback: function(t, e) { - ((t.which || t.keyCode) == this.config.ESCAPE_KEY || e) && (this.isDragged = !1, this.endDraw()) - }, - beforeDraw: function(t) { - t.editable = !1 - }, - afterDraw: function(t) {}, - run: function(t, e, i) { - this.editor = t, this.sender = e, this.$wr = this.$wrapper, this.enable() - }, - stop: function() { - this.stopSelectPosition(), this.$wrapper.css("cursor", ""), this.$wrapper.unbind() - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(126), - r = i(113), - s = i(41); - t.exports = { - init: function(t) { - e.bindAll(this, "onHover", "onOut", "onClick", "onKeyPress") - }, - enable: function() { - e.bindAll(this, "copyComp", "pasteComp", "onFrameScroll"), this.frameOff = this.canvasOff = this.adjScroll = null; - var t = this.config.em.get("Config"); - this.startSelectComponent(), this.toggleClipboard(t.copyPaste); - var i = this.config.em; - i.on("component:update", this.updateAttached, this), i.on("change:canvasOffset", this.updateAttached, this), i.on("change:selectedComponent", this.updateToolbar, this) - }, - toggleClipboard: function(t) { - t || 0 ? (s("⌘+c, ctrl+c", this.copyComp), s("⌘+v, ctrl+v", this.pasteComp)) : (s.unbind("⌘+c, ctrl+c"), s.unbind("⌘+v, ctrl+v")) - }, - copyComp: function() { - var t = this.editorModel.get("selectedComponent"); - t && t.get("copyable") && this.editorModel.set("clipboard", t) - }, - pasteComp: function() { - var t = this.editorModel.get("clipboard"), - e = this.editorModel.get("selectedComponent"); - if (t && e && e.collection) { - var i = e.collection.indexOf(e), - n = t.clone(); - e.collection.add(n, { - at: i + 1 - }) - } - }, - getCanvasBodyEl: function() { - return this.$bodyEl || (this.$bodyEl = $(this.getCanvasBody())), this.$bodyEl - }, - startSelectComponent: function() { - this.toggleSelectComponent(1) - }, - stopSelectComponent: function() { - this.toggleSelectComponent() - }, - toggleSelectComponent: function(t) { - var e = t ? "on" : "off"; - this.getCanvasBodyEl()[e]("mouseover", "*", this.onHover)[e]("mouseout", "*", this.onOut)[e]("click", "*", this.onClick); - var i = this.getContentWindow(); - i[e]("scroll", this.onFrameScroll), i[e]("keydown", this.onKeyPress) - }, - onKeyPress: function(t) { - var e = t.which || t.keyCode, - i = this.editorModel.get("selectedComponent"), - n = "BODY" !== this.frameEl.contentDocument.activeElement.tagName; - if ((8 == e || 46 == e) && (n || t.preventDefault(), i && !n)) { - if (!i.get("removable")) return; - i.set("status", ""), i.destroy(), this.hideBadge(), this.clean(), this.hideHighlighter(), this.editorModel.set("selectedComponent", null) - } - }, - onHover: function(t) { - t.stopPropagation(); - var e = t.target; - this.adjScroll || (this.adjScroll = 1, this.onFrameScroll(t), this.updateAttached()); - var i = this.getElementPos(e); - this.updateBadge(e, i), this.updateHighlighter(e, i), this.showElementOffset(e, i) - }, - onOut: function(t) { - t.stopPropagation(), this.hideBadge(), this.hideHighlighter(), this.hideElementOffset() - }, - showElementOffset: function(t, e) { - var i = $(t), - n = i.data("model"); - n && "selected" == n.get("status") || this.editor.runCommand("show-offset", { - el: t, - elPos: e - }) - }, - hideElementOffset: function(t, e) { - this.editor.stopCommand("show-offset") - }, - showFixedElementOffset: function(t, e) { - this.editor.runCommand("show-offset", { - el: t, - elPos: e, - state: "Fixed" - }) - }, - hideFixedElementOffset: function(t, e) { - this.editor && this.editor.stopCommand("show-offset", { - state: "Fixed" - }) - }, - hideHighlighter: function() { - this.canvas.getHighlighter().style.display = "none" - }, - onClick: function(t) { - var e = $(t.target).data("model"); - if (e) { - var i = e.get("stylable"); - (i instanceof Array || i) && this.onSelect(t, t.target) - } - }, - updateBadge: function(t, e) { - var i = $(t), - n = this.canvas, - r = n.getConfig(), - s = r.customBadgeLabel; - this.cacheEl = t; - var o = i.data("model"); - if (o && o.get("badgable")) { - var a = this.getBadge(), - l = o.getIcon() + o.getName(); - l = s ? s(o) : l, a.innerHTML = l; - var c = a.style; - c.display = "block"; - var u = n.getCanvasView().getPosition(), - h = a ? a.offsetHeight : 0, - d = a ? a.offsetWidth : 0, - f = e.top - h < u.top ? u.top : e.top - h, - p = e.left + d < u.left ? u.left : e.left; - c.top = f + "px", c.left = p + "px" - } - }, - updateHighlighter: function(t, e) { - var i = $(t), - n = i.data("model"); - if (n && (!n || "selected" != n.get("status"))) { - var r = this.canvas.getHighlighter(), - s = r.style; - s.left = e.left + "px", s.top = e.top + "px", s.height = e.height + "px", s.width = e.width + "px", s.display = "block" - } - }, - onSelect: function(t, e) { - t.stopPropagation(); - var i = this.editorModel.get("selectedComponent"); - this.cleanPrevious(i); - var n = $(e), - r = n.data("model"); - if (r) { - var s = this.em, - o = r.get("mirror"); - r = o || r; - var a = s.get("opened"); - for (var l in a) { - a[l].set("open", 0) - } - for (var c = r.collection ? r.collection.parent : null; c;) c.set("open", 1), a[c.cid] = c, c = c.collection ? c.collection.parent : null; - this.editorModel.set("selectedComponent", r), r.set("status", "selected"), this.showFixedElementOffset(e), this.hideElementOffset(), this.hideHighlighter() - } - }, - updateToolbar: function(t) { - var e = this.config.em, - i = t == e ? e.get("selectedComponent") : t; - if (i) { - var s = i.get("toolbar"), - o = (this.ppfx, e.get("Config").showToolbar), - a = this.canvas.getToolbarEl(), - l = a.style; - if (o && s && s.length) { - if (l.display = "flex", !this.toolbar) { - a.innerHTML = "", this.toolbar = new r(s); - var c = new n({ - collection: this.toolbar, - editor: this.editor - }); - a.appendChild(c.render().el) - } - this.toolbar.reset(s); - var u = i.view; - u && this.updateToolbarPos(u.el) - } else l.display = "none" - } - }, - updateToolbarPos: function(t, e) { - var i = this.canvas.getToolbarEl(), - n = i.style, - r = this.canvas.getTargetToElementDim(i, t, { - elPos: e, - event: "toolbarPosUpdate" - }), - s = r.left + r.elementWidth - r.targetWidth; - n.top = r.top + "px", n.left = s + "px" - }, - getCanvasPosition: function() { - return this.canvas.getCanvasView().getPosition() - }, - clean: function() { - this.selEl && this.selEl.removeClass(this.hoverClass) - }, - getBadge: function() { - return this.canvas.getBadgeEl() - }, - onFrameScroll: function(t) { - var e = this.cacheEl; - if (e) { - var i = this.getElementPos(e); - this.updateBadge(e, i); - var n = this.em.get("selectedComponent"); - n && this.updateToolbarPos(n.view.el) - } - }, - updateAttached: function() { - var t = this.em.get("selectedComponent"); - if (t) { - var e = t.view; - this.updateToolbarPos(e.el), this.showFixedElementOffset(e.el) - } - }, - getElementPos: function(t, e) { - return this.canvas.getCanvasView().getElementPos(t) - }, - hideBadge: function() { - this.getBadge().style.display = "none" - }, - cleanPrevious: function(t) { - t && t.set({ - status: "", - state: "" - }) - }, - getContentWindow: function() { - return this.contWindow || (this.contWindow = $(this.frameEl.contentWindow)), this.contWindow - }, - run: function(t) { - t && t.get && (this.editor = t.get("Editor")), this.enable() - }, - stop: function() { - this.stopSelectComponent(), this.cleanPrevious(this.em.get("selectedComponent")), this.clean(), this.em.set("selectedComponent", null), this.toggleClipboard(), this.hideBadge(), this.hideFixedElementOffset(), this.canvas.getToolbarEl().style.display = "none", this.em.off("component:update", this.updateAttached, this), this.em.off("change:canvasOffset", this.updateAttached, this), this.em.off("change:selectedComponent", this.updateToolbar, this) - } - } - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(2); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "image", - tagName: "img", - src: "", - void: 1, - droppable: !1, - resizable: !0, - traits: ["alt"] - }), - initialize: function(t, e) { - n.prototype.initialize.apply(this, arguments); - var i = this.get("attributes"); - i.src && this.set("src", i.src) - }, - initToolbar: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - if (n.prototype.initToolbar.apply(this, e), this.sm && this.sm.get) { - var r = this.sm.get("Commands"); - if (r.has("image-editor")) { - var s = this.get("toolbar"); - s.push({ - attributes: { - class: "fa fa-pencil" - }, - command: "image-editor" - }), this.set("toolbar", s) - } - } - }, - getAttrToHTML: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - var r = n.prototype.getAttrToHTML.apply(this, e); - delete r.onmousedown; - var s = this.get("src"); - return s && (r.src = s), r - }, - parseUri: function(t) { - var e = document.createElement("a"); - e.href = t; - for (var i = {}, n = e.search.substring(1).split("&"), r = 0; r < n.length; r++) { - var s = n[r].split("="), - o = decodeURIComponent(s[0]); - o && (i[o] = decodeURIComponent(s[1])) - } - return { - hostname: e.hostname, - pathname: e.pathname, - protocol: e.protocol, - search: e.search, - hash: e.hash, - port: e.port, - query: i - } - } - }, { - isComponent: function(t) { - var e = ""; - return "IMG" == t.tagName && (e = { - type: "image" - }), e - } - }) - }).call(e, i(1)) - }, function(e, i) { - e.exports = t - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - idAttribute: "src", - defaults: { - type: "", - src: "" - }, - getFilename: function() { - return this.get("src").split("/").pop() - }, - getExtension: function() { - return this.getFilename().split(".").pop() - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - initialize: function(t) { - this.options = t, this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.className = this.pfx + "asset", this.listenTo(this.model, "destroy remove", this.remove) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
\n
<%= title %>
\n multiple/>\n
\n
\n'), - events: {}, - initialize: function(t) { - this.options = t || {}, this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.target = this.collection || {}, this.uploadId = this.pfx + "uploadFile", this.disabled = !this.config.upload, this.events["change #" + this.uploadId] = "uploadFile"; - var e = this.config.uploadFile; - e && (this.uploadFile = e.bind(this)), this.delegateEvents() - }, - uploadFile: function(t) { - for (var e = t.dataTransfer ? t.dataTransfer.files : t.target.files, i = new FormData, n = 0; n < e.length; n++) i.append("files[]", e[n]); - var r = this.target; - $.ajax({ - url: this.config.upload, - type: "POST", - data: i, - beforeSend: this.config.beforeSend, - complete: this.config.onComplete, - xhrFields: { - onprogress: function(t) { - t.lengthComputable - }, - onload: function(t) {} - }, - cache: !1, - contentType: !1, - processData: !1 - }).done(function(t) { - r.add(t.data) - }).always(function() {}) - }, - initDrop: function() { - var t = this; - if (!this.uploadForm && (this.uploadForm = this.$el.find("form").get(0), "draggable" in this.uploadForm)) { - this.uploadFile; - this.uploadForm.ondragover = function() { - return this.className = t.pfx + "hover", !1 - }, this.uploadForm.ondragleave = function() { - return this.className = "", !1 - }, this.uploadForm.ondrop = function(e) { - this.className = "", e.preventDefault(), t.uploadFile(e) - } - } - }, - render: function() { - return this.$el.html(this.template({ - title: this.config.uploadText, - uploadId: this.uploadId, - disabled: this.disabled, - pfx: this.pfx - })), this.initDrop(), this.$el.attr("class", this.pfx + "file-uploader"), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - defaults: { - id: "", - label: "", - open: !0, - attributes: {} - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(8)); - t.exports = e.extend({}, n, { - init: function() { - for (var t = arguments.length, i = Array(t), r = 0; r < t; r++) i[r] = arguments[r]; - n.init.apply(this, i), e.bindAll(this, "insertComponent"), this.allowDraw = 0 - }, - run: function(t, e, i) { - this.em = t, this.sender = e, this.opt = i || {}, this.$wr = this.$wrapper, this.enable() - }, - enable: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.enable.apply(this, e), this.$wr.on("click", this.insertComponent) - }, - insertComponent: function() { - this.$wr.off("click", this.insertComponent), this.stopSelectPosition(); - var t = this.buildContent(); - this.beforeInsert(t); - var e = this.sorter.lastPos.index, - i = this.create(this.sorter.target, t, e, null, { - silent: !1 - }); - this.opt.terminateAfterInsert && this.sender ? this.sender.set("active", !1) : this.enable(), i && (this.em && this.em.editor.initChildrenComp(i), this.afterInsert(i, this)) - }, - beforeInsert: function(t) {}, - afterInsert: function(t) {}, - buildContent: function() { - return this.opt.content || {} - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - startSelectPosition: function(t, e) { - this.isPointed = !1; - var i = this.editorModel.get("Utils"); - i && !this.sorter && (this.sorter = new i.Sorter({ - container: this.getCanvasBody(), - placer: this.canvas.getPlacerEl(), - containerSel: "*", - itemSel: "*", - pfx: this.ppfx, - direction: "a", - document: e, - wmargin: 1, - nested: 1, - em: this.editorModel, - canvasRelative: 1 - })), this.sorter.startSort(t) - }, - getOffsetDim: function() { - var t = this.offset(this.canvas.getFrameEl()), - e = this.offset(this.canvas.getElement()); - return { - top: t.top - e.top, - left: t.left - e.left - } - }, - stopSelectPosition: function() { - this.posTargetCollection = null, this.posIndex = "after" == this.posMethod && 0 !== this.cDim.length ? this.posIndex + 1 : this.posIndex, this.sorter && (this.sorter.moved = 0, this.sorter.endMove()), this.cDim && (this.posIsLastEl = 0 !== this.cDim.length && "after" == this.posMethod && this.posIndex == this.cDim.length, this.posTargetEl = 0 === this.cDim.length ? $(this.outsideElem) : !this.posIsLastEl && this.cDim[this.posIndex] ? $(this.cDim[this.posIndex][5]).parent() : $(this.outsideElem), this.posTargetModel = this.posTargetEl.data("model"), this.posTargetCollection = this.posTargetEl.data("model-comp")) - }, - enable: function() { - this.startSelectPosition() - }, - nearFloat: function(t, e, i) { - var n = t || 0, - r = e || "before", - s = i.length, - o = 0 !== s && "after" == r && n == s; - return 0 !== s && (!o && !i[n][4] || i[n - 1] && !i[n - 1][4] || o && !i[n - 1][4]) ? 1 : 0 - }, - run: function() { - this.enable() - }, - stop: function() { - this.stopSelectPosition(), this.$wrapper.css("cursor", ""), this.$wrapper.unbind() - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(22), - r = function(t) { - return t && t.__esModule ? t : { - default: t - } - }(n), - s = i(0), - o = i(19); - t.exports = s.Model.extend(r.default).extend({ - defaults: { - selectors: {}, - selectorsAdd: "", - style: {}, - mediaText: "", - state: "", - stylable: !0 - }, - initialize: function(t, e) { - if (this.config = t || {}, this.sm = e ? e.sm || {} : {}, this.slct = this.config.selectors || [], this.sm.get) { - for (var i = [], n = 0; n < this.slct.length; n++) i.push(this.sm.get("SelectorManager").add(this.slct[n].name || this.slct[n])); - this.slct = i - } - this.set("selectors", new o(this.slct)) - }, - compare: function(t, i, n, r) { - var s = r || {}, - o = i || "", - a = n || "", - l = s.selectorsAdd || ""; - t instanceof Array || t.models || (t = [t]); - var c = e.map(t.models || t, function(t) { - return t.get("name") - }), - u = e.map(this.get("selectors").models, function(t) { - return t.get("name") - }); - if (c.length !== u.length) return !1; - for (var h = 0; h < c.length; h++) { - for (var d = 0, f = 0; f < u.length; f++) c[h] === u[f] && (d = 1); - if (0 === d) return !1 - } - return this.get("state") === o && (this.get("mediaText") === a && this.get("selectorsAdd") === l) - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Collection.extend({ - initialize: function(t, e) { - this.model = function(t, e) { - return this.ClassTag || (this.ClassTag = i(32)), new this.ClassTag(t, e) - } - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(2); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "text", - droppable: !1, - editable: !0 - }) - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(3)); - t.exports = n.extend({ - events: { - dblclick: "enableEditing", - change: "parseRender" - }, - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), e.bindAll(this, "disableEditing"), this.listenTo(this.model, "focus active", this.enableEditing), this.rte = this.config.rte || "", this.activeRte = null, this.em = this.config.em - }, - enableEditing: function(t) { - var e = this.model.get("editable"); - if (this.rte && e) try { - this.activeRte = this.rte.attach(this, this.activeRte), this.rte.focus(this, this.activeRte) - } catch (t) { - console.error(t) - } - this.toggleEvents(1) - }, - disableEditing: function(t) { - var e = this.model, - i = e.get("editable"); - if (this.rte && i) { - try { - this.rte.detach(this, this.activeRte) - } catch (t) { - console.error(t) - } - var n = this.getChildrenContainer(); - e.set("content", n.innerHTML) - }!this.rte.customRte && i && this.parseRender(), this.toggleEvents() - }, - disablePropagation: function(t) { - t.stopPropagation() - }, - parseRender: function() { - var t = this.getChildrenContainer(), - e = this.model.get("components"), - i = { - silent: !0 - }; - e.reset(null, i), e.add(t.innerHTML, i), this.model.set("content", ""), this.render(), e.trigger("resetNavigator") - }, - toggleEvents: function(t) { - var e = t ? "on" : "off", - i = [this.el.ownerDocument, document, this.rte]; - $(i).off("mousedown", this.disableEditing), $(i)[e]("mousedown", this.disableEditing), this.$el.off("mousedown", this.disablePropagation), this.$el[e]("mousedown", this.disablePropagation) - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - Object.defineProperty(e, "__esModule", { - value: !0 - }), e.default = { - extendStyle: function(t) { - return Object.assign({}, this.getStyle(), t) - }, - getStyle: function() { - return this.get("style") - }, - setStyle: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - this.set("style", Object.assign({}, t), e) - }, - addStyle: function(t) { - var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", - i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - "string" == typeof t ? t = { - prop: e - } : i = e || {}, t = this.extendStyle(t), this.setStyle(t, i) - }, - removeStyle: function(t) { - var e = Object.assign({}, this.getStyle()); - delete e[t], this.setStyle(e) - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(127)); - i(203); - t.exports = n.extend({ - template: e.template('\n
input-holder\'>
\n
\n
\n
\n
\n
'), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments); - var e = this.ppfx; - this.colorCls = e + "field-color-picker", this.inputClass = e + "field " + e + "field-color", this.colorHolderClass = e + "field-colorp-c", this.listenTo(this.model, "change:value", this.handleModelChange) - }, - handleModelChange: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.prototype.handleModelChange.apply(this, e); - var r = this.model.get("value"), - s = this.getColorEl(); - r = "none" === r ? "#fff" : r, s.spectrum("set", r), s.get(0).style.backgroundColor = r - }, - getColorEl: function() { - if (!this.colorEl) { - var t = this.model, - e = $("
", { - class: this.colorCls - }), - i = e.get(0).style, - n = this.target && this.target.config ? this.target.config.el : ""; - e.spectrum({ - appendTo: n || "body", - maxSelectionSize: 8, - showPalette: !0, - showAlpha: !0, - chooseText: "Ok", - cancelText: "⨯", - palette: [], - move: function(t) { - var e = 1 == t.getAlpha() ? t.toHexString() : t.toRgbString(); - i.backgroundColor = e - }, - change: function(e) { - var n = 1 == e.getAlpha() ? e.toHexString() : e.toRgbString(); - n = n.replace(/ /g, ""), i.backgroundColor = n, t.set("value", n) - } - }), this.colorEl = e - } - return this.colorEl - }, - render: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - return n.prototype.render.apply(this, e), this.$el.find("." + this.colorHolderClass).html(this.getColorEl()), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: {}, - template: e.template('\n input-holder\'>\n field-units\'>\n
\n
\n
\n
'), - initialize: function(t) { - e.bindAll(this, "moveIncrement", "upIncrement"); - var i = t || {}, - n = i.ppfx || "", - r = i.contClass || n + "field"; - this.ppfx = n, this.docEl = $(document), this.inputCls = n + "input-number", this.unitCls = n + "input-unit", this.contClass = r, this.events["click ." + n + "field-arrow-u"] = "upArrowClick", this.events["click ." + n + "field-arrow-d"] = "downArrowClick", this.events["mousedown ." + n + "field-arrows"] = "downIncrement", this.events["change ." + this.inputCls] = "handleChange", this.events["change ." + this.unitCls] = "handleUnitChange", this.listenTo(this.model, "change:unit change:value", this.handleModelChange), this.delegateEvents() - }, - setValue: function(t, e) { - var i = e || {}, - n = this.validateInputValue(t, { - deepCheck: 1 - }), - r = { - value: n.value - }; - (n.unit || n.force) && (r.unit = n.unit), this.model.set(r, i), i.silent && this.handleModelChange() - }, - handleChange: function(t) { - t.stopPropagation(), this.setValue(this.getInputEl().value), this.elementUpdated() - }, - handleUnitChange: function(t) { - t.stopPropagation(); - var e = this.getUnitEl().value; - this.model.set("unit", e), this.elementUpdated() - }, - elementUpdated: function() { - this.model.trigger("el:change") - }, - handleModelChange: function() { - var t = this.model; - this.getInputEl().value = t.get("value"); - var e = this.getUnitEl(); - e && (e.value = t.get("unit")) - }, - getInputEl: function() { - return this.inputEl || (this.inputEl = $("", { - type: "text", - class: this.inputCls, - placeholder: this.model.get("defaults") - })), this.inputEl.get(0) - }, - getUnitEl: function() { - if (!this.unitEl) { - var t = this.model, - i = t.get("units") || []; - if (i.length) { - var n = '", this.unitEl = $(n) - } - } - return this.unitEl && this.unitEl.get(0) - }, - upArrowClick: function() { - var t = this.model.get("value"); - t = isNaN(t) ? 1 : parseInt(t, 10) + 1; - var e = this.validateInputValue(t); - this.model.set("value", e.value) - }, - downArrowClick: function() { - var t = this.model.get("value"); - t = isNaN(t) ? 0 : parseInt(t, 10) - 1; - var e = this.validateInputValue(t); - this.model.set("value", e.value) - }, - downIncrement: function(t) { - t.preventDefault(), this.moved = 0; - var e = this.model.get("value"); - e = isNaN(e) ? 0 : parseInt(e, 10); - var i = { - y: t.pageY, - val: e - }; - this.docEl.mouseup(i, this.upIncrement), this.docEl.mousemove(i, this.moveIncrement) - }, - moveIncrement: function(t) { - this.moved = 1; - var e = parseInt(t.data.val - t.pageY + t.data.y, 10); - return this.prValue = this.validateInputValue(e).value, this.model.set("value", this.prValue, { - avoidStore: 1 - }), !1 - }, - upIncrement: function(t) { - if (this.docEl.off("mouseup", this.upIncrement), this.docEl.off("mousemove", this.moveIncrement), this.prValue && this.moved) { - var e = this.prValue - 1; - this.model.set("value", e, { - avoidStore: 1 - }).set("value", e + 1), this.elementUpdated() - } - }, - validateInputValue: function(t, i) { - var n = 0, - r = i || {}, - s = this.model, - o = t || s.get("defaults"), - a = s.get("units") || [], - l = s.get("unit") || a.length && a[0] || "", - c = s.get("max"), - u = s.get("min"); - if (r.deepCheck) { - var h = s.get("fixedValues") || []; - if (o) { - var d = new RegExp("^" + h.join("|"), "g"); - if (h.length && d.test(o)) o = o.match(d)[0], l = "", n = 1; - else { - var f = o + ""; - o += "", o = parseFloat(o.replace(",", ".")), o = isNaN(o) ? s.get("defaults") : o; - var p = f.replace(o, ""); - e.indexOf(a, p) >= 0 && (l = p) - } - } - } - return void 0 !== c && "" !== c && (o = o > c ? c : o), void 0 !== u && "" !== u && (o = o < u ? u : o), { - force: n, - value: o, - unit: l - } - }, - render: function() { - var t = this.ppfx; - return this.$el.html(this.template({ - ppfx: t - })), this.$el.find("." + t + "input-holder").html(this.getInputEl()), this.$el.find("." + t + "field-units").html(this.getUnitEl()), this.$el.addClass(this.contClass), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - itemView: "", - itemsView: "", - itemType: "type", - initialize: function(t, e) { - this.config = e || {} - }, - addTo: function(t) { - this.add(t) - }, - add: function(t, e) { - var i = e || null, - n = this.itemView, - r = t.get(this.itemType); - this.itemsView && this.itemsView[r] && (n = this.itemsView[r]); - var s = new n({ - model: t, - config: this.config - }, this.config), - o = s.render().el; - i ? i.appendChild(o) : this.$el.append(o) - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.length && this.collection.each(function(e) { - this.add(e, t) - }, this), this.$el.append(t), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(140); - t.exports = n.View.extend({ - initialize: function(t) { - if (this.opt = t, this.config = t.config, this.preview = t.preview, this.ppfx = t.config.pStylePrefix || "", this.pfx = t.config.stylePrefix || "", this.parent = t.parent, this.listenTo(this.collection, "add", this.addTo), this.listenTo(this.collection, "reset resetNavigator", this.render), this.className = this.pfx + "items", this.config.sortable && !this.opt.sorter) { - var e = this.pfx, - i = this.config.em.get("Utils"); - this.opt.sorter = new i.Sorter({ - container: this.el, - containerSel: "." + e + "items", - itemSel: "." + e + "item", - ppfx: this.ppfx, - ignoreViewChildren: 1, - pfx: e, - nested: 1 - }) - } - this.sorter = this.opt.sorter || "", this.parent || (this.className += " " + this.pfx + this.config.containerId), this.$el.data("collection", this.collection), this.parent && this.$el.data("model", this.parent) - }, - addTo: function(t) { - var e = this.collection.indexOf(t); - this.addToCollection(t, null, e) - }, - addToCollection: function(t, e, i) { - var n = e || null, - s = r, - o = new s({ - model: t, - config: this.config, - sorter: this.sorter, - isCountable: this.isCountable, - opened: this.opt.opened - }), - a = o.render().el; - if (n) n.appendChild(a); - else if (void 0 !== i) { - var l = "before"; - this.$el.children().length == i && (i--, l = "after"), i < 0 ? this.$el.append(a) : this.$el.children().eq(i)[l](a) - } else this.$el.append(a); - return a - }, - isCountable: function(t, e) { - var i = t.get("type"), - n = t.get("tagName"); - return ("textnode" != i && "br" != n || !e) && !t.get("hiddenLayer") - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.isCountable(e, this.config.hideTextnode) && this.addToCollection(e, t) - }, this), this.$el.append(t), this.$el.attr("class", e.result(this, "className")), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(143); - t.exports = n.Collection.extend({ - model: r, - deactivateAllExceptOne: function(t, e) { - this.forEach(function(i, n) { - i !== t && (i.set("active", !1), e && i.get("buttons").length && i.get("buttons").deactivateAllExceptOne(t, e)) - }) - }, - deactivateAll: function(t) { - var e = t || ""; - this.forEach(function(t, i) { - t.get("context") == e && (t.set("active", !1), t.get("buttons").length && t.get("buttons").deactivateAll(e)) - }) - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(27); - t.exports = n.Model.extend({ - defaults: { - id: "", - content: "", - visible: !0, - buttons: [] - }, - initialize: function(t) { - this.btn = this.get("buttons") || [], this.buttons = new r(this.btn), this.set("buttons", this.buttons) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(145); - t.exports = n.View.extend({ - initialize: function(t) { - this.opt = t || {}, this.config = this.opt.config || {}, this.pfx = this.config.stylePrefix || "", this.parentM = this.opt.parentM || null, this.listenTo(this.collection, "add", this.addTo), this.listenTo(this.collection, "reset", this.render), this.className = this.pfx + "buttons" - }, - addTo: function(t) { - this.addToCollection(t) - }, - addToCollection: function(t, e) { - var i = e || null, - n = r, - s = new n({ - model: t, - config: this.config, - parentM: this.parentM - }), - o = s.render().el; - return i ? i.appendChild(o) : this.$el.append(o), o - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.addToCollection(e, t) - }, this), this.$el.append(t), this.$el.attr("class", e.result(this, "className")), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(29); - t.exports = n.View.extend({ - initialize: function(t) { - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.buttons = this.model.get("buttons"), this.className = this.pfx + "panel", this.id = this.pfx + this.model.get("id"), this.listenTo(this.model, "change:appendContent", this.appendContent), this.listenTo(this.model, "change:content", this.updateContent) - }, - appendContent: function() { - this.$el.append(this.model.get("appendContent")) - }, - updateContent: function() { - this.$el.html(this.model.get("content")) - }, - initResize: function() { - var t = this.config.em, - e = t ? t.get("Editor") : "", - i = this.model.get("resizable"); - if (e && i) { - var n, r, s, o = !0 === i ? [1, 1, 1, 1] : i, - a = o.length, - l = 0; - 2 == a ? (n = o[0], s = o[0], r = o[1], l = o[1]) : 4 == a && (n = o[0], r = o[1], s = o[2], l = o[3]); - var c = e.Utils.Resizer.init({ - tc: n, - cr: r, - bc: s, - cl: l, - tl: 0, - tr: 0, - bl: 0, - br: 0, - appendTo: this.el, - prefix: e.getConfig().stylePrefix, - posFetcher: function(t) { - var e = t.getBoundingClientRect(); - return { - left: 0, - top: 0, - width: e.width, - height: e.height - } - } - }); - c.blur = function() {}, c.focus(this.el) - } - }, - render: function() { - if (this.$el.attr("class", this.className), this.id && this.$el.attr("id", this.id), this.buttons.length) { - var t = new r({ - collection: this.buttons, - config: this.config - }); - this.$el.append(t.render().el) - } - return this.$el.append(this.model.get("content")), this - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - tagName: "a", - initialize: function(t, e) { - this.config = e || {}, this.ppfx = this.config.pStylePrefix || "", this.className = this.config.stylePrefix + "btn " + this.model.get("class") - }, - render: function() { - return this.$el.addClass(this.className), this - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - idAttribute: "name", - defaults: { - name: "", - label: "", - type: "class", - active: !0 - }, - initialize: function() { - this.set("name", this.escapeName(this.get("name"))), this.get("label").trim() || this.set("label", this.get("name")) - }, - escapeName: function(t) { - return t.replace(/([^a-z0-9\w]+)/gi, "-") - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(32); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - t.exports = function() { - var t, n, r = {}, - s = i(168), - o = i(173), - a = i(183); - return { - name: "StyleManager", - getConfig: function() { - return r - }, - init: function(e) { - r = e || {}; - for (var i in s) i in r || (r[i] = s[i]); - var l = r.pStylePrefix; - return l && (r.stylePrefix = l + r.stylePrefix), t = new o(r.sectors), n = new a({ - collection: t, - target: r.em, - config: r - }), this - }, - addSector: function(e, i) { - var n = this.getSector(e); - return n || (i.id = e, n = t.add(i)), n - }, - getSector: function(e) { - var i = t.where({ - id: e - }); - return i.length ? i[0] : null - }, - getSectors: function() { - return t - }, - addProperty: function(t, e) { - var i = null, - n = this.getSector(t); - return n && (i = n.get("properties").add(e)), i - }, - getProperty: function(t, e) { - var i = null, - n = this.getSector(t); - return n && (i = n.get("properties").where({ - property: e - }), i = 1 == i.length ? i[0] : i), i - }, - getProperties: function(t) { - var e = null, - i = this.getSector(t); - return i && (e = i.get("properties")), e - }, - getModelToStyle: function(t) { - var i = t.get("classes"); - if (r.em && i && i.length) { - var n = r.em.get("Config").devicePreviewMode, - s = r.em.getDeviceModel(), - o = n ? "" : t.get("state"), - a = s && !n ? s.get("width") : "", - l = r.em.get("CssComposer"), - c = e.filter(i.models, function(t) { - return t.get("active") - }), - u = l.get(c, o, a); - if (u) return u - } - return t - }, - render: function() { - return n.render().el - } - } - } - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(169); - t.exports = n.Collection.extend({ - model: r, - initialize: function() { - this.idx = 1, this.on("add", this.onAdd), this.on("reset", this.onReset) - }, - onAdd: function(t, e, i) { - i.noIncrement || t.set("index", this.idx++) - }, - onReset: function() { - this.idx = 1 - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(170); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(4), - s = i(178), - o = i(179), - a = i(180), - l = i(176), - c = i(177), - u = i(38), - h = i(181); - t.exports = n.View.extend({ - initialize: function(t) { - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.target = t.target || {}, this.propTarget = t.propTarget || {}, this.onChange = t.onChange || {}, this.onInputRender = t.onInputRender || {}, this.customValue = t.customValue || {} - }, - render: function() { - var t = document.createDocumentFragment(); - return this.collection.each(function(e) { - var i = r; - switch (e.get("type")) { - case "integer": - i = s; - break; - case "radio": - i = o; - break; - case "select": - i = a; - break; - case "color": - i = l; - break; - case "file": - i = c; - break; - case "composite": - i = u; - break; - case "stack": - i = h - } - var n = new i({ - model: e, - name: e.get("name"), - id: this.pfx + e.get("property"), - target: this.target, - propTarget: this.propTarget, - onChange: this.onChange, - onInputRender: this.onInputRender, - config: this.config - }); - "composite" != e.get("type") && (n.customValue = this.customValue), t.appendChild(n.render().el) - }, this), this.$el.append(t), this.$el.append($("
", { - class: "clear" - })), this.$el.attr("class", this.pfx + "properties"), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(4)); - t.exports = n.extend({ - template: e.template('\n
\n \tinput-holder\'>\n
\n
'), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), e.bindAll(this, "build"), this.config = t.config || {}, this.className = this.className + " " + this.pfx + "composite" - }, - valueUpdated: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - this.model.get("detached") || n.prototype.valueUpdated.apply(this, e) - }, - renderInput: function() { - var t = this.model, - e = t.get("properties") || []; - if (e.length && (this.$input || (this.$input = $("", { - value: 0, - type: "hidden" - })), this.props || (this.props = t.get("properties")), !this.$props)) { - this.props.each(function(e, i) { - e && "composite" == e.get("type") && (this.props.remove(e), console.warn("Nested composite types not yet allowed.")), e.parent = t - }, this); - var n = i(37), - r = new n(this.getPropsConfig()); - this.$props = r.render().$el, this.$el.find("#" + this.pfx + "input-holder").html(this.$props) - } - }, - getPropsConfig: function(t) { - var e = this, - i = { - config: this.config, - collection: this.props, - target: this.target, - propTarget: this.propTarget, - onChange: function(t, i, n) { - var r = e.build(); - e.model.set("value", r, n) - }, - customValue: function(t, i) { - return e.valueOnIndex(i, t) - } - }; - return this.model.get("detached") && delete i.onChange, i - }, - getDefaultValue: function() { - var t = ""; - return this.props.each(function(e, i) { - t += e.get("defaults") + e.get("unit") + " " - }), this.model.get("defaults") || t.replace(/ +$/, "") - }, - valueOnIndex: function(t, e) { - var i = null, - n = this.getComponentValue().split(" "); - if (n.length && n[t] && (i = n[t], e && e.model && e.model.get("functionName"))) { - var r = this.fetchFromFunction(i); - r && (i = r) - } - return i - }, - build: function(t, e, i) { - var n = ""; - return this.model.get("properties").each(function(t) { - var e = t.getValue(), - i = t.get("functionName"); - i && (e = i + "(" + e + ")"), n += e + " " - }), n.replace(/ +$/, "") - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(186), - s = i(187); - t.exports = n.Collection.extend({ - model: r, - setTarget: function(t) { - this.target = t - }, - add: function(t, e) { - if ("string" == typeof t || t instanceof Array) { - "string" == typeof t && (t = [t]); - for (var i = 0, r = t.length; i < r; i++) { - var o = t[i], - a = "string" == typeof o ? s.build(o)[0] : o; - a.target = this.target, t[i] = a - } - } - return n.Collection.prototype.add.apply(this, [t, e]) - } - }) - }, function(t, e, i) { - ! function(t) { - t(i(5)) - }(function(t) { - "use strict"; - - function e(t) { - for (var e = {}, i = 0; i < t.length; ++i) e[t[i].toLowerCase()] = !0; - return e - } - - function i(t, e) { - for (var i, n = !1; null != (i = t.next());) { - if (n && "/" == i) { - e.tokenize = null; - break - } - n = "*" == i - } - return ["comment", "comment"] - } - t.defineMode("css", function(e, i) { - function n(t, e) { - return p = e, t - } - - function r(t, e) { - var i = t.next(); - if (v[i]) { - var r = v[i](t, e); - if (!1 !== r) return r - } - return "@" == i ? (t.eatWhile(/[\w\\\-]/), n("def", t.current())) : "=" == i || ("~" == i || "|" == i) && t.eat("=") ? n(null, "compare") : '"' == i || "'" == i ? (e.tokenize = s(i), e.tokenize(t, e)) : "#" == i ? (t.eatWhile(/[\w\\\-]/), n("atom", "hash")) : "!" == i ? (t.match(/^\s*\w*/), n("keyword", "important")) : /\d/.test(i) || "." == i && t.eat(/\d/) ? (t.eatWhile(/[\w.%]/), n("number", "unit")) : "-" !== i ? /[,+>*\/]/.test(i) ? n(null, "select-op") : "." == i && t.match(/^-?[_a-z][_a-z0-9-]*/i) ? n("qualifier", "qualifier") : /[:;{}\[\]\(\)]/.test(i) ? n(null, i) : "u" == i && t.match(/rl(-prefix)?\(/) || "d" == i && t.match("omain(") || "r" == i && t.match("egexp(") ? (t.backUp(1), e.tokenize = o, n("property", "word")) : /[\w\\\-]/.test(i) ? (t.eatWhile(/[\w\\\-]/), n("property", "word")) : n(null, null) : /[\d.]/.test(t.peek()) ? (t.eatWhile(/[\w.%]/), n("number", "unit")) : t.match(/^-[\w\\\-]+/) ? (t.eatWhile(/[\w\\\-]/), t.match(/^\s*:/, !1) ? n("variable-2", "variable-definition") : n("variable-2", "variable")) : t.match(/^\w+-/) ? n("meta", "meta") : void 0 - } - - function s(t) { - return function(e, i) { - for (var r, s = !1; null != (r = e.next());) { - if (r == t && !s) { - ")" == t && e.backUp(1); - break - } - s = !s && "\\" == r - } - return (r == t || !s && ")" != t) && (i.tokenize = null), n("string", "string") - } - } - - function o(t, e) { - return t.next(), t.match(/\s*[\"\')]/, !1) ? e.tokenize = null : e.tokenize = s(")"), n(null, "(") - } - - function a(t, e, i) { - this.type = t, this.indent = e, this.prev = i - } - - function l(t, e, i, n) { - return t.context = new a(i, e.indentation() + (!1 === n ? 0 : m), t.context), i - } - - function c(t) { - return t.context.prev && (t.context = t.context.prev), t.context.type - } - - function u(t, e, i) { - return L[i.context.type](t, e, i) - } - - function h(t, e, i, n) { - for (var r = n || 1; r > 0; r--) i.context = i.context.prev; - return u(t, e, i) - } - - function d(t) { - var e = t.current().toLowerCase(); - g = E.hasOwnProperty(e) ? "atom" : M.hasOwnProperty(e) ? "keyword" : "variable" - } - var f = i.inline; - i.propertyKeywords || (i = t.resolveMode("text/css")); - var p, g, m = e.indentUnit, - v = i.tokenHooks, - y = i.documentTypes || {}, - b = i.mediaTypes || {}, - x = i.mediaFeatures || {}, - w = i.mediaValueKeywords || {}, - C = i.propertyKeywords || {}, - k = i.nonStandardPropertyKeywords || {}, - S = i.fontProperties || {}, - T = i.counterDescriptors || {}, - M = i.colorKeywords || {}, - E = i.valueKeywords || {}, - P = i.allowNested, - $ = !0 === i.supportsAtComponent, - L = {}; - return L.top = function(t, e, i) { - if ("{" == t) return l(i, e, "block"); - if ("}" == t && i.context.prev) return c(i); - if ($ && /@component/.test(t)) return l(i, e, "atComponentBlock"); - if (/^@(-moz-)?document$/.test(t)) return l(i, e, "documentTypes"); - if (/^@(media|supports|(-moz-)?document|import)$/.test(t)) return l(i, e, "atBlock"); - if (/^@(font-face|counter-style)/.test(t)) return i.stateArg = t, "restricted_atBlock_before"; - if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t)) return "keyframes"; - if (t && "@" == t.charAt(0)) return l(i, e, "at"); - if ("hash" == t) g = "builtin"; - else if ("word" == t) g = "tag"; - else { - if ("variable-definition" == t) return "maybeprop"; - if ("interpolation" == t) return l(i, e, "interpolation"); - if (":" == t) return "pseudo"; - if (P && "(" == t) return l(i, e, "parens") - } - return i.context.type - }, L.block = function(t, e, i) { - if ("word" == t) { - var n = e.current().toLowerCase(); - return C.hasOwnProperty(n) ? (g = "property", "maybeprop") : k.hasOwnProperty(n) ? (g = "string-2", "maybeprop") : P ? (g = e.match(/^\s*:(?:\s|$)/, !1) ? "property" : "tag", "block") : (g += " error", "maybeprop") - } - return "meta" == t ? "block" : P || "hash" != t && "qualifier" != t ? L.top(t, e, i) : (g = "error", "block") - }, L.maybeprop = function(t, e, i) { - return ":" == t ? l(i, e, "prop") : u(t, e, i) - }, L.prop = function(t, e, i) { - if (";" == t) return c(i); - if ("{" == t && P) return l(i, e, "propBlock"); - if ("}" == t || "{" == t) return h(t, e, i); - if ("(" == t) return l(i, e, "parens"); - if ("hash" != t || /^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())) { - if ("word" == t) d(e); - else if ("interpolation" == t) return l(i, e, "interpolation") - } else g += " error"; - return "prop" - }, L.propBlock = function(t, e, i) { - return "}" == t ? c(i) : "word" == t ? (g = "property", "maybeprop") : i.context.type - }, L.parens = function(t, e, i) { - return "{" == t || "}" == t ? h(t, e, i) : ")" == t ? c(i) : "(" == t ? l(i, e, "parens") : "interpolation" == t ? l(i, e, "interpolation") : ("word" == t && d(e), "parens") - }, L.pseudo = function(t, e, i) { - return "word" == t ? (g = "variable-3", i.context.type) : u(t, e, i) - }, L.documentTypes = function(t, e, i) { - return "word" == t && y.hasOwnProperty(e.current()) ? (g = "tag", i.context.type) : L.atBlock(t, e, i) - }, L.atBlock = function(t, e, i) { - if ("(" == t) return l(i, e, "atBlock_parens"); - if ("}" == t || ";" == t) return h(t, e, i); - if ("{" == t) return c(i) && l(i, e, P ? "block" : "top"); - if ("interpolation" == t) return l(i, e, "interpolation"); - if ("word" == t) { - var n = e.current().toLowerCase(); - g = "only" == n || "not" == n || "and" == n || "or" == n ? "keyword" : b.hasOwnProperty(n) ? "attribute" : x.hasOwnProperty(n) ? "property" : w.hasOwnProperty(n) ? "keyword" : C.hasOwnProperty(n) ? "property" : k.hasOwnProperty(n) ? "string-2" : E.hasOwnProperty(n) ? "atom" : M.hasOwnProperty(n) ? "keyword" : "error" - } - return i.context.type - }, L.atComponentBlock = function(t, e, i) { - return "}" == t ? h(t, e, i) : "{" == t ? c(i) && l(i, e, P ? "block" : "top", !1) : ("word" == t && (g = "error"), i.context.type) - }, L.atBlock_parens = function(t, e, i) { - return ")" == t ? c(i) : "{" == t || "}" == t ? h(t, e, i, 2) : L.atBlock(t, e, i) - }, L.restricted_atBlock_before = function(t, e, i) { - return "{" == t ? l(i, e, "restricted_atBlock") : "word" == t && "@counter-style" == i.stateArg ? (g = "variable", "restricted_atBlock_before") : u(t, e, i) - }, L.restricted_atBlock = function(t, e, i) { - return "}" == t ? (i.stateArg = null, c(i)) : "word" == t ? (g = "@font-face" == i.stateArg && !S.hasOwnProperty(e.current().toLowerCase()) || "@counter-style" == i.stateArg && !T.hasOwnProperty(e.current().toLowerCase()) ? "error" : "property", "maybeprop") : "restricted_atBlock" - }, L.keyframes = function(t, e, i) { - return "word" == t ? (g = "variable", "keyframes") : "{" == t ? l(i, e, "top") : u(t, e, i) - }, L.at = function(t, e, i) { - return ";" == t ? c(i) : "{" == t || "}" == t ? h(t, e, i) : ("word" == t ? g = "tag" : "hash" == t && (g = "builtin"), "at") - }, L.interpolation = function(t, e, i) { - return "}" == t ? c(i) : "{" == t || ";" == t ? h(t, e, i) : ("word" == t ? g = "variable" : "variable" != t && "(" != t && ")" != t && (g = "error"), "interpolation") - }, { - startState: function(t) { - return { - tokenize: null, - state: f ? "block" : "top", - stateArg: null, - context: new a(f ? "block" : "top", t || 0, null) - } - }, - token: function(t, e) { - if (!e.tokenize && t.eatSpace()) return null; - var i = (e.tokenize || r)(t, e); - return i && "object" == typeof i && (p = i[1], i = i[0]), g = i, e.state = L[e.state](p, t, e), g - }, - indent: function(t, e) { - var i = t.context, - n = e && e.charAt(0), - r = i.indent; - return "prop" != i.type || "}" != n && ")" != n || (i = i.prev), i.prev && ("}" != n || "block" != i.type && "top" != i.type && "interpolation" != i.type && "restricted_atBlock" != i.type ? (")" != n || "parens" != i.type && "atBlock_parens" != i.type) && ("{" != n || "at" != i.type && "atBlock" != i.type) || (r = Math.max(0, i.indent - m), i = i.prev) : (i = i.prev, r = i.indent)), r - }, - electricChars: "}", - blockCommentStart: "/*", - blockCommentEnd: "*/", - fold: "brace" - } - }); - var n = ["domain", "regexp", "url", "url-prefix"], - r = e(n), - s = ["all", "aural", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "embossed"], - o = e(s), - a = ["width", "min-width", "max-width", "height", "min-height", "max-height", "device-width", "min-device-width", "max-device-width", "device-height", "min-device-height", "max-device-height", "aspect-ratio", "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", "max-color", "color-index", "min-color-index", "max-color-index", "monochrome", "min-monochrome", "max-monochrome", "resolution", "min-resolution", "max-resolution", "scan", "grid", "orientation", "device-pixel-ratio", "min-device-pixel-ratio", "max-device-pixel-ratio", "pointer", "any-pointer", "hover", "any-hover"], - l = e(a), - c = ["landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover", "interlace", "progressive"], - u = e(c), - h = ["align-content", "align-items", "align-self", "alignment-adjust", "alignment-baseline", "anchor-point", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-fill-mode", "animation-iteration-count", "animation-name", "animation-play-state", "animation-timing-function", "appearance", "azimuth", "backface-visibility", "background", "background-attachment", "background-blend-mode", "background-clip", "background-color", "background-image", "background-origin", "background-position", "background-repeat", "background-size", "baseline-shift", "binding", "bleed", "bookmark-label", "bookmark-level", "bookmark-state", "bookmark-target", "border", "border-bottom", "border-bottom-color", "border-bottom-left-radius", "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", "border-image-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-spacing", "border-style", "border-top", "border-top-color", "border-top-left-radius", "border-top-right-radius", "border-top-style", "border-top-width", "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", "caption-side", "clear", "clip", "color", "color-profile", "column-count", "column-fill", "column-gap", "column-rule", "column-rule-color", "column-rule-style", "column-rule-width", "column-span", "column-width", "columns", "content", "counter-increment", "counter-reset", "crop", "cue", "cue-after", "cue-before", "cursor", "custom","custom-textbox","custom-type","direction", "display", "dominant-baseline", "drop-initial-after-adjust", "drop-initial-after-align", "drop-initial-before-adjust", "drop-initial-before-align", "drop-initial-size", "drop-initial-value", "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings", "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-synthesis", "font-variant", "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-gap", "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-gap", "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns", "grid-template-rows", "hanging-punctuation", "height", "hyphens", "icon", "image-orientation", "image-rendering", "image-resolution", "inline-box-align", "justify-content", "left", "letter-spacing", "line-break", "line-height", "line-stacking", "line-stacking-ruby", "line-stacking-shift", "line-stacking-strategy", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "marks", "marquee-direction", "marquee-loop", "marquee-play-count", "marquee-speed", "marquee-style", "max-height", "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", "nav-left", "nav-right", "nav-up", "object-fit", "object-position", "opacity", "order", "orphans", "outline", "outline-color", "outline-offset", "outline-style", "outline-width", "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", "page", "page-break-after", "page-break-before", "page-break-inside", "page-policy", "pause", "pause-after", "pause-before", "perspective", "perspective-origin", "pitch", "pitch-range", "play-during", "position", "presentation-level", "punctuation-trim", "quotes", "region-break-after", "region-break-before", "region-break-inside", "region-fragment", "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin", "shape-outside", "size", "speak", "speak-as", "speak-header", "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", "tab-size", "table-layout", "target", "target-name", "target-new", "target-position", "text-align", "text-align-last", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-skip", "text-decoration-style", "text-emphasis", "text-emphasis-color", "text-emphasis-position", "text-emphasis-style", "text-height", "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow", "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position", "text-wrap", "top", "transform", "transform-origin", "transform-style", "transition", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "unicode-bidi", "user-select", "vertical-align", "visibility", "voice-balance", "voice-duration", "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", "voice-volume", "volume", "white-space", "widows", "width", "word-break", "word-spacing", "word-wrap", "z-index", "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color", "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events", "color-interpolation", "color-interpolation-filters", "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering", "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering", "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", "glyph-orientation-vertical", "text-anchor", "writing-mode"], - d = e(h), - f = ["scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", "searchfield-results-decoration", "zoom"], - p = e(f), - g = ["font-family", "src", "unicode-range", "font-variant", "font-feature-settings", "font-stretch", "font-weight", "font-style"], - m = e(g), - v = ["additive-symbols", "fallback", "negative", "pad", "prefix", "range", "speak-as", "suffix", "symbols", "system"], - y = e(v), - b = ["aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"], - x = e(b), - w = ["above", "absolute", "activeborder", "additive", "activecaption", "afar", "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate", "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", "arabic-indic", "armenian", "asterisks", "attr", "auto", "avoid", "avoid-column", "avoid-page", "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary", "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel", "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "calc", "cambodian", "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", "cell", "center", "checkbox", "circle", "cjk-decimal", "cjk-earthly-branch", "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", "col-resize", "collapse", "color", "color-burn", "color-dodge", "column", "column-reverse", "compact", "condensed", "contain", "content", "content-box", "context-menu", "continuous", "copy", "counter", "counters", "cover", "crop", "cross", "crosshair", "currentcolor", "cursive", "cyclic", "darken", "dashed", "decimal", "decimal-leading-zero", "default", "default-button", "dense", "destination-atop", "destination-in", "destination-out", "destination-over", "devanagari", "difference", "disc", "discard", "disclosure-closed", "disclosure-open", "document", "dot-dash", "dot-dot-dash", "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", "ethiopic-halehame-gez", "ethiopic-halehame-om-et", "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig", "ethiopic-numeric", "ew-resize", "exclusion", "expanded", "extends", "extra-condensed", "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "flex", "flex-end", "flex-start", "footnotes", "forwards", "from", "geometricPrecision", "georgian", "graytext", "grid", "groove", "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hard-light", "hebrew", "help", "hidden", "hide", "higher", "highlight", "highlighttext", "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "hue", "icon", "ignore", "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", "inline-block", "inline-flex", "inline-grid", "inline-table", "inset", "inside", "intrinsic", "invert", "italic", "japanese-formal", "japanese-informal", "justify", "kannada", "katakana", "katakana-iroha", "keep-all", "khmer", "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal", "landscape", "lao", "large", "larger", "left", "level", "lighter", "lighten", "line-through", "linear", "linear-gradient", "lines", "list-item", "listbox", "listitem", "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", "lower-roman", "lowercase", "ltr", "luminosity", "malayalam", "match", "matrix", "matrix3d", "media-controls-background", "media-current-time-display", "media-fullscreen-button", "media-mute-button", "media-play-button", "media-return-to-realtime-button", "media-rewind-button", "media-seek-back-button", "media-seek-forward-button", "media-slider", "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", "media-volume-slider-container", "media-volume-sliderthumb", "medium", "menu", "menulist", "menulist-button", "menulist-text", "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", "mix", "mongolian", "monospace", "move", "multiple", "multiply", "myanmar", "n-resize", "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", "ns-resize", "numbers", "numeric", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", "outside", "outside-shape", "overlay", "overline", "padding", "padding-box", "painted", "page", "paused", "persian", "perspective", "plus-darker", "plus-lighter", "pointer", "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", "radial-gradient", "radio", "read-only", "read-write", "read-write-plaintext-only", "rectangle", "region", "relative", "repeat", "repeating-linear-gradient", "repeating-radial-gradient", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", "ridge", "right", "rotate", "rotate3d", "rotateX", "rotateY", "rotateZ", "round", "row", "row-resize", "row-reverse", "rtl", "run-in", "running", "s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen", "scroll", "scrollbar", "se-resize", "searchfield", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", "searchfield-results-decoration", "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", "simp-chinese-formal", "simp-chinese-informal", "single", "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", "small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali", "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "spell-out", "square", "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub", "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row", "table-row-group", "tamil", "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", "trad-chinese-formal", "trad-chinese-informal", "translate", "translate3d", "translateX", "translateY", "translateZ", "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", "var", "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", "visibleStroke", "visual", "w-resize", "wait", "wave", "wider", "window", "windowframe", "windowtext", "words", "wrap", "wrap-reverse", "x-large", "x-small", "xor", "xx-large", "xx-small"], - C = e(w), - k = n.concat(s).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w); - t.registerHelper("hintWords", "css", k), t.defineMIME("text/css", { - documentTypes: r, - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - fontProperties: m, - counterDescriptors: y, - colorKeywords: x, - valueKeywords: C, - tokenHooks: { - "/": function(t, e) { - return !!t.eat("*") && (e.tokenize = i, i(t, e)) - } - }, - name: "css" - }), t.defineMIME("text/x-scss", { - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - colorKeywords: x, - valueKeywords: C, - fontProperties: m, - allowNested: !0, - tokenHooks: { - "/": function(t, e) { - return t.eat("/") ? (t.skipToEnd(), ["comment", "comment"]) : t.eat("*") ? (e.tokenize = i, i(t, e)) : ["operator", "operator"] - }, - ":": function(t) { - return !!t.match(/\s*\{/) && [null, "{"] - }, - $: function(t) { - return t.match(/^[\w-]+/), t.match(/^\s*:/, !1) ? ["variable-2", "variable-definition"] : ["variable-2", "variable"] - }, - "#": function(t) { - return !!t.eat("{") && [null, "interpolation"] - } - }, - name: "css", - helperType: "scss" - }), t.defineMIME("text/x-less", { - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - colorKeywords: x, - valueKeywords: C, - fontProperties: m, - allowNested: !0, - tokenHooks: { - "/": function(t, e) { - return t.eat("/") ? (t.skipToEnd(), ["comment", "comment"]) : t.eat("*") ? (e.tokenize = i, i(t, e)) : ["operator", "operator"] - }, - "@": function(t) { - return t.eat("{") ? [null, "interpolation"] : !t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, !1) && (t.eatWhile(/[\w\\\-]/), t.match(/^\s*:/, !1) ? ["variable-2", "variable-definition"] : ["variable-2", "variable"]) - }, - "&": function() { - return ["atom", "atom"] - } - }, - name: "css", - helperType: "less" - }), t.defineMIME("text/x-gss", { - documentTypes: r, - mediaTypes: o, - mediaFeatures: l, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - fontProperties: m, - counterDescriptors: y, - colorKeywords: x, - valueKeywords: C, - supportsAtComponent: !0, - tokenHooks: { - "/": function(t, e) { - return !!t.eat("*") && (e.tokenize = i, i(t, e)) - } - }, - name: "css", - helperType: "gss" - }) - }) - }, function(t, e, i) { - ! function(e) { - function i(t, e) { - for (var i = t.length; i--;) - if (t[i] === e) return i; - return -1 - } - - function n(t, e) { - if (t.length != e.length) return !1; - for (var i = 0; i < t.length; i++) - if (t[i] !== e[i]) return !1; - return !0 - } - - function r(t) { - for (x in C) C[x] = t[P[x]] - } - - function s(t) { - var e, n, s, o, a, c; - if (e = t.keyCode, -1 == i(E, e) && E.push(e), 93 != e && 224 != e || (e = 91), e in C) { - C[e] = !0; - for (s in S) S[s] == e && (l[s] = !0) - } else if (r(t), l.filter.call(this, t) && e in w) - for (c = p(), o = 0; o < w[e].length; o++) - if (n = w[e][o], n.scope == c || "all" == n.scope) { - a = n.mods.length > 0; - for (s in C)(!C[s] && i(n.mods, +s) > -1 || C[s] && -1 == i(n.mods, +s)) && (a = !1); - (0 != n.mods.length || C[16] || C[18] || C[17] || C[91]) && !a || !1 === n.method(t, n) && (t.preventDefault ? t.preventDefault() : t.returnValue = !1, t.stopPropagation && t.stopPropagation(), t.cancelBubble && (t.cancelBubble = !0)) - } - } - - function o(t) { - var e, n = t.keyCode, - r = i(E, n); - if (r >= 0 && E.splice(r, 1), 93 != n && 224 != n || (n = 91), n in C) { - C[n] = !1; - for (e in S) S[e] == n && (l[e] = !1) - } - } - - function a() { - for (x in C) C[x] = !1; - for (x in S) l[x] = !1 - } - - function l(t, e, i) { - var n, r; - n = m(t), void 0 === i && (i = e, e = "all"); - for (var s = 0; s < n.length; s++) r = [], t = n[s].split("+"), t.length > 1 && (r = v(t), t = [t[t.length - 1]]), t = t[0], t = M(t), t in w || (w[t] = []), w[t].push({ - shortcut: n[s], - scope: e, - method: i, - key: n[s], - mods: r - }) - } - - function c(t, e) { - var i, r, s, o, a, l = []; - for (i = m(t), o = 0; o < i.length; o++) { - if (r = i[o].split("+"), r.length > 1 && (l = v(r), t = r[r.length - 1]), t = M(t), void 0 === e && (e = p()), !w[t]) return; - for (s = 0; s < w[t].length; s++) a = w[t][s], a.scope === e && n(a.mods, l) && (w[t][s] = {}) - } - } - - function u(t) { - return "string" == typeof t && (t = M(t)), -1 != i(E, t) - } - - function h() { - return E.slice(0) - } - - function d(t) { - var e = (t.target || t.srcElement).tagName; - return !("INPUT" == e || "SELECT" == e || "TEXTAREA" == e) - } - - function f(t) { - k = t || "all" - } - - function p() { - return k || "all" - } - - function g(t) { - var e, i, n; - for (e in w) - for (i = w[e], n = 0; n < i.length;) i[n].scope === t ? i.splice(n, 1) : n++ - } - - function m(t) { - var e; - return t = t.replace(/\s/g, ""), e = t.split(","), "" == e[e.length - 1] && (e[e.length - 2] += ","), e - } - - function v(t) { - for (var e = t.slice(0, t.length - 1), i = 0; i < e.length; i++) e[i] = S[e[i]]; - return e - } - - function y(t, e, i) { - t.addEventListener ? t.addEventListener(e, i, !1) : t.attachEvent && t.attachEvent("on" + e, function() { - i(window.event) - }) - } - - function b() { - var t = e.key; - return e.key = $, t - } - var x, w = {}, - C = { - 16: !1, - 18: !1, - 17: !1, - 91: !1 - }, - k = "all", - S = { - "⇧": 16, - shift: 16, - "⌥": 18, - alt: 18, - option: 18, - "⌃": 17, - ctrl: 17, - control: 17, - "⌘": 91, - command: 91 - }, - T = { - backspace: 8, - tab: 9, - clear: 12, - enter: 13, - return: 13, - esc: 27, - escape: 27, - space: 32, - left: 37, - up: 38, - right: 39, - down: 40, - del: 46, - delete: 46, - home: 36, - end: 35, - pageup: 33, - pagedown: 34, - ",": 188, - ".": 190, - "/": 191, - "`": 192, - "-": 189, - "=": 187, - ";": 186, - "'": 222, - "[": 219, - "]": 221, - "\\": 220 - }, - M = function(t) { - return T[t] || t.toUpperCase().charCodeAt(0) - }, - E = []; - for (x = 1; x < 20; x++) T["f" + x] = 111 + x; - var P = { - 16: "shiftKey", - 18: "altKey", - 17: "ctrlKey", - 91: "metaKey" - }; - for (x in S) l[x] = !1; - y(document, "keydown", function(t) { - s(t) - }), y(document, "keyup", o), y(window, "focus", a); - var $ = e.key; - e.key = l, e.key.setScope = f, e.key.getScope = p, e.key.deleteScope = g, e.key.filter = d, e.key.isPressed = u, e.key.getPressedKeyCodes = h, e.key.noConflict = b, e.key.unbind = c, t.exports = l - }(this) - }, function(t, e) { - var i; - i = function() { - return this - }(); - try { - i = i || Function("return this")() || (0, eval)("this") - } catch (t) { - "object" == typeof window && (i = window) - } - t.exports = i - }, function(t, e, i) { - "use strict"; - t.exports = function(t) { - var e = i(132), - n = i(129), - r = i(152), - s = new r, - o = []; - return { - editors: o, - plugins: s, - init: function(t) { - var i = t || {}, - r = i.container; - for (var a in e) a in i || (i[a] = e[a]); - if (!r) throw new Error("'container' is required"); - i.el = document.querySelector(r); - var l = new n(i).init(); - s.getAll(); - return i.plugins.forEach(function(t) { - var e = s.get(t); - e ? e(l, i.pluginsOpts[t] || {}) : console.warn("Plugin " + t + " not found") - }), i.autorender && l.render(), o.push(l), l - } - } - }() - }, function(t, e, i) { - "use strict"; - t.exports = { - assets: [], - stylePrefix: "am-", - upload: "http://localhost/assets/upload", - uploadText: "Drop files here or click to upload", - addBtnText: "Add image", - uploadFile: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n, r = {}, - s = i(47), - o = i(49), - a = i(14); - return { - name: "AssetManager", - storageKey: "assets", - init: function(l) { - r = l || {}; - var c = i(44); - for (var u in c) u in r || (r[u] = c[u]); - var h = r.pStylePrefix; - h && (r.stylePrefix = h + r.stylePrefix), t = new s(r.assets); - var d = { - collection: t, - config: r - }; - return e = new o(d), n = new a(d), this - }, - add: function(e) { - return t.add(e) - }, - get: function(e) { - return t.where({ - src: e - })[0] - }, - getAll: function() { - return t - }, - remove: function(t) { - var e = this.get(t); - return this.getAll().remove(e), this - }, - store: function(t) { - var e = {}, - i = JSON.stringify(this.getAll().toJSON()); - return e[this.storageKey] = i, !t && r.stm && r.stm.store(e), e - }, - load: function(t) { - var e = t || "", - i = this.storageKey; - !e && r.stm && (e = r.stm.load(i)); - var n = e[i] || []; - if ("string" == typeof n) try { - n = JSON.parse(e[i]) - } catch (t) {} - return n && n.length && this.getAll().reset(n), n - }, - render: function(t) { - return this.rendered && !t || (this.rendered = e.render().$el.add(n.render().$el)), this.rendered - }, - setTarget: function(t) { - e.collection.target = t - }, - onSelect: function(t) { - e.collection.onSelect = t - }, - onClick: function(t) { - r.onClick = t - }, - onDblClick: function(t) { - r.onDblClick = t - } - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(12)); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "image", - unitDim: "px", - height: 0, - width: 0 - }) - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = (i(12), i(46)); - t.exports = n.Collection.extend({ - model: r, - initialize: function(t, e) { - this.model = function(t, e) { - return t.type, new r(t, e) - } - }, - addImg: function(t, e) { - return this.add({ - type: "image", - src: t - }, e), this - }, - add: function(t, e) { - var i = []; - t = t instanceof Array ? t : [t]; - for (var r = 0, s = t.length; r < s; r++) { - var o = t[r]; - if ("string" == typeof o && (o = { - src: o, - type: "image" - }), o && o.src) { - this.where({ - src: o.src - }).length || i.push(o) - } - } - return 1 == i.length && (i = i[0]), n.Collection.prototype.add.apply(this, [i, e]) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(13); - t.exports = n.extend({ - events: { - click: "handleClick", - dblclick: "handleDblClick" - }, - template: e.template('\n
\n
\n
\n
\n
\n\t
<%= name %>
\n\t
<%= dim %>
\n
\n
\n
\n'), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), this.className += " " + this.pfx + "asset-image", this.events["click #" + this.pfx + "close"] = "removeItem", this.delegateEvents() - }, - handleClick: function() { - var t = this.config.onClick, - e = this.model; - e.collection.trigger("deselectAll"), this.$el.addClass(this.pfx + "highlight"), "function" == typeof t ? t(e) : this.updateTarget(e.get("src")) - }, - handleDblClick: function() { - var t = this.config.onDblClick, - e = this.model; - "function" == typeof t ? t(e) : this.updateTarget(e.get("src")); - var i = e.collection.onSelect; - "function" == typeof i && i(this.model) - }, - updateTarget: function(t) { - var i = this.model.collection.target; - if (i && i.set) { - var n = e.clone(i.get("attributes")); - i.set("attributes", n), i.set("src", t) - } - }, - removeItem: function(t) { - t.stopPropagation(), this.model.collection.remove(this.model) - }, - render: function() { - var t = this.model.get("name"), - e = this.model.get("width") && this.model.get("height") ? this.model.get("width") + " x " + this.model.get("height") : ""; - return t = t || this.model.get("src").split("/").pop(), t = t && t.length > 30 ? t.substring(0, 30) + "..." : t, e = e ? e + (this.model.get("unitDim") ? this.model.get("unitDim") : " px") : "", this.$el.html(this.template({ - name: t, - src: this.model.get("src"), - dim: e, - pfx: this.pfx, - ppfx: this.ppfx - })), this.$el.attr("class", this.className), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(13), - s = i(48); - i(14); - t.exports = n.View.extend({ - template: e.template('\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n\n'), - initialize: function(t) { - this.options = t, this.config = t.config, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.listenTo(this.collection, "add", this.addToAsset), this.listenTo(this.collection, "deselectAll", this.deselectAll), this.listenTo(this.collection, "reset", this.render), this.className = this.pfx + "assets", this.events = {}, this.events.submit = "addFromStr", this.delegateEvents() - }, - addFromStr: function(t) { - t.preventDefault(); - var e = this.getInputUrl(), - i = e.value.trim(); - if (i) return this.collection.addImg(i, { - at: 0 - }), this.getAssetsEl().scrollTop = 0, e.value = "", this - }, - getAssetsEl: function() { - return this.assets = this.el.querySelector("." + this.pfx + "assets"), this.assets - }, - getInputUrl: function() { - return this.inputUrl && this.inputUrl.value || (this.inputUrl = this.el.querySelector("." + this.pfx + "add-asset input")), this.inputUrl - }, - addToAsset: function(t) { - this.addAsset(t) - }, - addAsset: function(t, e) { - var i = e || null, - n = r; - t.get("type").indexOf("image") > -1 && (n = s); - var o = new n({ - model: t, - config: this.config - }), - a = o.render().el; - if (i) i.appendChild(a); - else { - var l = this.getAssetsEl(); - l && l.insertBefore(a, l.firstChild) - } - return a - }, - deselectAll: function() { - this.$el.find("." + this.pfx + "highlight").removeClass(this.pfx + "highlight") - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.addAsset(e, t) - }, this), this.$el.html(this.template({ - pfx: this.pfx, - ppfx: this.ppfx, - btnText: this.config.addBtnText - })), this.$el.find("." + this.pfx + "assets").append(t), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - blocks: [], - appendTo: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n = {}, - r = i(50), - s = i(53), - o = i(54), - a = i(56), - l = []; - return { - name: "BlockManager", - init: function(i) { - n = i || {}; - for (var c in r) c in n || (n[c] = r[c]); - return t = new s(n.blocks), l = new o, e = new a({ - collection: t, - categories: l - }, n), this - }, - add: function(e, i) { - var n = i || {}; - return n.id = e, t.add(n) - }, - get: function(e) { - return t.get(e) - }, - getAll: function() { - return t - }, - getCategories: function() { - return l - }, - render: function() { - return e.render().el - } - } - } - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(15); - t.exports = n.Model.extend({ - defaults: { - label: "", - content: "", - category: "", - attributes: {} - }, - initialize: function() { - var t = (arguments.length > 0 && void 0 !== arguments[0] && arguments[0], this.get("category")); - if (t && "string" == typeof t) { - new r({ - id: t, - label: t - }) - } - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(52); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Collection.extend({ - model: i(15) - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: { - mousedown: "onDrag" - }, - initialize: function(t, i) { - e.bindAll(this, "onDrop"), this.config = i || {}, this.ppfx = this.config.pStylePrefix || "", this.listenTo(this.model, "destroy", this.remove), this.doc = $(document) - }, - onDrag: function(t) { - if (0 === t.button && this.config.getSorter) { - this.config.em.refreshCanvas(); - var e = this.config.getSorter(); - e.setDragHelper(this.el, t), e.startSort(this.el), e.setDropContent(this.model.get("content")), this.doc.on("mouseup", this.onDrop) - } - }, - onDrop: function() { - this.doc.off("mouseup", this.onDrop), this.config.getSorter().endMove() - }, - render: function() { - var t = this.ppfx + "block"; - return this.$el.addClass(t), this.el.innerHTML = '
' + this.model.get("label") + "
", this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(55), - s = i(57); - t.exports = n.View.extend({ - initialize: function(t, i) { - e.bindAll(this, "getSorter", "onDrag", "onDrop"), this.config = i || {}, this.categories = t.categories || "", this.renderedCategories = []; - var n = this.config.pStylePrefix || ""; - this.ppfx = n, this.noCatClass = n + "blocks-no-cat", this.blockContClass = n + "blocks-c", this.catsClass = n + "block-categories", this.listenTo(this.collection, "add", this.addTo), this.em = this.config.em, this.tac = "test-tac", this.grabbingCls = this.ppfx + "grabbing", this.em && (this.config.getSorter = this.getSorter, this.canvas = this.em.get("Canvas")) - }, - getSorter: function() { - if (this.em) { - if (!this.sorter) { - var t = this.em.get("Utils"), - e = this.canvas; - this.sorter = new t.Sorter({ - container: e.getBody(), - placer: e.getPlacerEl(), - containerSel: "*", - itemSel: "*", - pfx: this.ppfx, - onStart: this.onDrag, - onEndMove: this.onDrop, - onMove: this.onMove, - document: e.getFrameEl().contentDocument, - direction: "a", - wmargin: 1, - nested: 1, - em: this.em, - canvasRelative: 1 - }) - } - return this.sorter - } - }, - onDrag: function(t) { - this.em.stopDefault(), this.em.trigger("block:drag:start", t) - }, - onMove: function(t) { - this.em.trigger("block:drag:move", t) - }, - onDrop: function(t) { - this.em.runDefault(), t && t.get && (t.get("activeOnRender") && (t.trigger("active"), t.set("activeOnRender", 0)), this.em.initChildrenComp(t)), this.em.trigger("block:drag:stop", t) - }, - addTo: function(t) { - this.add(t) - }, - add: function(t, e) { - var i = e || null, - n = new r({ - model: t, - attributes: t.get("attributes") - }, this.config), - o = n.render().el, - a = t.get("category"); - if (a && this.categories) { - "string" == typeof a && (a = { - id: a, - label: a - }); - var l = this.categories.add(a), - c = l.get("id"), - u = this.renderedCategories[c], - h = this.getCategoriesEl(); - return t.set("category", l), !u && h && (u = new s({ - model: l - }, this.config).render(), this.renderedCategories[c] = u, h.appendChild(u.el)), void(u && u.append(o)) - } - i ? i.appendChild(o) : this.append(o) - }, - getCategoriesEl: function() { - return this.catsEl || (this.catsEl = this.el.querySelector("." + this.catsClass)), this.catsEl - }, - getBlocksEl: function() { - return this.blocksEl || (this.blocksEl = this.el.querySelector("." + this.noCatClass + " ." + this.blockContClass)), this.blocksEl - }, - append: function(t) { - var e = this.getBlocksEl(); - e && e.appendChild(t) - }, - render: function() { - var t = (this.ppfx, document.createDocumentFragment()); - return this.catsEl = null, this.blocksEl = null, this.renderedCategories = [], this.el.innerHTML = '\n
\n
\n
\n
\n ', this.collection.each(function(e) { - this.add(e, t) - }, this), this.append(t), this.$el.addClass(this.blockContClass + "s"), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
\n \n <%= label %>\n
\n
\n '), - events: {}, - initialize: function() { - var t = (arguments.length > 0 && void 0 !== arguments[0] && arguments[0], arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}); - this.config = t; - var e = this.config.pStylePrefix || ""; - this.pfx = e, this.caretR = "fa fa-caret-right", this.caretD = "fa fa-caret-down", this.iconClass = e + "caret-icon", this.activeClass = e + "open", this.className = e + "block-category", this.events["click ." + e + "title"] = "toggle", this.listenTo(this.model, "change:open", this.updateVisibility), this.delegateEvents() - }, - updateVisibility: function() { - this.model.get("open") ? this.open() : this.close() - }, - open: function() { - this.el.className = this.className + " " + this.activeClass, this.getIconEl().className = this.iconClass + " " + this.caretD, this.getBlocksEl().style.display = "" - }, - close: function() { - this.el.className = this.className, this.getIconEl().className = this.iconClass + " " + this.caretR, this.getBlocksEl().style.display = "none" - }, - toggle: function() { - var t = this.model; - t.set("open", !t.get("open")) - }, - getIconEl: function() { - return this.iconEl || (this.iconEl = this.el.querySelector("." + this.iconClass)), this.iconEl - }, - getBlocksEl: function() { - return this.blocksEl || (this.blocksEl = this.el.querySelector("." + this.pfx + "blocks-c")), this.blocksEl - }, - append: function(t) { - this.getBlocksEl().appendChild(t) - }, - render: function() { - return this.el.innerHTML = this.template({ - pfx: this.pfx, - label: this.model.get("label") - }), this.el.className = this.className, this.updateVisibility(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - stylePrefix: "cv-", - rulers: !1, - scripts: [], - styles: [], - customBadgeLabel: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n = {}, - r = i(58), - s = i(60), - o = i(62); - return { - getCanvasView: function() { - return o - }, - name: "Canvas", - init: function(e) { - n = e || {}; - for (var i in r) i in n || (n[i] = r[i]); - var a = n.pStylePrefix; - a && (n.stylePrefix = a + n.stylePrefix), t = new s(e), o = new o({ - model: t, - config: n - }); - var l = n.em.get("DomComponents"); - return l && this.setWrapper(l), this.startAutoscroll = this.startAutoscroll.bind(this), this.stopAutoscroll = this.stopAutoscroll.bind(this), this.autoscroll = this.autoscroll.bind(this), this - }, - getConfig: function() { - return n - }, - setWrapper: function(e) { - t.set("wrapper", e) - }, - getElement: function() { - return o.el - }, - getFrameEl: function() { - return o.frame.el - }, - getBody: function() { - return o.frame.el.contentDocument.body - }, - getWrapperEl: function() { - return this.getBody().querySelector("#wrapper") - }, - getToolsEl: function() { - return o.toolsEl - }, - getHighlighter: function() { - return o.hlEl - }, - getBadgeEl: function() { - return o.badgeEl - }, - getPlacerEl: function() { - return o.placerEl - }, - getGhostEl: function() { - return o.ghostEl - }, - getToolbarEl: function() { - return o.toolbarEl - }, - getResizerEl: function() { - return o.resizerEl - }, - getOffsetViewerEl: function() { - return o.offsetEl - }, - getFixedOffsetViewerEl: function() { - return o.fixedOffsetEl - }, - render: function() { - return o.render().el - }, - getOffset: function() { - var t = this.offset(this.getFrameEl()), - e = this.offset(this.getElement()); - return { - top: t.top - e.top, - left: t.left - e.left - } - }, - offset: function(t) { - var e = t.getBoundingClientRect(); - return { - top: e.top + document.body.scrollTop, - left: e.left + document.body.scrollLeft - } - }, - setCustomBadgeLabel: function(t) { - n.customBadgeLabel = t - }, - getElementPos: function(t, e) { - return o.getElementPos(t, e) - }, - getTargetToElementDim: function(t, e, i) { - var r = i || {}, - s = o.getPosition(), - a = r.elPos || o.getElementPos(e), - l = i.toRight || 0, - c = r.targetHeight || t.offsetHeight, - u = r.targetWidth || t.offsetWidth, - h = r.event || null, - d = a.top - c, - f = a.left; - f += l ? a.width : 0, f = l ? f - u : f; - var p = f < s.left ? s.left : f, - g = d < s.top ? s.top : d; - g = g > a.top + a.height ? a.top + a.height : g; - var m = { - top: g, - left: p, - elementTop: a.top, - elementLeft: a.left, - elementWidth: a.width, - elementHeight: a.height, - targetWidth: t.offsetWidth, - targetHeight: t.offsetHeight, - canvasTop: s.top, - canvasLeft: s.left - }; - return h && n.em && n.em.trigger(h, m), m - }, - getMouseRelativePos: function(t, e) { - var i = e || {}, - n = 0, - r = 0, - s = i.subWinOffset, - o = t.target.ownerDocument, - a = o.defaultView || o.parentWindow, - l = a.frameElement, - c = s ? a.pageYOffset : 0, - u = s ? a.pageXOffset : 0; - if (l) { - var h = l.getBoundingClientRect(); - n = h.top || 0, r = h.left || 0 - } - return { - y: t.clientY + n - c, - x: t.clientX + r - u - } - }, - getMouseRelativeCanvas: function(t, e) { - var i = this.getFrameEl(), - n = this.getBody(), - r = i.offsetTop || 0, - s = i.offsetLeft || 0, - o = n.scrollTop || 0, - a = n.scrollLeft || 0; - return { - y: t.clientY + r + o, - x: t.clientX + s + a - } - }, - startAutoscroll: function() { - this.dragging = 1; - var t = this.getScrollListeners(); - e = o.getFrameOffset(1), t.on("mousemove", this.autoscroll), t.on("mouseup", this.stopAutoscroll) - }, - autoscroll: function(t) { - if (t.preventDefault(), this.dragging) { - var i = this.getFrameEl().contentWindow, - n = i.document.body.scrollTop, - r = n, - s = t.clientY, - o = e.height - 50; - s < 50 && (r -= 50 - s), s > o && (r += s - o), i.scrollTo(0, r) - } - }, - stopAutoscroll: function() { - this.dragging = 0; - var t = this.getScrollListeners(); - t.off("mousemove", this.autoscroll), t.off("mouseup", this.stopAutoscroll) - }, - getScrollListeners: function() { - return this.scrollListeners || (this.scrollListeners = $(this.getFrameEl().contentWindow, this.getElement())), this.scrollListeners - }, - getFrameWrapperEl: function() { - return o.frame.getWrapper() - } - } - } - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(61); - t.exports = n.Model.extend({ - defaults: { - frame: "", - wrapper: "", - rulers: !1 - }, - initialize: function(t) { - var e = this.conf || {}; - this.set("frame", new r(e.frame)) - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - defaults: { - wrapper: "", - width: "", - height: "", - attributes: {} - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(63); - t.exports = n.View.extend({ - initialize: function(t) { - e.bindAll(this, "renderBody", "onFrameScroll", "clearOff"), this.config = t.config || {}, this.em = this.config.em || {}, this.ppfx = this.config.pStylePrefix || "", this.className = this.config.stylePrefix + "canvas", this.listenTo(this.em, "change:canvasOffset", this.clearOff), this.frame = new r({ - model: this.model.get("frame"), - config: this.config - }) - }, - onFrameScroll: function() { - var t = this.frame.el.contentDocument.body; - this.toolsEl.style.top = "-" + t.scrollTop + "px", this.toolsEl.style.left = "-" + t.scrollLeft + "px", this.em.trigger("canvasScroll") - }, - renderScripts: function() { - var t = this.frame, - e = this; - t.el.onload = function() { - function i(n) { - if (n.length > 0) { - var r = document.createElement("script"); - r.type = "text/javascript", r.src = n.shift(), r.onerror = r.onload = i.bind(null, n), t.el.contentDocument.head.appendChild(r) - } else e.renderBody() - } - var n = e.config.scripts.slice(0); - i(n) - } - }, - renderBody: function() { - var t = this.model.get("frame").get("wrapper"), - e = this.config.em; - if (t) { - var i = this.ppfx, - n = this.frame.$el.contents().find("body"), - r = e.get("CssComposer"), - s = e.get("Config"), - o = this.config, - a = s.protectedCss, - l = ""; - o.styles.forEach(function(t) { - l += '' - }); - var c = "\n ." + i + "comp-selected{\n outline: 3px solid #3b97e3 !important\n }\n ." + i + "comp-selected-parent{\n outline: 2px solid #ffca6f !important\n }\n ", - u = "\n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n html {\n height: 100%;\n }\n body {\n margin: 0;\n height: auto;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n ." + i + "dashed :not([contenteditable]) > *[data-highlightable]{outline: 1px dashed rgba(170,170,170,0.7); outline-offset: -2px}" + c + "." + i + "no-select{user-select: none; -webkit-user-select:none; -moz-user-select: none}." + i + "freezed{opacity: 0.5; pointer-events: none}." + i + "no-pointer{pointer-events: none}." + i + "plh-image{background:#f5f5f5; border:none; height:50px; width:50px; display:block; outline:3px solid #ffca6f; cursor:pointer}." + i + "grabbing{cursor: grabbing; cursor: -webkit-grabbing}* ::-webkit-scrollbar-track {background: rgba(0, 0, 0, 0.1)}* ::-webkit-scrollbar-thumb {background: rgba(255, 255, 255, 0.2)}* ::-webkit-scrollbar {width: 10px}" + (s.canvasCss || ""); - u += a || "", l && n.append(l), n.append(""), n.append(t.render()).append(r.render()), n.append(this.getJsContainer()), e.trigger("loaded"), this.frame.el.contentWindow.onscroll = this.onFrameScroll, this.frame.udpateOffset(); - var h = document, - d = this.frame.el.contentDocument; - d.addEventListener("keydown", function(t) { - h.dispatchEvent(new KeyboardEvent(t.type, t)) - }), d.addEventListener("keyup", function(t) { - h.dispatchEvent(new KeyboardEvent(t.type, t)) - }) - } - }, - offset: function(t) { - var e = t.getBoundingClientRect(), - i = t.ownerDocument.body; - return { - top: e.top + i.scrollTop, - left: e.left + i.scrollLeft, - width: e.width, - height: e.height - } - }, - clearOff: function() { - this.frmOff = null, this.cvsOff = null - }, - getFrameOffset: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; - return this.frmOff && !t || (this.frmOff = this.offset(this.frame.el)), this.frmOff - }, - getCanvasOffset: function() { - return this.cvsOff || (this.cvsOff = this.offset(this.el)), this.cvsOff - }, - getElementPos: function(t, e) { - var i = e || {}, - n = this.getFrameOffset(), - r = this.getCanvasOffset(), - s = this.offset(t), - o = i.avoidFrameOffset ? 0 : n.top, - a = i.avoidFrameOffset ? 0 : n.left; - return { - top: s.top + o - r.top, - left: s.left + a - r.left, - height: t.offsetHeight, - width: t.offsetWidth - } - }, - getPosition: function() { - var t = this.frame.el.contentDocument.body, - e = this.getFrameOffset(), - i = this.getCanvasOffset(); - return { - top: e.top + t.scrollTop - i.top, - left: e.left + t.scrollLeft - i.left - } - }, - updateScript: function(t) { - t.scriptContainer || (t.scriptContainer = $("
"), this.getJsContainer().append(t.scriptContainer.get(0))); - var e = t.model, - i = e.getId(); - t.el.id = i, t.scriptContainer.html(""), t.scriptContainer.append("', - attributes: { - class: 'fa fa-home', - title: 'Homepage' - }, - category: 'Static Components' - }); - - // Simple logo component - bm.add('logoComponent',{ - label: 'Logo', - content: '', - attributes: { - class: 'fa fa-google', - title: 'Logo' - }, - category: 'Static Components' - }); - - // Static components for page - bm.add('productContents', { - label: 'Product Content', - content: ''+ - '
Our Top Grossing Products
Title one
Subtitle one
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title two
Subtitle two
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title three
Subtitle three
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title four
Subtitle four
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title five
Subtitle five
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title six
Subtitle six
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
BEST PRODUCT OF ALL TIME

Apple iPhone 6s with Free Vodafone RED Plan (Gold, 16GB)

iPhone 6s - Take everything that made the previous generation great, and advance it to a new level. They’re made with 7000 Series aluminium, the strongest alloy we’ve ever used in an iPhone. They both feature Retina HD displays made from the strongest cover glass used on any smartphone in the world. And now they’re available in an elegant new rose gold finish.

A breakthrough design. Pushed even further.

', - attributes: { - class: 'fa fa-file-o', - title: 'Content Block' - }, - category: 'Static Components' - }); - - // bm.add('bootstrapSlider',{ - // label: 'Bootstrap Slider', - // content: '', - // attributes: { - // class: 'fa fa-user', - // title: 'Bootstrap Slider' - // }, - // category: 'Custom Components' - // }); - - // Pre Defined Site Header - bm.add('siteHeader', { - label: 'Header', - content: ''+ - '
', - attributes: { - class: 'fa fa-file-text', - title: 'Header' - }, - category: 'Ecommerce Components' - }); - - // Flipkart Like header - bm.add('siteHeaderNew', { - label: 'Ecommerce Navabr', - content: ''+ - ''+ - '
', - attributes: { - class: 'fa fa-file-code-o', - title: 'Ecommerce Navbar' - }, - category: 'Ecommerce Components' - }); - - // Predefined footer matching with Flipkart like Header - bm.add('footer',{ - label: 'Footer & Copyright', - content: ''+ - '
', - attributes: { - class: 'fa fa-html5', - title: 'Footer & Copyright' - }, - category: 'Ecommerce Components' - }); - - // Dynamic navigation menu from JSON created from menu builder - bm.add('navMenu',{ - label: 'Navbar Menu', - content: ''+ - '', - attributes: { - class: 'fa fa-bars', - title: 'Navigation Menu' - }, - category: 'Ecommerce Components' - }); - - // Lisiting Page sidebar filters - bm.add('filters', { - label: 'Product Filters', - content: ''+ - '', - attributes: { - class: 'fa fa-filter', - title: 'Product Filters' - }, - category: 'Ecommerce Components' - }); - - // Custom droppable block of product listing - bm.add('productListing', { - label: 'Product Listing', - content: ''+ - ''+ - '

Product Title

Product Sescription

US

Save 25% $ 10.99

starting at $ 10.99

'+ - ''+ - '
', - attributes: { - class: 'fa fa-home', - title: 'Homepage' - }, - category: 'Static Components' - }); - - // Header Layout - bm.add('Header-1', { - label: 'Header-1', - content: 'Header-1
', - attributes: { - class: 'fa fa-header', - title: 'Header-1' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-2', { - label: 'Header-2', - content: 'Basic Header
', - attributes: { - class: 'fa fa-header', - title: 'Header-2' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-3', { - label: 'Header-3', - content: 'Login, Sign up Header', - attributes: { - class: 'fa fa-header', - title: 'Header-3' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-4', { - label: 'Header-4', - content: 'Second Bar Header
', - attributes: { - class: 'fa fa-header', - title: 'Header-4' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-5', { - label: 'Header-5', - content: 'User Dropdown Header
', - attributes: { - class: 'fa fa-header', - title: 'Header-5' - }, - category: 'Header' - }); - - // Footer Layout - bm.add('Footer-1', { - label: 'Footer-1', - content: 'Distributed Footer', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-1' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-2', { - label: 'Footer-2', - content: 'Footer With Address And Phones
', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-2' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-3', { - label: 'Footer-3', - content: 'Footer Distributed With Contact Form', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-3' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-4', { - label: 'Footer-4', - content: 'Footer with a Search Form', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-4' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-5', { - label: 'Footer-5', - content: 'Basic, Centered Footer', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-5' - }, - category: 'Footer' - }); -// Login Layout - bm.add('Login-1', { - label: 'Login-1', - content: ' Login Form ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-1' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-2', { - label: 'Login-2', - content: ' ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-2' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-3', { - label: 'Login-3', - content: '

Dashboard

Sign In
Sign Up

Forgot your password? Click Here!

', - attributes: { - class: 'fa fa-user-o', - title: 'Login-3' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-4', { - label: 'Login-4', - content: ' Simple login form
', - attributes: { - class: 'fa fa-user-o', - title: 'Login-4' - }, - category: 'Login' - }); - - // Search Layout - bm.add('search', { - label: 'search', - content: 'search', - attributes: { - class: 'fa fa-search', - title: 'search' - }, - category: 'Search' - }); - - // Simple logo component - bm.add('logo',{ - label: 'Logo', - content: '', - attributes: { - class: 'fa fa-google', - title: 'Logo' - }, - category: 'Static Components' - }); - - // Static components for page - bm.add('productContents', { - label: 'Product Content', - content: ''+ - '
Our Top Grossing Products
Title one
Subtitle one
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title two
Subtitle two
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title three
Subtitle three
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title four
Subtitle four
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title five
Subtitle five
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
Title six
Subtitle six
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
BEST PRODUCT OF ALL TIME

Apple iPhone 6s with Free Vodafone RED Plan (Gold, 16GB)

iPhone 6s - Take everything that made the previous generation great, and advance it to a new level. They’re made with 7000 Series aluminium, the strongest alloy we’ve ever used in an iPhone. They both feature Retina HD displays made from the strongest cover glass used on any smartphone in the world. And now they’re available in an elegant new rose gold finish.

A breakthrough design. Pushed even further.

', - attributes: { - class: 'fa fa-file-o', - title: 'Content Block' - }, - category: 'Static Components' - }); - - // bm.add('bootstrapSlider',{ - // label: 'Bootstrap Slider', - // content: '', - // attributes: { - // class: 'fa fa-user', - // title: 'Bootstrap Slider' - // }, - // category: 'Custom Components' - // }); - - // Pre Defined Site Header - bm.add('siteHeader', { - label: 'Header', - content: ''+ - '
', - attributes: { - class: 'fa fa-file-text', - title: 'Header' - }, - category: 'Ecommerce Components' - }); - - // Flipkart Like header - bm.add('siteHeaderNew', { - label: 'Ecommerce Navabr', - content: ''+ - ''+ - '
', - attributes: { - class: 'fa fa-file-code-o', - title: 'Ecommerce Navbar' - }, - category: 'Ecommerce Components' - }); - - // Predefined footer matching with Flipkart like Header - bm.add('footer',{ - label: 'Footer & Copyright', - content: ''+ - '
', - attributes: { - class: 'fa fa-html5', - title: 'Footer & Copyright' - }, - category: 'Ecommerce Components' - }); - - // Dynamic navigation menu from JSON created from menu builder - bm.add('navMenu',{ - label: 'Navbar Menu', - content: ''+ - '', - attributes: { - class: 'fa fa-bars', - title: 'Navigation Menu' - }, - category: 'Ecommerce Components' - }); - - // Lisiting Page sidebar filters - bm.add('filters', { - label: 'Product Filters', - content: ''+ - '', - attributes: { - class: 'fa fa-filter', - title: 'Product Filters' - }, - category: 'Ecommerce Components' - }); - - // Custom droppable block of product listing - bm.add('productListing', { - label: 'Product Listing', - content: ''+ - ''+ - '

Product Title

Product Sescription

US

Save 25% $ 10.99

starting at $ 10.99

'+ - ''+ - '
- - diff --git a/client/src/api/approval/index.js b/client/src/api/approval/index.js deleted file mode 100644 index bd4b0b8..0000000 --- a/client/src/api/approval/index.js +++ /dev/null @@ -1,69 +0,0 @@ -import api from '../../api' -let model = 'approval' -export default { - // let gets = async function (id) { - // return true; - // }, - // get: (id) => { - // if (id === undefined) { - // return api.request('get', '/' + model) - // } else { - // return api.request('get', '/' + model + '/' + id) - // } - // } - get: (rowId) => { - if (rowId === undefined) { - return api.request('get', '/' + model) - .then(response => { - return response.data.data - }) - .catch(error => { - throw error - }) - } else { - return api.request('get', '/' + model + '/' + rowId) - .then(response => { - return response.data - }) - .catch(error => { - console.log(error) - }) - } - }, - getOne: (rowId) => { - return api.request('get', '/' + model + '/' + rowId) - .then(response => { - return response.data - }) - .catch(error => { - console.log(error) - }) - }, - delete: (rowId) => { - return api.request('delete', '/' + model + '/' + rowId) - .then(response => { - return ({ 'status': 'success', 'message': 'Record deleted sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - }, - add: (data) => { - return api.request('post', '/' + model, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Record Inserted sucessfully;' }) - }) - .catch(error => { - console.log(error) - }) - }, - update: (data, id) => { - return api.request('put', '/' + model + '/' + id, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Record updated sucessfully;' }) - }) - .catch(error => { - console.log(error) - }) - } -} diff --git a/client/src/api/approvalrole/index.js b/client/src/api/approvalrole/index.js deleted file mode 100644 index f2e17da..0000000 --- a/client/src/api/approvalrole/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import axios from 'axios' -import config from '../../config' -export default { - get: (roleName) => { - if (!roleName) { - return axios.get(config.approvalRoleURI + 'getroles') - .then(response => { - return response.data.data.roles - }) - .catch(error => { - console.log('Error : ', error) - }) - } else { - return axios.get(config.approvalRoleURI + 'userslist/' + roleName) - .then(response => { - return response.data.data.roles - }) - .catch(error => { - console.log('Error : ', error) - }) - } - } -} diff --git a/client/src/api/databases/index.js b/client/src/api/databases/index.js deleted file mode 100644 index e2cec4c..0000000 --- a/client/src/api/databases/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import api from '../../api' -let model = 'databases' -export default { - get: (id = null, params = null) => { - if (id === null) { - return api.request('get', '/' + model, null, params) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getCustom: (string) => { - return api.request('get', '/' + model + string) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - }, - patch: (id, data) => { - return api.request('patch', '/' + model + '/' + id, data) - }, - delete: (id) => { - return api.request('delete', '/' + model + '/' + id) - } -} diff --git a/client/src/api/flowzinstance/index.js b/client/src/api/flowzinstance/index.js deleted file mode 100644 index 4fc623f..0000000 --- a/client/src/api/flowzinstance/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'flowz-instance' -export default { - get: (params = null, headers = null) => { - console.log('headers', headers) - return api.request('get', '/' + model, null, params, headers) - }, - getThis: (id, params = null, headers = null) => { - return api.request('get', '/' + model + '/' + id, null, params, headers) - }, - getByfid: (fid, params = null, headers = null) => { - return api.request('get', '/' + model + '?fid=' + fid, null, params, headers) - }, - post: (data, params = null, headers = null) => { - return api.request('post', '/' + model, data, null, params, headers) - }, - put: (id, data, params = null, headers = null) => { - return api.request('put', '/' + model + '/' + id, data, null, params, headers) - } -} diff --git a/client/src/api/instance/index.js b/client/src/api/instance/index.js deleted file mode 100644 index 0e430e5..0000000 --- a/client/src/api/instance/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'instance' - // let model = 'instance-test' -export default { - // let gets = async function (id) { - // return true; - // }, - get: () => { - return api.request('get', '/' + model) - }, - getThis: (id, Schemaid) => { - return api.request('get', '/' + model + '/' + id + '?schemaid=' + Schemaid) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('pot', '/' + model + '/' + id, data) - } -} diff --git a/client/src/api/logs/index.js b/client/src/api/logs/index.js deleted file mode 100644 index 16f1ecf..0000000 --- a/client/src/api/logs/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'logs' -export default { - get: (id) => { - if (id === undefined) { - return api.request('get', '/' + model) - } else { - return api.request('get', '/' + model + '?fId=' + id) - } - }, - getThis: (id) => { - return api.request('get', '/' + model + '/' + id) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - } -} diff --git a/client/src/api/schemamapping/index.js b/client/src/api/schemamapping/index.js deleted file mode 100644 index 36388a4..0000000 --- a/client/src/api/schemamapping/index.js +++ /dev/null @@ -1,35 +0,0 @@ -import api from '../../api' -let model = 'schemamapping' -export default { - get: (id = null, params = null) => { - if (id === null) { - return api.request('get', '/' + model, null, params) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getAll: () => { - return api.request('get', '/' + model + '?$paginate=false') - }, - post: (data) => { - return api.request('post', '/' + model, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Mapping Inserted sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - }, - deleteThis: (id) => { - return api.request('delete', '/' + model + '/' + id) - }, - update: (data, id) => { - return api.request('put', '/' + model + '/' + id, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Schema Mapping updated sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - } -} diff --git a/client/src/api/user/index.js b/client/src/api/user/index.js deleted file mode 100644 index 7e84bab..0000000 --- a/client/src/api/user/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import api from '../../api' -let model = 'usermaster' -export default { - get: (id) => { - if (id === undefined) { - return api.request('get', '/' + model) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getByParam: (param) => { - // 'http://172.16.160.117:3030/usermaster?emailId='+self.formInline.Email - return api.request('get', '/' + model + '?email=' + param) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - }, - delete: (id) => { - return api.request('delete', '/' + model + '/' + id) - } -} diff --git a/client/src/components/GrapesComponent.vue b/client/src/components/GrapesComponent.vue deleted file mode 100644 index 128ea50..0000000 --- a/client/src/components/GrapesComponent.vue +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - - diff --git a/client/src/components/MjmlEditor.vue b/client/src/components/MjmlEditor.vue deleted file mode 100644 index 53510da..0000000 --- a/client/src/components/MjmlEditor.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - diff --git a/client/src/components/Tab.vue b/client/src/components/Tab.vue deleted file mode 100644 index 57cdc1c..0000000 --- a/client/src/components/Tab.vue +++ /dev/null @@ -1,80 +0,0 @@ - - diff --git a/client/src/components/erow_instancelist.vue b/client/src/components/erow_instancelist.vue deleted file mode 100644 index 40d0926..0000000 --- a/client/src/components/erow_instancelist.vue +++ /dev/null @@ -1,43 +0,0 @@ - - diff --git a/client/src/components/erow_mappinglist.vue b/client/src/components/erow_mappinglist.vue deleted file mode 100644 index 7acc902..0000000 --- a/client/src/components/erow_mappinglist.vue +++ /dev/null @@ -1,46 +0,0 @@ - - diff --git a/client/src/components/expand-process.vue b/client/src/components/expand-process.vue deleted file mode 100644 index 7a31e73..0000000 --- a/client/src/components/expand-process.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - \ No newline at end of file diff --git a/client/src/components/gridmanager.vue b/client/src/components/gridmanager.vue deleted file mode 100644 index d5548e9..0000000 --- a/client/src/components/gridmanager.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/client/src/components/mycustom.vue b/client/src/components/mycustom.vue deleted file mode 100644 index 563d418..0000000 --- a/client/src/components/mycustom.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/client/src/components/subscription.vue b/client/src/components/subscription.vue index e99a622..6da42d9 100644 --- a/client/src/components/subscription.vue +++ b/client/src/components/subscription.vue @@ -6,8 +6,6 @@
diff --git a/client/src/layout/Master.vue b/client/src/layout/Master.vue deleted file mode 100644 index 451423a..0000000 --- a/client/src/layout/Master.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - diff --git a/client/src/layout/SideBar.vue b/client/src/layout/SideBar.vue deleted file mode 100644 index 1772393..0000000 --- a/client/src/layout/SideBar.vue +++ /dev/null @@ -1,812 +0,0 @@ - - - - \ No newline at end of file diff --git a/client/src/layout/user/Common.vue b/client/src/layout/user/Common.vue deleted file mode 100644 index e2febc6..0000000 --- a/client/src/layout/user/Common.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/client/src/layout/user/CommonHeader.vue b/client/src/layout/user/CommonHeader.vue deleted file mode 100644 index fe6320f..0000000 --- a/client/src/layout/user/CommonHeader.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/client/src/layout/user/Footer.vue b/client/src/layout/user/Footer.vue deleted file mode 100644 index 710a73b..0000000 --- a/client/src/layout/user/Footer.vue +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/client/src/layout/user/Header.vue b/client/src/layout/user/Header.vue deleted file mode 100644 index 4e93ec1..0000000 --- a/client/src/layout/user/Header.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/client/src/layout/user/Master.vue b/client/src/layout/user/Master.vue deleted file mode 100644 index a794b00..0000000 --- a/client/src/layout/user/Master.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - \ No newline at end of file diff --git a/client/src/layout/user/SideBar.vue b/client/src/layout/user/SideBar.vue deleted file mode 100644 index b1ba40d..0000000 --- a/client/src/layout/user/SideBar.vue +++ /dev/null @@ -1,280 +0,0 @@ - - - - - diff --git a/client/src/main.js b/client/src/main.js index 311112b..16b0219 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -103,10 +103,6 @@ var router = new VueRouter({ } }) -// iView.LoadingBar.config({ -// color: '#5cb85c', -// height: 5 -// }) iView.LoadingBar.config({ color: '#5cb85c', failedColor: '#f0ad4e', diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index 2a26a79..df13f85 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -101,9 +101,7 @@ export default { for (let key in array) { allProcess.push(array[key]) } - return allProcess.sort((a, b) => { - return a.order - b.order - }) + return allProcess }, createInstance (item, subItemID) { // console.log('item', item) @@ -195,7 +193,7 @@ export default { // console.log('flowzList', this.flowzList) this.setCounters() } else { - await flowzModal.get(null, { + flowzModal.get(null, { $paginate: false }) .then(async (response) => { @@ -240,7 +238,7 @@ export default { mData.role = item.role fData.push(mData) } else { - await flowzModal.get(id, { + flowzModal.get(id, { $select: ['id', 'json'] }, { workflowid: 'workflow_' + id diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f1587f5..4c3d922 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -103,10 +103,7 @@ - diff --git a/client/src/pages/approval/List.vue b/client/src/pages/approval/List.vue deleted file mode 100644 index 412d383..0000000 --- a/client/src/pages/approval/List.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - diff --git a/client/src/pages/approval/MailReply.vue b/client/src/pages/approval/MailReply.vue deleted file mode 100644 index 5f8bbcb..0000000 --- a/client/src/pages/approval/MailReply.vue +++ /dev/null @@ -1,302 +0,0 @@ - - - diff --git a/client/src/pages/approval/New.vue b/client/src/pages/approval/New.vue deleted file mode 100644 index 85619ee..0000000 --- a/client/src/pages/approval/New.vue +++ /dev/null @@ -1,332 +0,0 @@ - - - - - diff --git a/client/src/pages/approval/PropertyManage.vue b/client/src/pages/approval/PropertyManage.vue deleted file mode 100644 index 34afd21..0000000 --- a/client/src/pages/approval/PropertyManage.vue +++ /dev/null @@ -1,549 +0,0 @@ - - - diff --git a/client/src/pages/approval/View.vue b/client/src/pages/approval/View.vue deleted file mode 100644 index 7d3e137..0000000 --- a/client/src/pages/approval/View.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - diff --git a/client/src/pages/approval/expand-FormReply.vue b/client/src/pages/approval/expand-FormReply.vue deleted file mode 100644 index 32267c3..0000000 --- a/client/src/pages/approval/expand-FormReply.vue +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/client/src/pages/dbSettings/List.vue b/client/src/pages/dbSettings/List.vue deleted file mode 100644 index 2507e34..0000000 --- a/client/src/pages/dbSettings/List.vue +++ /dev/null @@ -1,672 +0,0 @@ - - diff --git a/client/src/pages/dbSettings/New.vue b/client/src/pages/dbSettings/New.vue deleted file mode 100644 index 415ba46..0000000 --- a/client/src/pages/dbSettings/New.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - diff --git a/client/src/pages/flow/FlowOverview.vue b/client/src/pages/flow/FlowOverview.vue deleted file mode 100644 index 9011ce4..0000000 --- a/client/src/pages/flow/FlowOverview.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index b145ccc..32d4f29 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -11,8 +11,7 @@
- -

{{titleCase(selectedFlowName)}}

+

{{titleCase(selectedFlowName)}}

@@ -23,8 +22,7 @@ @@ -162,71 +121,6 @@ - - - - - - - @@ -237,97 +131,21 @@ - - - - - \ No newline at end of file diff --git a/client/src/pages/schema/Mapping.vue b/client/src/pages/schema/Mapping.vue deleted file mode 100644 index 8edce18..0000000 --- a/client/src/pages/schema/Mapping.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/client/src/pages/schema/mapping/List.vue b/client/src/pages/schema/mapping/List.vue deleted file mode 100644 index a8794b2..0000000 --- a/client/src/pages/schema/mapping/List.vue +++ /dev/null @@ -1,183 +0,0 @@ - - \ No newline at end of file diff --git a/client/src/pages/schema/mapping/New.vue b/client/src/pages/schema/mapping/New.vue deleted file mode 100644 index 39ebf00..0000000 --- a/client/src/pages/schema/mapping/New.vue +++ /dev/null @@ -1,404 +0,0 @@ - - - - \ No newline at end of file diff --git a/client/src/pages/schema/schemaList.vue b/client/src/pages/schema/schemaList.vue index bbaf26e..919730b 100644 --- a/client/src/pages/schema/schemaList.vue +++ b/client/src/pages/schema/schemaList.vue @@ -15,9 +15,7 @@ diff --git a/client/src/userLayout/Master.vue b/client/src/userLayout/Master.vue deleted file mode 100644 index 3fbedc8..0000000 --- a/client/src/userLayout/Master.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - \ No newline at end of file diff --git a/client/src/userLayout/SideBar.vue b/client/src/userLayout/SideBar.vue deleted file mode 100644 index 9710518..0000000 --- a/client/src/userLayout/SideBar.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - diff --git a/service/src/app.js b/service/src/app.js index c6af535..789bdfa 100644 --- a/service/src/app.js +++ b/service/src/app.js @@ -12,13 +12,6 @@ const rest = require('feathers-rest'); const socketio = require('feathers-socketio'); const handler = require('feathers-errors/handler'); -// const feathers = require('@feathersjs/feathers'); -// const express = require('@feathersjs/express'); -// const configuration = require('@feathersjs/configuration'); -// const rest = require('@feathersjs/express/rest'); -// const socketio = require('@feathersjs/socketio'); - -// const handler = require('@feathersjs/express/errors'); const notFound = require('feathers-errors/not-found'); const middleware = require('./middleware'); @@ -29,7 +22,6 @@ const rethinkdb = require('./rethinkdb'); const subscription = require('flowz-subscription'); const app = feathers(); -// const app = express(feathers()); // Load app configuration app.configure(configuration()); diff --git a/service/src/services/DBConnection/DBConnection.js b/service/src/services/DBConnection/DBConnection.js deleted file mode 100644 index 0d69910..0000000 --- a/service/src/services/DBConnection/DBConnection.js +++ /dev/null @@ -1,55 +0,0 @@ -// let async = require('asyncawait/async'); -// let await = require('asyncawait/await'); -// var axios = require('axios'); -// var fs = require('fs'); -// var path = require('path'); -// var db = './db.json'; -// var file = require(db); -// let dbapi; - -// if (file.mongo.isdefault == 'true') { -// console.log('***************inside mongo api****************'); -// dbapi = require('./mongoapi') -// } else if (file.rethink.isdefault == 'true') { -// console.log('***************inside rethink api**************'); -// dbapi = require('./rethinkapi') -// } else if (file.elastic.isdefault == 'true') { -// console.log('***************inside elastic api**************'); -// dbapi = require('./elasticapi') -// } - -// var chokidar = require('chokidar'); - -// let readfile = async (function(){ -// fs.readFile(__dirname+ '/db.json', function (err, data) { -// if (err) return console.log(err); -// console.log('reading file' + data) -// let check = JSON.parse(data) -// if (check.mongo.isdefault == 'true') { -// // console.log('***************inside mongo api****************'); -// dbapi = require('./mongoapi') -// dbapi.choose(); -// } else if (check.rethink.isdefault == 'true') { -// // console.log('***************inside rethink api**************'); -// dbapi = require('./rethinkapi') -// dbapi.choose(); -// } else if (check.elastic.isdefault == 'true') { -// // console.log('***************inside rethink api**************'); -// dbapi = require('./elasticapi') -// dbapi.choose(); -// } -// }); -// }) - -// // One-liner for current directory, ignores .dotfiles -// chokidar.watch('.', {ignored: /(^|[\/\\])\../}).on('change',async (function(path) { -// console.log('File', path, 'has been changed'); -// delete require.cache[require.resolve('../schema/schema.class')]; -// delete require.cache[require.resolve('../instance/instance.class')]; -// delete require.cache[require.resolve('./mongoapi')]; -// delete require.cache[require.resolve('./rethinkapi')]; -// delete require.cache[require.resolve('./elasticapi')]; -// await(readfile); -// })) -// //console.log(api.get()) -// module.exports = dbapi; \ No newline at end of file diff --git a/service/src/services/DBConnection/bpmnplugins.json b/service/src/services/DBConnection/bpmnplugins.json deleted file mode 100644 index 15eb7e5..0000000 --- a/service/src/services/DBConnection/bpmnplugins.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "plugins": [{ - "name": "", - "icon": "", - "input": [{}], - "output": [ - {}, {}, {} - ] - }] -} \ No newline at end of file diff --git a/service/src/services/DBConnection/ca.crt b/service/src/services/DBConnection/ca.crt deleted file mode 100644 index e7f92d4..0000000 --- a/service/src/services/DBConnection/ca.crt +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDbzCCAlegAwIBAgIEWiAURDANBgkqhkiG9w0BAQ0FADA5MTcwNQYDVQQDDC5G -bG93eiBEaWdpdGFsLWUyZDAwMmFkMzA1NzI0NzZiYWQxOTRiNTk1MTdhYWFjMB4X -DTE3MTEzMDE0MjMwMFoXDTM3MTEzMDE0MDAwMFowOTE3MDUGA1UEAwwuRmxvd3og -RGlnaXRhbC1lMmQwMDJhZDMwNTcyNDc2YmFkMTk0YjU5NTE3YWFhYzCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1+3KkM9hzxjJCPJTX5a9MieM0IJfrC -CUnaBD1Dlx8fzEYyg6+pKBcbMZ5jRe61vh0nE0KNqTTawQAo7sOZhezuHOsHuW+i -njfAA2dJ/Rni6oSUBvYXIF/oep8gcriRWYMAx3erP4t2fR/UPsdxe8RN9no6utio -yuAVCdkLix3tlI9/ezcJhhAS/viXYnkYShNn8LO1w38ZUbxodTGQab3YVCzvsmyH -V8fQYJuTJTjYNY0nf1SI32t7h8ZDWM85MPsbdH+orcGK3DQ2Uukh6XC4H4fcwKlh -T3OdNo5G09b6YuORMLEGImbHsbigi+gKJiI48zTCAHLAwvcopDTgAtsCAwEAAaN/ -MH0wHQYDVR0OBBYEFHi2Xx/LpGqIVJXEE//sMBfOMQ4pMA4GA1UdDwEB/wQEAwIC -BDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TBAUwAwEB/zAf -BgNVHSMEGDAWgBR4tl8fy6RqiFSVxBP/7DAXzjEOKTANBgkqhkiG9w0BAQ0FAAOC -AQEA0CHWo1t2QEsCmFpdOXJjuyY4t8ChGVxucz/yIyCgk1e/8Wt4HC1yWNnqxjmY -GeHBqUzfGPDY5mpbufb2FeJwGfUp04PRvUqlmJUGEMaWSUtDxs4Orxrzvir8PsD4 -RCnAdgYfBeS7ryiBKFDHMsBGuAJLq2ILbz7HO5Wmbgt05hu99/cgR8XIReka1zuH -1O4bkD6iMBei9QuuFfjJMv1coWWIDjLaQDHswTWCh9+6mnEWeY3kqT7WIWuFri/E -xtT9GtO5Id3WGjJLCdanOP3AUyf0spnALjvbHKuH7gpz03LpbmcR22dcpPI7HAsQ -W0LD0cRNsBHnYTYMgW/ap9xWog== ------END CERTIFICATE----- diff --git a/service/src/services/DBConnection/db.json b/service/src/services/DBConnection/db.json deleted file mode 100644 index 25bdbc3..0000000 --- a/service/src/services/DBConnection/db.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "mongo": { - "dbinstance": [ - { - "isenable": true, - "connection_name": "FlowzEngineTest", - "host": "ds245218.mlab.com", - "port": "45218", - "dbname": "flowztest", - "username": "nik", - "password": "01d8c5c9ecb5", - "upldIcn": "", - "rdoCrt": "", - "notes": "", - "isdefault": true, - "id": "9750939e-3698-43da-8163-cb41bd65c478" - }, - { - "isenable": true, - "connection_name": "Flowenginwork247", - "host": "ds247178.mlab.com", - "port": "47178", - "dbname": "work247", - "username": "officebrain5510", - "password": "01d8c5c9ecb5", - "upldIcn": "", - "rdoCrt": "", - "notes": "", - "isdefault": false, - "id": "1aad0216-67f5-4803-3864-22dd01fa2ad7" - } - ] - }, - "rethink": { - "dbinstance": [] - }, - "elastic": { - "dbinstance": [] - }, - "nedb": { - "dbinstance": [] - } -} diff --git a/service/src/services/DBConnection/db1.json b/service/src/services/DBConnection/db1.json deleted file mode 100644 index 2dc9918..0000000 --- a/service/src/services/DBConnection/db1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "mongo": { - "dbinstance": [] - }, - "rethink": { - "dbinstance": [] - }, - "elastic": { - "dbinstance": [] - }, - "nedb": { - "dbinstance": [] - } -} \ No newline at end of file diff --git a/service/src/services/DBConnection/elasticapi.js b/service/src/services/DBConnection/elasticapi.js deleted file mode 100644 index 0b9ca7f..0000000 --- a/service/src/services/DBConnection/elasticapi.js +++ /dev/null @@ -1,725 +0,0 @@ -var elasticsearch = require('elasticsearch'); -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var _ = require('lodash') - // var databasename = 'schema_builder'; -var client = []; -var dclient = []; -// var client = new elasticsearch.Client( { -// host: db1.elastic.host+':'+db1.elastic.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// var db = ((db1.elastic.dbname == '') ? databasename : db1.elastic.dbname); -// client.indices.create({ -// index: db -// }) -// db1.elastic.dbinstance.forEach(function (instance, inx) { -// if (instance.isenable) { -// var connection = new elasticsearch.Client({ -// host: instance.host + ':' + instance.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// // var db = ((instance.dbname == '') ? databasename : instance.dbname); -// var db = instance.dbname; -// connection.indices.create({ -// index: db -// }, function (err, resp) { -// if(resp) { -// //console.log(JSON.stringify(resp, null, '\t'), resp.status); -// } -// }) -// client.push({ id: instance.id, conn: connection, dbname: db }) -// } -// if (instance.isdefault) { -// var connection = new elasticsearch.Client({ -// host: instance.host + ':' + instance.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// // var db = ((instance.dbname == '') ? databasename : instance.dbname); -// var db = instance.dbname; -// connection.indices.create({ -// index: db -// }, function (err, resp) { -// if(resp) { -// //console.log(JSON.stringify(resp, null, '\t'), resp.status); -// } -// }) -// dclient.push({ id: instance.id, conn: connection, dbname: db }) -// } -// }) - - // console.log('client',client) - // var check = client.indices.exists({ - // index: db - // }) - // if(check){ - // console.log('!!!!!'); - // client.indices.create({ - // index: db - // }); - // }else{ - // client.indices.create({ - // index: db - // }); - // } - var getConnection = async (function(data) { - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port - }); - return connection - }) - - var trygetConnection = async (function(data) { - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port + '/' + data.dbname - }).ping({ - requestTimeout: 1000 - }); - return connection - }) - -module.exports = { - generateInstanceTable: async(function (ins_id, title){ - console.log('Elastic generate instance collection..........', ins_id, title); - // for(let [i, db_i] of client.entries()) { - // if(db_i.id == ins_id) { - // console.log(client[i].conn) - // var res = await (client[i].conn.tableCreate(title)) - // // console.log('res......generateInstanceTable........', res) - // return res - // } - // } - return 'success' - }), - - choose: function () { - console.log('=================== ELASTIC_DB ================='); - }, - - //************************ get methods ******************************** - - getflowsInstance: async(function (typeName, inst_id) { - console.log('elastic get flowsInstance'); - var flowsInstance = async(function () { - var result1 = []; - for (let [i, inst] of client.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.search({ - index: client[i].dbname, - type: typeName, - body: { - query: { - match_all: {} - }, - } - })) - // console.log('rethink r', res.hits.hits) - res.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - result1.push(item); - }) - // return res - } - } - return result1 - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // // var r = await (db[i].conn.collection('schema').find().toArray()) - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: 'instance', - // body: { - // query: { - // match_all: {} - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // return result1; - }); - var res = await (flowsInstance()) - return res; - }), - - getThisflowsInstance: async(function (id, typeName, conndata) { - console.log('elastic get flowsInstanceCurrent'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.search({ - index: conndata.dbname, - type: typeName, - body: { - query: { - match: { - '_id': id - } - }, - } - }).then(res => { - conn.close() - return _.map(res, (d) => { - let item = d._source - item._id = d._id - return item - }) - }).catch(err => { - return {iserror: true, msg: err} - })) - return result - } - // var flowsInstance = async(function () { - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // if ( client[i].id == inst_id ) { - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: typeName, - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // } - // return result1; - // }); - // var res = await (flowsInstance()) - // // console.log('elastic r...', res) - // return res[0]; - }), - - //************************* post methods **************************** - - postflowsInstance: async(function (data, conndata, typeName) { - console.log('........................elastic post flowsInstance....................'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.index({ - index: conndata.dbname, - type: typeName, - body: data - }).then(res => { - conn.close() - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - return result._id - } - // // data.Schemaid = data._id - // // delete data._id - // // delete data.id - // // var selectedDB = _.find(client, (d) => { - // // return d.id == dbid - // // }) - // var selectedDB; - // for(let i = 0; i < client.length; i++ ){ - // // console.log('connid', db[i].id) - // if(client[i].id == dbid) { - // selectedDB = client[i] - // } - // } - // var result = await ( - // selectedDB.conn.index({ - // index: selectedDB.dbname, - // type: typeName, - // body: data - // })) - // return result._id; - }), - - //*************************** put methods ***************************** - - putflowsInstance: async(function (id, data, tableName, inst_id) { - var instanceid = id; - delete data._id - // console.log('DATA:',data); - // var schemaid = id; - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var result = await ( - selectedDB.conn.index({ - index: selectedDB.dbname, - type: tableName, - id: instanceid, - body: data - })) - return result; - // var schemadata = await (client.index({ - // index: db, - // type: 'instance', - // id: instanceid, - // body: data - // })) - // return schemadata; - }), - - //****************************** delete methods ************************* - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('elastic delete this flowsInstance'); - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var instanceid = id; - var result = await ( - selectedDB.conn.delete({ - index: selectedDB.dbname, - type: tableName, - id: instanceid - })) - // console.log('result',result); - return result; - }), - - - //*****************************get custom methods************************ - getSchemaName: async(function (name) { - console.log('elastic get SchemaName'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - "query": { - "bool": { - "must": { - "query_string": { - "fields": ["title"], - "query": name - } - }, - } - }}} - )) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // 'title': name - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // return data; - }), - getThisSchemaType: async(function (id, type) { - console.log('elastic get SchemaCurrent Type'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - hit._source.entity.forEach(function (item, i) { - if (item.type === type) { - data.push(item); - } - }); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // hit._source.entity.forEach(function (item, i) { - // if (item.type === type) { - // data.push(item); - // } - // }); - // }) - // return data; - }), - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('elastic get SchemaCurrent fieldname'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - hit._source.entity.forEach(function (item, i) { - if (item.name === fieldname) { - data.push(item); - } - }); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // hit._source.entity.forEach(function (item, i) { - // if (item.name === fieldname) { - // data.push(item); - // } - // }); - // }) - // return data; - }), - getSchemaByDbid: async(function(dbid) { - console.log('elastic get Schema By dbid...........................'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - if (client[i].id == dbid) { - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match_all: {} - }, - } - })) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // if (dbinstance.id == dbid) { - // var data = await (dbinstance.conn.table('schema').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // } - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - }), - getSchema: async(function () { - console.log('elastic get Schema'); - // var schemadata = async(function () { - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // // var r = await (db[i].conn.collection('schema').find().toArray()) - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: 'schema', - // body: { - // query: { - // match_all: {} - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // return result1; - // }); - // var res = await (schemadata()) - // return res; - - var data = []; - var result = await( - dclient[0].conn.search({ - index: dclient[0].dbname, - type: 'schema', - body: { - query: { - match_all: { } - }, - } - })) - result.hits.hits.forEach(function(hit){ - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - return data; - }), - getThisSchema: async(function (id) { - console.log('elastic get SchemaCurrent'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < dclient.length; i++) { - var data = []; - var result = await ( - dclient[i].conn.search({ - index: dclient[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - console.log(dclient[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - }), - postSchema: async(function (data) { - console.log('elastic post Schema', JSON.stringify(data)); - // var selectedDB = _.find(client, (d) => { - // return d.id == data.database[1] - // }) - // var result = await ( - // selectedDB.conn.index({ - // index: selectedDB.dbname, - // type: 'schema', - // body: data - // })) - // return result; - - var result = await( - dclient[0].conn.index({ - index: dclient[0].dbname, - type: 'schema', - body: data - })) - return result._id; - }), - putSchema: async(function (data, id) { - console.log('elastic put schema') - delete data._id - var schemaid = id; - // var selectedDB = _.find(client, (d) => { - // return d.id == data.database[1] - // }) - var result = await ( - dclient[0].conn.index({ - index: dclient[0].dbname, - type: 'schema', - id: schemaid, - body: data - })) - return result; - // var schemadata = await ( - // client.index({ - // index: db, - // type: 'schema', - // id: schemaid, - // body: data - // })) - - // return schemadata; - }), - deleteThisSchema: function (id, type) { - console.log('elastic delete this schema'); - var schemaid = id; - let _promise = new Promise((resolve, reject) => { - if(type == 'softdel') { - for (var i = 0; i < dclient.length; i++) { - // console.log(client[i].id, client[i].dbname) - dclient[i].conn.update({ - index: dclient[i].dbname, - type: 'schema', - id: schemaid, - body: { - doc: { - isdeleted: true - } - } - }, function(err, res){ - // console.log(res) - if(res.status == 404){ - // console.log('if...') - if(i == dclient.length){ - var abc = [] - resolve(abc) - // console.log('Inside..') - } - } - else{ - // console.log('else',res) - resolve(res) - } - }) - } - } - }) - var _data = Promise.resolve(_promise).then(function(resp){ - // console.log('................',resp) - if(resp.length == 0){ - // console.log('elastic..') - return [] - } - else { - // console.log('elastic ', resp._shards) - return resp._shards; - } - }) - return _data - } -} diff --git a/service/src/services/DBConnection/mongoapi.js b/service/src/services/DBConnection/mongoapi.js deleted file mode 100644 index 264b83e..0000000 --- a/service/src/services/DBConnection/mongoapi.js +++ /dev/null @@ -1,465 +0,0 @@ -var mongoose = require('mongoose'); -var MongoClient = require('mongodb').MongoClient; -let _ = require('lodash'); -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var db = []; -var defaultDb = [] - -// db1.mongo.dbinstance.forEach(function (instance, inx) { -// if (instance.isenable) { -// // console.log('instance', instance) -// var pass = endecrypt.decrypt(instance.password) -// // console.log(pass) -// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; -// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); -// console.log('database::::', mongoDB); -// var connection = mongoose.createConnection(mongoDB); -// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - -// db.push({ id: instance.id, conn: connection }) -// } -// if (instance.isdefault) { -// // console.log('instance', instance) -// var pass = endecrypt.decrypt(instance.password) -// // console.log(pass) -// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; -// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); -// console.log('database::::', mongoDB); -// var connection = mongoose.createConnection(mongoDB); -// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - -// defaultDb.push({ id: instance.id, conn: connection }) -// } -// }) - -// db1.mongo.username+':'+db1.mongo.password+'@'+ -// var mongoDB = 'mongodb://'+db1.mongo.host+':'+db1.mongo.port+'/'+((db1.mongo.dbname == '') ? databasename : db1.mongo.dbname); -// var mongoDB = 'mongodb://localhost:27017,172.16.230.87:27017,172.16.160.117:27017/schema_builder?replicaSet=rs0&ssl=true&poolSize=10&authSource=admin&'; - -// console.log('database::::',mongoDB); - -// console.log('-----',mongoose.connection.readyState); -// if(mongoose.connection.readyState >0){ -// mongoose.disconnect(); -// } -// mongoose.connect(mongoDB); -// db = mongoose.connection; - -// mongoose.connect(mongoDB); -// db = mongoose.createConnection(mongoDB); -// console.log("---------db----------",db); -// console.log('-----after---',mongoose.connection.readyState); -// db.on('error', console.error.bind(console, 'MongoDB connection error:')); -// console.log('Success!!!!!!!!!!!!! Mongo'); - -let getConnection = async (function(data) { - // console.log(data) - let uri = 'mongodb://' + ((data.username != '' ? data.username + ':' + data.password + '@' : '')) + data.host + ':' + data.port + '/' + data.dbname; - // console.log(uri) - let _data = await (MongoClient.connect(uri).then(res=> { - return res - }).catch(err=> { - let obj = {iserror: true, msg: err} - return obj - })) - return _data -}) - -module.exports = { - generateInstanceTable: async(function (ins_id, title){ - console.log('Mongo generate instance collection..........', ins_id, title); - // for(let [i, db_i] of db.entries()) { - // if(db_i.id == ins_id) { - // console.log(db[i].conn) - // var res = await (db[i].conn.createCollection(title)) - // console.log('res......generateInstanceTable........', res) - // return res - // } - // } - return 'success' - }), - - choose: async(function () { - console.log('=================== MONGODB ================='); - }), - - //get methods - - - getflowsInstance: async(function (collName, inst_id) { - console.log('mongo get flowsInstance'); - // var flowsInstance = async(function (collName, inst_id) { - for (let [i, inst] of db.entries()) { - if ( inst.id == inst_id ) { - var r = await (inst.conn.collection(collName).find().toArray()) - // console.log('mongo r', r) - return r - } - } - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find().toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance(collName, inst_id)) - // return res; - // var flowsInstance = await (db.collection('flows-instance').find().toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance; - }), - - getThisflowsInstance: async(function (id, collName, conndata) { - console.log('mongo get flowsInstanceCurrent'); - var id = new mongoose.Types.ObjectId(id); - // for (let [i, inst] of db.entries()) { - // if ( inst.id == inst_id ) { - // var r = await (inst.conn.collection(collName).find({_id: id}).toArray()) - // // console.log('mongo r', r) - // return r[0] - // // for(let [inx, obj] of r.entries()) { - // // if (obj._id == id) { - // // return obj - // // } - // // } - // } - // } - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var schema = await (conn.collection(collName).find({_id: id}).toArray()); - // console.log('Generated Id:', schema.ops[0]._id) - conn.close() - return schema[0]; - } - // if (id.length != 24) { - // return []; - // } else { - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find({ _id: id }).toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // } - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = await (db.collection('flows-instance').find({ _id: id }).toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance[0]; - }), - - //post methods - - postflowsInstance: async(function (data, conndata, collName) { - console.log('...................mongo post flowsInstance...................'); - // data.Schemaid = data._id - // delete data._id - // delete data.id - // console.log('guid', data.database[1]) - // console.log('dbid', dbid) - // var selectedDB = _.find(db, async(function(d){ - // return d.id == dbid - // })) - // var selectedDB; - // for(let i = 0; i < db.length; i++ ){ - // // console.log('connid', db[i].id) - // if(db[i].id == dbid) { - // selectedDB = db[i] - // } - // } - // console.log('selectedDB', selectedDB) - var conn = await( getConnection(conndata).then(res => { - // console.log('conndata', conndata) - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var schema = await (conn.collection(collName).insert(data)); - // console.log('Generated Id:', schema.ops[0]._id) - conn.close() - return schema.ops[0]._id; - } - // var flowsInstance = await (db.collection('flows-instance').insert(data)); - // // var flowsInstance = await (db.collection('flows-instance').insert(data, function(err, result) { - // // if (err) { - // // console.log('Error!! from mongo post flowsInstance'); - // // return {success: false} - // // } else { - // // console.log('Success!! from mongo post flowsInstance'); - // // return {success: true} - // // } - // // })); - // return flowsInstance.ops; - }), - - //put methods - - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('mongo put flowsInstance'); - delete data._id - delete data.id - var id = new mongoose.Types.ObjectId(id); - // console.log('id from putflowsInstance:',id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).updateOne({ _id: id }, { $set: data })); - return flowsInstance.result; - }), - - //delete methods - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('mongo delete this flowsInstance'); - var id = new mongoose.Types.ObjectId(id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).deleteOne({ _id: id })); - return flowsInstance; - }), - - - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// - getSchemaName: async(function (name) { - console.log('mongo get SchemaName.............................'); - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ title: name }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - // var schemadata = await (db.collection('schema').find({ title: name }).toArray()); - // // console.log('SchemaName',schemadata); - // return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('mongo get SchemaCurrent Type', type); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // // console.log('mongo get SchemaCurrent id:',id); {$and: [{_id: id}, {type: type}]} - // var schemadata = await (db.collection('schema').find({ _id: id }, { _id: 0, title: 0, templateType: 0, template: 0 }).toArray()); - // // console.log('SchemaCurrent',schemadata[0].entity); - // var result = []; - // schemadata[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.type === type) { - // result.push(item); - // } - // }); - // return result; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - // console.log('rrrrrrrrrrrrrrrrrrrrrrrrrr', r) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('item---',res); - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - return result; - // return res; - } - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('mongo get SchemaCurrent fieldname'); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // // console.log('mongo get SchemaCurrent id:',id); {$and: [{_id: id}, {type: type}]} - // var schemadata = await (db.collection('schema').find({ _id: id }, { _id: 0, title: 0, templateType: 0, template: 0 }).toArray()); - // // console.log('SchemaCurrent',schemadata[0].entity); - // var result = []; - // schemadata[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.name === fieldname) { - // result.push(item); - // } - // }); - // return result; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - // console.log('rrrrrrrrrrrrrrrrrrrrrrrrrr', dbinstance) - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('schemadata getSchema',res); - var result = []; - res[0].entity.forEach(function (item, i) { - // console.log('item---',item); - if (item.name === fieldname) { - result.push(item); - } - }); - return result; - // return res; - } - }), - - getSchemaByDbid: async(function(dbid) { - console.log('mongo get Schema By dbid...........................'); - // console.log('dbid......................', dbid) - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - // console.log('..................', dbinstance) - if (dbinstance.id == dbid) { - var r = await (dbinstance.conn.collection('schema').find().toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - } - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - }), - - getSchema: async(function () { - console.log('mongo get Schema'); - // var schemadata = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('schema').find().toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - var res = await (defaultDb[0].conn.collection('schema').find().toArray()) - // console.log('schemadata getSchema',res); - return res; - }), - - getThisSchema: async(function (id) { - console.log('mongo get SchemaCurrent'); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // console.log('mongo get SchemaCurrent id2:',typeof id); - // var schemadata = await (db.collection('schema').find({ _id: id }).toArray()); - // // console.log('SchemaCurrent',schemadata); - // return schemadata[0]; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - } - }), - postSchema: async(function (data) { - console.log('mongo post Schemax'); - // console.log('guid', data.database[1]) - // var selectedDB = _.find(db, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (defaultDb[0].conn.collection('schema').insert(data)); - // console.log(schema) - return schema.ops[0]._id; - }), - putSchema: async(function (data, id) { - console.log('mongo put Schema'); - // delete data._id - // console.log('guid', data.database[1]) - var id = new mongoose.Types.ObjectId(id); - // var selectedDB = _.find(db, (d) => { - // return d.id == data.database[1] - // }) - var schema = await (defaultDb[0].conn.collection('schema').updateOne({ _id: id }, { $set: data })); - return schema; - }), - deleteThisSchema: async(function (id, type) { - console.log('mongo delete schema'); - if (id.length != 24) { - // console.log('mongo DeleteSchema _blank'); - return []; - } - else { - // console.log('111111') - var id = new mongoose.Types.ObjectId(id); - if(type == 'softdel') { - // console.log('2222') - // var schemadata = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('schema').updateOne({ _id: id }, {$set: {isdeleted: true}})) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // // console.log('mongo DeleteSchema',res[0]); - // return res[0]; - var schema = await (defaultDb[0].conn.collection('schema').updateOne({ _id: id }, {$set: {isdeleted: true}})); - return schema; - } - } - // // var schema = await (db.collection('schema').deleteOne({ _id: id })); - }) -} diff --git a/service/src/services/DBConnection/nedbapi.js b/service/src/services/DBConnection/nedbapi.js deleted file mode 100644 index 199fad4..0000000 --- a/service/src/services/DBConnection/nedbapi.js +++ /dev/null @@ -1,135 +0,0 @@ -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var databasename = 'schema_builder'; - -var Datastore = require('nedb-promise'); -var fname = (db1.nedb.dbname == '') ? databasename + '.db' : db1.nedb.dbname + '.db'; -// console.log(fname); -var db = new Datastore({ filename: fname, autoload: true }); -// db = {}; - -db.schema = new Datastore({ filename: 'schema.db', autoload: true }); -db.instance = new Datastore({ filename: 'instance.db', autoload: true }); - -module.exports = { - choose: async(function () { - console.log('===================NEDB================='); - }), - - //get methods - getSchemaName: async(function (name) { - console.log('NeDB get SchemaName'); - var schemadata = await (db.schema.cfind({ title: name }).exec()); - // console.log('SchemaName',schemadata); - return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('NeDB get SchemaCurrent Type', type); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - var result = []; - schemadata.entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - return result; - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('NeDB get SchemaCurrent fieldname'); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - var result = []; - schemadata.entity.forEach(function (item, i) { - if (item.name === fieldname) { - result.push(item); - } - }); - return result; - }), - - getSchema: async(function () { - console.log('NeDB get Schema'); - var schemadata = await (db.schema.cfind({}).exec()) - // console.log('schemadata',schemadata) - return schemadata; - }), - getThisSchema: async(function (id) { - console.log('NeDB get SchemaCurrent'); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - // console.log('SchemaCurrent',schemadata); - // return schemadata; - if(schemadata == null) { - return []; - } - else { - var arr=[] - arr.push(schemadata) - } - }), - getflowsInstance: async(function () { - console.log('NeDB get flowsInstance'); - var flowsInstance = await (db.instance.cfind({}).exec()); - // console.log('flowsInstance',flowsInstance); - return flowsInstance; - }), - getThisflowsInstance: async(function (id) { - console.log('NeDB get flowsInstanceCurrent'); - var flowsInstance = await (db.instance.cfindOne({ _id: id }).exec()); - // console.log('flowsInstance',flowsInstance); - return flowsInstance; - }), - - //post methods - postSchema: async(function (data) { - console.log('NeDB post Schema'); - var schemadata = await (db.schema.insert(data)); - console.log('schemadata', schemadata); - return schemadata; - }), - postflowsInstance: async(function (data) { - console.log('NeDB post flowsInstance'); - var flowsInstance = await (db.instance.insert(data)); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }), - - //put methods - putSchema: async(function (data, id) { - delete data._id - console.log('NeDB put Schema'); - var schemadata = await (db.schema.update({ _id: id }, { $set: data })); - console.log('schemadata', schemadata); - return schemadata; - }), - putflowsInstance: async(function (data, id) { - console.log('NeDB put flowsInstance'); - var flowsInstance = await (db.instance.update({ _id: id }, { $set: data })); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }), - - //delete methods - // deleteSchema: async(function() { - // var schemadata = await (db.schema.remove({}, { multi: true })); - // return schemadata; - // }), - deleteThisSchema: async(function (id, type) { - console.log('NeDB delete schema', type); - if(type == 'softdel'){ - var schemadata = await (db.schema.update({ _id: id }, { $set: {isdeleted: true}})); - // console.log('nedb ',schemadata) - return schemadata; - } - // var schemadata = await (db.schema.remove({ _id: id })); - // console.log('schemadata', schemadata); - }), - deleteThisflowsInstance: async(function (id) { - console.log('NeDB delete flowsInstance'); - var flowsInstance = await (db.instance.remove({ _id: id })); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }) - -} diff --git a/service/src/services/DBConnection/rethinkapi.js b/service/src/services/DBConnection/rethinkapi.js deleted file mode 100644 index b3def22..0000000 --- a/service/src/services/DBConnection/rethinkapi.js +++ /dev/null @@ -1,530 +0,0 @@ -var db = require('./db'); -let _ = require('lodash'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var fs = require('fs') -var r = [] -var dr = [] - -// db.rethink.dbinstance.forEach(function (instance, inx) { -// var connection; -// if (instance.isenable) { -// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { -// connection = require('rethinkdbdash')({ -// port: instance.port, -// host: instance.host, -// db: instance.dbname, -// authKey: instance.authKey, -// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null -// }); -// } else { -// connection = require('rethinkdbdash')({ -// username: instance.username, -// password: endecrypt.decrypt(instance.password), -// port: instance.port, -// host: instance.host, -// db: instance.dbname -// }); -// } - -// var yes = connection.dbList().contains(instance.dbname) // create db if not exists -// .do(function (dbExists) { -// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); -// }).run(); -// }); -// }); -// r.push({ id: instance.id, conn: connection ,dbname: instance.dbname}) -// } -// if (instance.isdefault) { - -// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { -// connection = require('rethinkdbdash')({ -// port: instance.port, -// host: instance.host, -// db: instance.dbname, -// authKey: instance.authKey, -// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null -// }); -// } else { -// connection = require('rethinkdbdash')({ -// username: instance.username, -// password: endecrypt.decrypt(instance.password), -// port: instance.port, -// host: instance.host, -// db: instance.dbname -// }); -// } - -// var yes = connection.dbList().contains(instance.dbname) // create db if not exists -// .do(function (dbExists) { -// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); -// }).run(); -// }); -// }); -// dr.push({ id: instance.id, conn: connection }) -// } -// }) - -let getConnection = async (function(data) { - let connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - return connection -}) - -let trygetConnection = async (function(data) { - let connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - return connection -}) - -module.exports = { - generateInstanceTable: async(function (data){ - // console.log('Rethink generate instance collection..........', ins_id, title); - var title = data.title - if(data.database[1] == undefined) { - data.database[1] = dr[0].id - } - var ins_id = data.database[1] - for(let [i, db_i] of r.entries()) { - if(db_i.id == ins_id) { - // console.log(r[i].conn) - var ii = await (r[i].conn.tableList().contains(title)) - // console.log('generateInstanceTable rethink ......... ', ii, title) - if(!ii) { - var res = await (r[i].conn.tableCreate(title)) - return 'created' - } else { - return 'exist' - } - // console.log('res......generateInstanceTable........', res) - // return res - } - } - }), - - choose: async(function () { - console.log('=================== RETHINKDB ================='); - }), - - // get methods - getflowsInstance: async(function (tableName, inst_id) { - console.log('rethink get flowsInstance'); - for (let [i, inst] of r.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.table(tableName).run()) - // console.log('rethink r', res) - return res - } - } - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('flowsinstance').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // // var flowsInstance = await (r.table('flowsinstance') - // // .run() - // // .then(function (response) { - // // // console.log('getflowsInstance:',response); - // // return response; - // // }) - // // .error(function (err) { - // // console.log('Error:', err); - // // })); - // // return flowsInstance; - }), - - getThisflowsInstance: async(function (id, tableName, conndata) { - console.log('rethink get flowsInstanceCurrent'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.table(tableName).filter({ 'id': id }).run()) - conn.getPoolMaster().drain() - return result[0]; - } - // for (let [i, inst] of r.entries()) { - // if ( inst.id == inst_id ) { - // var res = await (inst.conn.table(tableName).filter({ 'id': id }).run()) - // // for(let [inx, obj] of res.entries()) { - // // if (obj._id == id) { - // // return obj - // // } - // // } - // // console.log('rethink r', res) - // return res[0] - // } - // } - // // var flowsInstance = async(function () { - // // var result = [] - // // _.forEach(r, function (dbinstance) { - // // var data = await (dbinstance.conn.table('flowsinstance').filter({ 'id': id }).run()) - // // _.forEach(data, function (instance) { - // // result.push(instance) - // // }) - // // }) - // // return result; - // // }); - // // var res = await (flowsInstance()) - // // return res; - // // var flowsInstance = await (r.table('flowsinstance').filter({ 'id': id }).run()); - // // // console.log('flowsInstance',flowsInstance); - // // return flowsInstance[0]; - }), - - // post methods - - postflowsInstance: async(function (data, conndata, tableName) { - console.log('....................rethink post flowsInstance........................'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(selectedDB.conn.table(tableName).insert(data).run()) - conn.getPoolMaster().drain() - return result.generated_keys[0]; - } - // console.log('guid', dbid) - // // var selectedDB = _.find(r, (d) => { - // // return d.id == dbid - // // }) - // var selectedDB; - // for(let i = 0; i < r.length; i++ ){ - // // console.log('connid', db[i].id) - // if(r[i].id == dbid) { - // selectedDB = r[i] - // } - // } - // // var _data = JSON.parse(data); - // // console.log('data:',_data); - // var flowsInstance = await (selectedDB.conn.table(tableName).insert(data).run()); - // // console.log('########## from postSchema',flowsInstance); - - // var _id = flowsInstance.generated_keys[0]; - // selectedDB.conn.table(tableName).get(_id).update({ '_id': _id }).run(); - // return flowsInstance.generated_keys[0]; - }), - - // put methods - - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('rethink put flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).get(id).replace(data).run()); - return flowsinstance; - }), - - // *******************delete methods******************** - - // deleteSchema: async(function () { - // console.log('rethink delete allSchema'); - // var schema = await (r.table('schema').delete().run()); - // return schema; - // }), - - // deleteflowsInstance: async(function () { - // console.log('rethink delete allSchema'); - // var flowsinstance = await (r.table('flowsinstance').delete().run()); - // return flowsinstance; - // }), - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('rethink delete this flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).filter({ 'id': id }).delete().run()); - return flowsinstance; - }), - - getSchemaName: async(function (name) { - console.log('rethink get SchemaName'); - var schemadata = await (r.table('schema').filter({ 'title': name }) - .run() - .then(function (response) { - // console.log('response',response); - return response; - }) - .error(function (err) { - console.log('Error:', err); - })) - return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('rethink get Schema Type'); - // var schemadata = await (r.table('schema').filter({ 'id': id }) - // .run() - // .then(function (response) { - // // console.log('response',response); - // var result = []; - // response[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.type === type) { - // result.push(item); - // } - // }); - // return result; - // }) - // .error(function (err) { - // console.log('Error:', err); - // })) - // return schemadata; - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('res..................', res) - // return res; - if(res.length != 0) { - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - console.log('item---',result); - return result; - } else { - var result = []; - return result - } - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('rethink get Schema Type'); - // var schemadata = await (r.table('schema').filter({ 'id': id }) - // .run() - // .then(function (response) { - // // console.log('response',response); - // var result = []; - // response[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.name === fieldname) { - // result.push(item); - // } - // }); - // return result; - // }) - // .error(function (err) { - // console.log('Error:', err); - // })) - // return schemadata; - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // return res; - if(res.length != 0) { - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.name === fieldname) { - result.push(item); - } - }); - console.log('item---',result); - return result; - } else { - var result = []; - return result - } - }), - - getSchemaByDbid: async(function(dbid) { - console.log('rethink get Schema By dbid...........................'); - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - if (dbinstance.id == dbid) { - var data = await (dbinstance.conn.table('schema').run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - } - }) - return result; - }); - var res = await (schemadata()) - return res; - }), - - getSchema: async(function () { - console.log('rethink get Schema...........................'); - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - var schemadata = await (dr[0].conn.table('schema').run()) - // var schemadata = await (r.table('schema').run()) - // .then(function(response){ - // // console.log('response getSchema::',response); - // return response; - // }) - // .error(function(err){ - // console.log('Error:',err); - // })) - return schemadata; - - // var schemadata = await (r.table('schema') - // .run() - // .then(function(response){ - // // console.log('response getSchema::',response); - // return response; - // }) - // .error(function(err){ - // console.log('Error:',err); - // })) - // return schemadata; - }), - - getThisSchema: async(function (id) { - console.log('rethink get SchemaCurrent'); - var schemadata = await (dr[0].conn.table('schema').filter({'id': id}).run()) - // console.log('SchemaCurrent',id, schemadata); - return schemadata[0]; - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - }), - - postSchema: async(function (data) { - console.log('rethink post Schema'); - console.log('guid', data.database[1]) - if(data.database[1] == undefined) { - data.database[1] = dr[0].id - } - // var selectedDB = _.find(r, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (dr[0].conn.table("schema").insert(data).run()); - - var _id = schema.generated_keys[0]; - var a = await (dr[0].conn.table("schema").get(_id).update({ '_id': _id }).run()); - return _id; - - - // var schema = await (r.table("schema").insert(data).run()); - // console.log('########## from postSchema',schema); - - // var _id = schema.generated_keys[0]; - // r.table("schema").get(_id).update({'_id': _id}).run(); - // return schema; - }), - - putSchema: async(function (data, id) { - console.log('rethink put Schema'); - // var selectedDB = _.find(r, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (dr[0].conn.table("schema").get(id).replace(data).run()); - return schema; - // var schema = await (r.table('schema').get(id).replace(data).run()); - // return schema;dr[0] - }), - - - deleteThisSchema: async(function (id, type) { - console.log('rethink delete schema'); - if(type == 'softdel') { - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').get(id).update({isdeleted: true}).run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // // console.log('rethink delete res::', res); - // return res; - var schema = await (dr[0].conn.table('schema').get(id).update({isdeleted: true}).run()); - return schema; - } - // // var schema = await (r.table('schema').filter({ 'id': id }).delete().run()); - }), -} diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.filters.js b/service/src/services/addInputToJobQue/addInputToJobQue.filters.js deleted file mode 100644 index ba2e354..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the addInputToJobQue service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js b/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js deleted file mode 100644 index 34bb7e4..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js +++ /dev/null @@ -1,56 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -const app = require('config'); -const config = require('../config') - // const rdash = require('rethinkdbdash')(config) -const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function beforeCreate(hook) { - // Create Job Que Scheduler Entry - const Queue = require('rethinkdb-job-queue') - const cxnOptions = config.rethinkdb - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data = hook.data - // console.log('jobOptions.data--Hook', jobOptions.data) - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - const job = q.createJob(jobOptions) - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) - hook.result = { "data": hook.data, code: 200 } -} \ No newline at end of file diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.service.js b/service/src/services/addInputToJobQue/addInputToJobQue.service.js deleted file mode 100644 index 6e7804a..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./addInputToJobQue.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'addInputToJobQue', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/addInputToJobQue', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('addInputToJobQue'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/approval/approval.filters.js b/service/src/services/approval/approval.filters.js deleted file mode 100644 index 84e2c0b..0000000 --- a/service/src/services/approval/approval.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the approval service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/approval/approval.hooks.js b/service/src/services/approval/approval.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/approval/approval.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/approval/approval.service.js b/service/src/services/approval/approval.service.js deleted file mode 100644 index b33a09e..0000000 --- a/service/src/services/approval/approval.service.js +++ /dev/null @@ -1,23 +0,0 @@ -// Initializes the `approval` service on path `/approval` -const createService = require('feathers-rethinkdb'); -const hooks = require('./approval.hooks'); - -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - - const options = { - name: 'approval', - Model, - paginate - }; - - // Initialize our service with any options it requires - app.use('/approval', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('approval'); - - service.hooks(hooks); -}; diff --git a/service/src/services/databases/databases.filters.js b/service/src/services/databases/databases.filters.js deleted file mode 100644 index 04a6812..0000000 --- a/service/src/services/databases/databases.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the databases service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/databases/databases.hooks.js b/service/src/services/databases/databases.hooks.js deleted file mode 100644 index 9507a9b..0000000 --- a/service/src/services/databases/databases.hooks.js +++ /dev/null @@ -1,137 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -const errors = require('@feathersjs/errors'); -let config = require('config'); -var axios = require('axios'); -var _ = require('lodash'); - -module.exports = { - before: { - all: [], - find: [ - hook => beforeFind(hook) - ], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [ - hook => beforePatch(hook) - ], - remove: [] - }, - - after: { - all: [ - hook => afterFind(hook) - ], - find: [], - get: [ - hook => afterGet(hook) - ], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -let beforeCreate = async( function(hook) { - // console.log('Hook.data', hook.data) - hook.params.query.selectedDb = hook.data.selectedDb; - hook.params.query.dbname = hook.data.dbname; - hook.params.query.username = hook.data.username; - hook.data.createdAt = new Date(); - if (hook.data.password !== '') { - hook.params.query.password = endecrypt.encrypt(hook.data.password); - } else { - hook.params.query.password = hook.data.password; - } - const query = Object.assign({}, hook.params.query); - return hook.app.service('databases').find({ query }).then(response => { - if (response.data.length > 0) { - throw new errors.BadRequest('Connection exist', { - errors: { message: 'connection already exist with connection name as ' + response.data[0].connection_name } - }); - } else { - if (hook.data.isdefault) { - hook.app.service('databases').find({ - query: { - $paginate: 'false', - $select: [ 'id' ] - } - }).then(res => { - for (let item of res) { - hook.app.service('databases').patch(item.id, {isdefault: false}) - } - }) - } - hook.data.password = endecrypt.encrypt(hook.data.password); - } - return hook; - }); -}) - -let beforeFind = function(hook) { - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -} - -let beforePatch = async(function(hook) { - // hook.params.query.$paginate = false; - // const query = Object.assign({}, hook.params.query); - // return hook.app.service('databases').find({ query }).then(response => { - // console.log('response.data', response.data) - // for (let mschema of response.data) { - // if (mschema.id !== hook.id) { - - // } - // } - // return hook; - // }); - if (hook.data.hasOwnProperty('isdefault') && hook.data.isdefault) { - hook.app.service('databases').find({ - query: { - $paginate: 'false', - $select: [ 'id' ] - } - }).then(res => { - if (res !== undefined && res.length > 0) { - for (let item of res) { - if (hook.id !== item.id) { - hook.app.service('databases').patch(item.id, {isdefault: false}) - } - } - } - }) - } -}) - -let afterGet = function(hook) { - if(hook.id) { - hook.result.password = endecrypt.decrypt(hook.result.password); - } -} - -let afterFind = function(hook) { - //console.log('afterFind') - // if(hook.id === undefined) { - // hook.result.data = _.map(hook.result.data, (d) => { - // return _.omit(d, ['username', 'password']) - // }) - // } -} \ No newline at end of file diff --git a/service/src/services/databases/databases.service.js b/service/src/services/databases/databases.service.js deleted file mode 100644 index fe822a7..0000000 --- a/service/src/services/databases/databases.service.js +++ /dev/null @@ -1,23 +0,0 @@ -// Initializes the `databases` service on path `/databases` -const createService = require('feathers-rethinkdb'); -const hooks = require('./databases.hooks'); - -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - - const options = { - name: 'databases', - Model, - paginate - }; - - // Initialize our service with any options it requires - app.use('/databases', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('databases'); - - service.hooks(hooks); -}; diff --git a/service/src/services/encryption/security.js b/service/src/services/encryption/security.js deleted file mode 100644 index 2b08db4..0000000 --- a/service/src/services/encryption/security.js +++ /dev/null @@ -1,19 +0,0 @@ -var crypto = require('crypto'), - algorithm = 'aes-256-ctr', - password = '@OfficeBe@con1_9$flows_serviceS'; - -module.exports = { - encrypt: function(text){ - var cipher = crypto.createCipher(algorithm,password) - var crypted = cipher.update(text,'utf8','hex') - crypted += cipher.final('hex'); - return crypted; - }, - - decrypt: function(text){ - var decipher = crypto.createDecipher(algorithm,password) - var dec = decipher.update(text,'hex','utf8') - dec += decipher.final('utf8'); - return dec; - } -} \ No newline at end of file diff --git a/service/src/services/flowz-instance/flowz-instance.filters.js b/service/src/services/flowz-instance/flowz-instance.filters.js deleted file mode 100644 index d47d6ec..0000000 --- a/service/src/services/flowz-instance/flowz-instance.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the flowz-instance service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/flowz-instance/flowz-instance.hooks.js b/service/src/services/flowz-instance/flowz-instance.hooks.js deleted file mode 100644 index 02bc7e6..0000000 --- a/service/src/services/flowz-instance/flowz-instance.hooks.js +++ /dev/null @@ -1,119 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -const app = require('config'); -const config = require('../config') -var serverUrl = 'http://' + app.host + ':' + app.port + '/' -const _ = require('lodash') -const axios = require('axios') -module.exports = { - before: { - all: [], - find: [ - hook => beforeFind(hook) - ], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [ - hook => aftercreateInstance(hook) - ], - update: [], - patch: [ - hook => updateProcesslogforMappingRequired(hook) - ], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -let beforeCreate = function (hook) { - hook.data.createdOn = new Date(); -}; - -let beforeFind = function (hook) { - if (hook.params.query && hook.params.query.$sort && hook.params.query.$sort.createdOn) { - hook.params.query.$sort.createdOn = parseInt(hook.params.query.$sort.createdOn); - } - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -}; - -var updateProcesslogforMappingRequired = async(function (hook) { - for (let [key, m] of hook.result.processList.entries()) { - m['log'] = _.chain(hook.result.process_log).filter(f => { - return f.job === m.id - }).sortBy(['lastModified'], ['desc']).reverse().groupBy('jobId').value() - await (handleMappingRequireStatus(m, hook.result.id)) - } -}) - -function getCurrentStatus(log) { - return (log.length > 0) ? _.head(log).status : '' -} - -function getLastLog(logs) { - return _.head(logs) -} -var handleMappingRequireStatus = async(function (data, fid) { - // handle mapping required - if (data.log && _.keys(data.log).length > 0) { - for (var [key, f] of _.values(data.log).entries()) { - // var f = data.log[inx] - // // var _allProcess = _.forEach(data.log, async(f => { - if (getCurrentStatus(f).toLowerCase() === 'mappingrequired') { - let _lastLog = getLastLog(f) - let dataObject = { - 'fId': fid, - 'input': _lastLog.input[0].inputs, - 'isExternalInput': true, - 'jobId': _lastLog.jobId, - 'job': _lastLog.job - } - let uri = serverUrl + 'addInputToJobQue' - await (axios.post(uri, dataObject)) - } - } - } -}) - -function aftercreateInstance(hook) { - let id = hook.data.id; - if (hook.data.id != undefined) { - const Queue = require('rethinkdb-job-queue') - //--------------- Connection Options ----------------- - const cxnOptions = config.rethinkdb - //--------------- Queue Options ----------------- - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data.fId = id - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - //--------------- Create new job ----------------- - const job = q.createJob(jobOptions) - //--------------- Add job ----------------- - q.addJob(job).then((savedJobs) => {}).catch(err => console.error('Hook Errors', err)) - } -} diff --git a/service/src/services/flowz-instance/flowz-instance.service.js b/service/src/services/flowz-instance/flowz-instance.service.js deleted file mode 100644 index e5c567b..0000000 --- a/service/src/services/flowz-instance/flowz-instance.service.js +++ /dev/null @@ -1,34 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./flowz-instance.hooks'); -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'flowzinstance', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/flowz-instance', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('flowz-instance'); - service.hooks(hooks); - service.hooks({ - before: { - find(context) { - if (context.params.query.$useremail) { - let useremail = context.params.query.$useremail; - delete context.params.query.$useremail; - const query = this.createQuery(context.params.query); - context.params.rethinkdb = query.filter((row) => { - return row('allowedusers').setIntersection( - [useremail] - ).count().ge(1); - }); - } - } - } - }); -}; diff --git a/service/src/services/index.js b/service/src/services/index.js index 8b3e2f6..5800cc3 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -1,47 +1,21 @@ const schema = require('./schema/schema.service.js'); -const instance = require('./instance/instance.service.js'); -const settings = require('./settings/settings.service.js'); -const approval = require('./approval/approval.service.js'); const emailtemplate = require('./emailtemplate/emailtemplate.service.js'); -const schemamapping = require('./schemamapping/schemamapping.service.js'); const flowz = require('./flowz/flowz.service.js'); -const flowzinstance = require('./flowz-instance/flowz-instance.service.js'); -const instancetest = require('./instance-test/instance-test.service.js'); -const scheduler = require('./scheduler/scheduler.service.js'); -const logs = require('./logs/logs.service.js'); -const addInputToJobQue = require('./addInputToJobQue/addInputToJobQue.service.js'); const bpmnplugins = require('./bpmnplugins/bpmnplugins.service.js'); -const usermaster = require('./usermaster/usermaster.service.js'); -const receiveform = require('./receive-form/receive-form.service.js'); -const databases = require('./databases/databases.service.js'); const finstance = require('./finstance/finstance.service.js'); const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); const dataquery = require('./dataquery/dataquery.service.js'); -const emailTemplates = require('./email-templates/email-templates.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); - app.configure(instance); - app.configure(settings); - app.configure(approval); app.configure(emailtemplate); - app.configure(schemamapping); app.configure(flowz); - app.configure(flowzinstance); - app.configure(instancetest); - app.configure(logs); - app.configure(addInputToJobQue); - //app.configure(scheduler); app.configure(bpmnplugins); - app.configure(usermaster); - app.configure(receiveform); - app.configure(databases); app.configure(finstance); app.configure(flowzdata); app.configure(sendmail); app.configure(emailReceive); app.configure(dataquery); - app.configure(emailTemplates); }; \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.filters.js b/service/src/services/instance-test/instance-test.filters.js deleted file mode 100644 index b32613b..0000000 --- a/service/src/services/instance-test/instance-test.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the instance-test service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.hooks.js b/service/src/services/instance-test/instance-test.hooks.js deleted file mode 100644 index 0c2d1f5..0000000 --- a/service/src/services/instance-test/instance-test.hooks.js +++ /dev/null @@ -1,137 +0,0 @@ -// let async = require('asyncawait/async'); -// let await = require('asyncawait/await'); -// const app = require('config'); -// const config = require('../config') -// const rdash = require('rethinkdbdash')(config) -// const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; -// var aftercreateInstance = async(function(hook) { -// //let id = hook.data.id; -// console.log('........................................................hook') -// //console.log('inserted id', hook.data.id) -// if (hook.data.id != undefined) { -// console.log('hook.data.id', hook.data) -// let inputData = hook.data.data -// // console.log('inputData', inputData) -// let instanceTable = app.get('instance_table') -// let instanceList = await (rdash.table(instanceTable).get(hook.data.instanceid).run()) -// let processlog = _.find(instanceList.process_log, { 'job': hook.data.processid }) -// let approvalClass = _.find(instanceList.processList, { 'id': hook.data.processid }).inputProperty[0].approvalClass -// if (approvalClass != undefined) { -// const Queue = require('rethinkdb-job-queue') -// //--------------- Connection Options ----------------- -// const cxnOptions = config -// //--------------- Queue Options ----------------- -// const qOptions = { -// name: app.get('approvar_table') -// } -// const q = new Queue(cxnOptions, qOptions) -// var jobOptions = {} -// jobOptions.data = {} -// // jobOptions.data.fId = id -// jobOptions.data = { -// "fId": hook.data.instanceid, -// "input": inputData, -// "isExternalInput": true, -// "jobId": hook.data.processid, -// } -// jobOptions.timeout = app.get('qJobTimeout') -// jobOptions.retryMax = app.get('qJobRetryMax') -// console.log('jobOptions', jobOptions) -// //--------------- Create new job ----------------- -// const job = q.createJob(jobOptions) -// //--------------- Add job ----------------- -// q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// } else { -// // if (_.isArray(inputData)) { -// // for (let arr in processlog.input) {} -// // } else { -// // var newObject = _.reduce(inputData, function(result, value, key) { -// // if (!_.has(processlog.input[0], key)) { -// // result[key] = value; -// // } -// // return result -// // }, {}); -// console.log('newObject', inputData) -// const Queue = require('rethinkdb-job-queue') -// //--------------- Connection Options ----------------- -// const cxnOptions = config -// //--------------- Queue Options ----------------- -// const qOptions = { -// name: app.get('scheduler_table') -// } -// const q = new Queue(cxnOptions, qOptions) -// var jobOptions = {} -// jobOptions.data = {} -// // jobOptions.data.fId = id -// jobOptions.data = { -// "fId": hook.data.instanceid, -// "input": inputData, -// "isExternalInput": true, -// "jobId": hook.data.processid, -// } -// jobOptions.timeout = app.get('qJobTimeout') -// jobOptions.retryMax = app.get('qJobRetryMax') -// console.log('jobOptions', jobOptions) -// //--------------- Create new job ----------------- -// const job = q.createJob(jobOptions) -// //--------------- Add job ----------------- -// q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// //} -// } -// } -// // if (hook.data.id != undefined) { -// // const Queue = require('rethinkdb-job-queue') -// // //--------------- Connection Options ----------------- -// // const cxnOptions = config -// // //--------------- Queue Options ----------------- -// // const qOptions = { -// // name: app.get('scheduler_table') -// // } -// // const q = new Queue(cxnOptions, qOptions) -// // var jobOptions = {} -// // jobOptions.data = {} -// // // jobOptions.data.fId = id -// // jobOptions.data = { -// // "fId": hook.data.instanceid, -// // "input": hook.data.data, -// // "isExternalInput": true, -// // "jobId": hook.data.processid, -// // } -// // jobOptions.timeout = app.get('qJobTimeout') -// // jobOptions.retryMax = app.get('qJobRetryMax') -// // console.log('jobOptions', jobOptions) -// // //--------------- Create new job ----------------- -// // const job = q.createJob(jobOptions) -// // //--------------- Add job ----------------- -// // q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// // } -// }) \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.service.js b/service/src/services/instance-test/instance-test.service.js deleted file mode 100644 index f7c5028..0000000 --- a/service/src/services/instance-test/instance-test.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./instance-test.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'instancetest', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/instance-test', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('instance-test'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/instance/instance.class.js b/service/src/services/instance/instance.class.js deleted file mode 100644 index 8142aae..0000000 --- a/service/src/services/instance/instance.class.js +++ /dev/null @@ -1,1015 +0,0 @@ -/* eslint-disable no-unused-vars */ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let config = require('config'); -var axios = require('axios'); -var fs = require('fs'); -var path = require('path'); -var _ = require('lodash'); -var chokidar = require('chokidar'); -var db = '../DBConnection/db.json'; -var file = require(db); -var dbapi = []; -let databasesUrl = 'http://' + config.get('host') + ':' + config.get('port') + '/databases' -let allapi = '../DBConnection/' - -// _.forEach(file, function (dbs, i) { -// var flag = false -// _.forEach(dbs.dbinstance, function (instance) { -// if (instance.isenable) { -// flag = true -// } -// }) -// if (flag) { -// var api = require('../DBConnection/' + i + 'api') -// dbapi.push({ db: i, api: api }); -// api.choose() -// } -// }) - -// let readfile = async(function () { -// fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { -// // console.log('reading file' + data) -// // console.log('reading file form instance' + data) -// if (err) return console.log(err); -// if (data == '') { -// console.log('BLANCK DATA'); -// return 'nodata'; -// } -// file = JSON.parse(data); -// dbapi = []; -// _.forEach(file, function (dbs, i) { -// var flag = false -// _.forEach(dbs.dbinstance, function (instance) { -// if (instance.isenable) { -// flag = true -// } -// }) -// if (flag) { -// var api = require('../DBConnection/' + i + 'api') -// dbapi.push({ db: i, api: api }); -// // console.log('From..........................................instance') -// api.choose() -// } -// }) -// }); -// }) - -var getQuery = async(function (dbName, type, queryFor) { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - var instance; - _.forEach(dbdata[dbName][type], function (instances, db) { - if (Object.keys(instances)[0] == queryFor) { - var obj = _.find(instances) - if (obj != undefined) { - instance = obj - } - } - }) - return instance - }); - return _data -}); - -// One-liner for current directory, ignores .dotfiles -// chokidar.watch(path.join(__dirname, '../DBConnection/db.json'), { ignored: /(^|[\/\\])\../ }).on('change', async(function (path) { -// // console.log('From..........................................instance111') -// // console.log('File', path, 'has been changed'); -// delete require.cache[require.resolve('../DBConnection/db')]; -// delete require.cache[require.resolve('../DBConnection/mongoapi')]; -// delete require.cache[require.resolve('../DBConnection/rethinkapi')]; -// delete require.cache[require.resolve('../DBConnection/elasticapi')]; -// // delete require.cache[require.resolve('../DBConnection/mysqlapi')]; -// var checking = await (readfile()); -// if (checking == 'nodata') { -// await (readfile); -// } -// })) - -// var checkFlag = async(function (data) { -// var flag = false -// _.forEach(data, async(function (obj, index) { -// // console.log('Obj', obj, '..k..', k)la -// _.forEach(obj, async(function (val, key) { -// // console.log(key, val) -// if (key == 'database') {} else { -// if (Array.isArray(val)) { -// _.forEach(val, async(function (obj) { -// if (!obj.hasOwnProperty('refid')) { -// flag = true -// } -// })) -// } -// } -// })) -// })) -// return flag -// }) - -var checkFlagforGet = async(function (mObj) { - var flag = false - // _.forEach(data, async(function(obj, index){ - // console.log('Obj', obj, '..k..', k)la - _.forEach(mObj, async(function (val, key) { - // console.log(key, val) - if (key == 'database') {} else { - if (Array.isArray(val)) { - _.forEach(val, async(function (obj) { - if (obj.hasOwnProperty('refid')) { - flag = true - } - })) - } - } - })) - // })) alterTableAndAddField - return flag -}) - -var checkDataObj = async(function (data, id, res) { - // console.log('>>>>>>>>>>>>>>>>>>>>>>>> ', data, '\n..............>> ', res) - for (let [dIndex, dObj] of data.entries()) { - // if(dObj.hasOwnProperty('Schemaid')) { - // // console.log('{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{') - // var a = await (setSchemaData(dObj.Schemaid)) - // // console.log('}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}', a) - // } - // console.log('.......', dIndex, dObj) - for (let sKey in dObj) { - // console.log('.....', sObj) - // console.log('.....................................................................') - // console.log('obj', dObj, sKey, dObj[sKey], dIndex) - // console.log('.....................................................................') - // if (sKey == 'database') { - // } - // else { - let f = false - for (let ent of res.entity) { - if (ent.customtype) { - f = true - } - } - if (f) { - var status = await (checkFlag(dObj[sKey])) - console.log('...................................................', status) - // console.log('dObj[sKey]', dObj[sKey], 'sKey', sKey, 'dObj', dObj, 'res', res) - // console.log('...................................................') - // console.log('Status of Array.............................', status) - if (!status) { - // console.log('postSchemaData', postSchemaData) - // var entityType = await(FindEntitytype(sKey, postSchemaData)) - // console.log('}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}') - // console.log('entityType', entityType) - // var Database = await (giveDatabase(entityType)) - // console.log('|||||||||||||||||||||||||||||||||||||', entityType, Database) - // console.log('Val....not contain any array.......') - var entityType = await (FindEntitytype(sKey, res)) - var _res = await (getSchemaData(entityType)) - // console.log('_res', _res, '\nres...', res) - for (let [inx, obj] of dObj[sKey].entries()) { - // console.log('?????????????????????????', sKey) - var s = false - for (let k in obj) { - if (Array.isArray(obj[k])) { - s = true - } - } - if (!s) { - // console.log('<<<<<<<<<<<<<', _res) - schemaid = _res.id - objid = await (saveData(obj, _res)) - } else { - // console.log('@@@@.............', res) - schemaid = res.id - objid = await (saveData(obj, res)) - } - // console.log('res=====================================', res) - // var objid = await (saveData(obj, res.database)) - // console.log('jjksjdfkldsssssssssssssssssss', typeof objid, objid) - objid = objid.toString() - // console.log('?????????????????????????/////', objid, typeof objid) - for (let key in obj) { - delete obj[key] - } - obj.refid = objid - // obj.schemaid = schemaid - } - } else { - // console.log('..::::::::::::::::::..', dObj[sKey], sKey, dObj) - var entityType = await (FindEntitytype(sKey, res)) - // console.log('........', entityType) - var _res = await (getSchemaData(entityType)) - // console.log('_res', _res) - // var entityType = await(FindEntitytype(sKey, postSchemaData)) - // var res = await (setSchemaData(entityType)) - // console.log('entityType,,, ', entityType) - var resp = await (checkDataObj(dObj[sKey], entityType, _res)) - dObj[sKey] = resp - // console.log('contain array...............recursive.....', resp) - } - } - // } - } - } - for (let [inxx, object] of data.entries()) { - // console.log('>>>>>>>>>>>>>>> ', res) - var id = await (saveData(object, res)) - id = id.toString() - for (let okey in object) { - delete object[okey] - } - object.refid = id - // console.log('qqqqqqqqqqqqqqqqqqqqqqq', object) - } - return data -}) - -var mynewCreateFunction = async (function(data, res) { - // console.log('...', data) - let custom = false - for (let ent of res.entity) { - if (ent.customtype) { - custom = true - } - } - if (!custom) { - // No More Custom data - for (let sObj of data) { - let mydata = await (saveData(sObj, res)) - for (let k in sObj) { - delete sObj[k] - } - sObj.refid = mydata - } - } else { - // schema has Custom type inside - for (let sObj of data) { - for (let ent of res.entity) { - if (ent.customtype) { - var _res = await (getSchemaData(ent.type)) - let mydata = await (mynewCreateFunction(sObj[ent.name], _res)) - sObj[ent.name] = mydata - // console.log('sObj[ent.name] >>> ', ent.name, ' >>>> ', mydata) - } - } - var s = await (saveData(sObj, res)) - for (let k in sObj) { - delete sObj[k] - } - sObj.refid = s - } - } - return data -}) - -var FindEntitytype = async(function (fieldname, data) { - // console.log('FindEntitytype :::::::::::', fieldname) - for (let [inxx, object] of data.entity.entries()) { - // console.log('?///////////////', object) - if (object.name == fieldname) { - return object.type - } - // console.log('...', object, inxx) - } -}) - -var getSchemaData = async(function (id) { - // console.log('setSchemaData calling >>>>>>>>>>>') - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema/' + id)) - // console.log('res', res) - // postSchemaData = res.data - return res.data -}) - -var getSchemaDataByName = async(function (title) { - // console.log('setSchemaData calling >>>>>>>>>>>') - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema?title=' + title)) - // console.log('res', res.data) - if (res.data.data.length > 0) { - return res.data.data[0] - } else { - var err = new Error('Not Found') - return err - } - // postSchemaData = res.data -}) - -var getallSchemaData = async(function () { - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema?$paginate=false')) - return res.data -}) - -var giveDatabase = async(function (schemaid) { - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema/' + schemaid)) - console.log('response from giveDatabase', res.data) - // postSchemaData = res.data - return res.data.data.database -}) - -var getConnectionData = async( function(id) { - let res = await(axios.get(databasesUrl + '/' + id)) - return res.data -}) - -var saveData = async(function (data, res) { - // console.log('save calling...................', data, res) - // var database; - // if(data.Schemaid != undefined) { - // database = await (giveDatabase(data.Schemaid)) - // console.log('??????????????????????????', database) - // console.log('Database not undefined found....', database) - // } else { - /////////////////////// - // database = yes - // console.log('Database undefined found.......', database) - // } - // console.log('data', data, 'yes', yes) - // if(database == 'single') { - // var id = data.Schemaid - // var res = await (getSchemaData(id)) - // database = res.database - // } - - // var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - // for(let [i, obj] of dbapi.entries()) { - // if(obj.db == database[0]) { - // _dbindex = i - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conn = await (getConnectionData(res.database[1])) - if (typeof res.id !== 'undefined') { - var dbdata = await (selectapi.postflowsInstance(data, conn, res.title)); - } else { - var dbdata = await (selectapi.postflowsInstance(data, conn)); - } - console.log('Return Instance id .........', dbdata) - return dbdata; -}) - -var setData = async(function (data) { - // console.log('????????????????????????????????????????') - var id = data[0].Schemaid - var res = await (getSchemaData(id)) - // console.log('entity???????????', res) - // console.log('id.............', id) - var _res = await (checkDataObj(data, id, res)) - return _res -}) - -var getInstance = async(function (id, schemaid, columnname) { - var instance = [] - var isMysql = false; - dbapi.forEach(function (db) { - let _promise = new Promise((resolve, reject) => { - // console.log('????????????????????', db.db) - if (db.db == 'mysql') { - isMysql = true - } - if (typeof schemaid !== 'undefined') { - db.api.getThisflowsInstance(id, schemaid, columnname).then((data) => { - resolve(data); - }) - } else { - db.api.getThisflowsInstance(id).then((data) => { - resolve(data); - }) - } - }); - instance.push(_promise) - }); - // } - var _data = Promise.all(instance).then(async(function (response) { - var obj; - response.forEach(function (item) { - if (item[0] != undefined) { - obj = item[0] - } - }) - // console.log('????????????????????', obj) - var flag = await (checkFlagforGet(obj)) - // console.log(flag) - if (!flag) { - return obj - } else { - for (let okey in obj) { - // console.log(okey, '=', obj[okey]) - if (okey == 'database') {} else { - if (Array.isArray(obj[okey])) { - for (let [index, insideObj] of obj[okey].entries()) { - // console.log('11111111111okey1111111111111111111111', okey) - // console.log('isMysql', isMysql) - // console.log('111111111111OBJ111111111111111111111', obj) - if (isMysql) { - obj[okey][index] = await (getInstance(insideObj.refid, obj.Schemaid, okey)) - } else { - obj[okey][index] = await (getInstance(insideObj.refid)) - } - // console.log('222222222222222222222222222222222', obj[okey][index], insideObj) - } - } - } - } - return obj - } - })) - return _data; -}) - -var getallInstance = async(function (data) { - for (let [i, obj] of data.entries()) { - for (let k in obj) { - if (k == 'database') {} else { - if (Array.isArray(obj[k])) { - for (let [index, insideObj] of obj[k].entries()) { - // console.log('222222222222222222222222222222222', insideObj) - // console.log('111111111111111111111111111111111', k) - // console.log('111111111111111111111111111111111', obj.Schemaid) - if (/^\d+$/.test(obj.Schemaid)) { - obj[k][index] = await (getInstance(insideObj.refid, obj.Schemaid, k)) - } else { - obj[k][index] = await (getInstance(insideObj.refid)) - } - } - } - } - } - } - return data -}) - -var getActualInstance = async(function (id, res) { - var instance = [] - dbapi.forEach(function (db) { - if (db.db == res.database[0]) { - let _promise = new Promise((resolve, reject) => { - db.api.getThisflowsInstance(id, res.title, res.database[1]).then((data) => { - resolve(data); - }) - }); - instance.push(_promise) - } - }); - // } - var _data = Promise.all(instance).then(async(function (response) { - return response[0] - })) - return _data; -}) - -var updateData = async(function (id, data, res) { - console.log('update calling...................') - var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - var dbdata = await (dbapi[_dbindex].api.putflowsInstance(id, data, res.title, res.database[1])); - console.log('dbdata..........') - return dbdata; -}) - -var deleteData = async(function (id, res) { - console.log('delete calling...................') - var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - var dbdata = await (dbapi[_dbindex].api.deleteThisflowsInstance(id, res.title, res.database[1])); - console.log('dbdata..........') - return dbdata; -}) - -var checkUpdateData = async(function (id, data) { - var sid = data[0].Schemaid - var res = await (getSchemaData(sid)) - var old_data = await (getActualInstance(id, res)) - // console.log('old_data', data) - // var new_data = - var _res = await (compareData(id, old_data, data[0], res)) - return _res -}) - -var compareData = async(function (id, old_data, new_data, res) { - var new_status = await (checkFlagforGet(old_data)) - console.log('new_status...........................', new_status) - if (!new_status) { - // console.log('Here..................') - var dbdata = await (updateData(id, new_data, res)) - return dbdata - } else { - // for(let [inxx, object] of new_data.entries()) { - for (let sKey in old_data) { - // console.log(object, sKey) - if (Array.isArray(old_data[sKey])) { - console.log('....................') - // console.log(old_data[sKey], sKey) - var entityType = await (FindEntitytype(sKey, res)) - // var database = await (giveDatabase(entityType)) - var _res = await (getSchemaData(entityType)) - // console.log('Database', _res) - var flag = false - for (let [inx, ent] of _res.entity.entries()) { - if (ent.customtype) { - flag = true - } - } - - if (!flag) { - var s = [] - if (old_data[sKey].length == new_data[sKey].length) { - for (let [i, sObj] of old_data[sKey].entries()) { - // console.log(sObj.refid, new_data[sKey][i], _res) - var n = await (updateData(sObj.refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = sObj.refid - // console.log(new_data[sKey][i]) - // new_data[sKey][i] = old_data[sKey][i] - } - } else if (old_data[sKey].length > new_data[sKey].length) { - var s = [] - var diff = old_data[sKey].length - new_data[sKey].length - var upLen = old_data[sKey].length - diff - for (let i = 0; i < upLen; i++) { - var n = await (updateData(old_data[sKey][i].refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = old_data[sKey][i].refid - } - for (let j = upLen; j < old_data[sKey].length; j++) { - var n = await (deleteData(old_data[sKey][j].refid, _res)) - s.push(n) - } - } else if (old_data[sKey].length < new_data[sKey].length) { - for (let i = 0; i < old_data[sKey].length; i++) { - var n = await (updateData(old_data[sKey][i].refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = old_data[sKey][i].refid - } - for (let j = old_data[sKey].length; j < new_data[sKey].length; j++) { - var sres = await (saveData(new_data[sKey][j], _res)) - new_data[sKey][j] = {} - new_data[sKey][j].refid = sres - s.push(n) - } - } - // old_data[sKey] = s; - } else { - var s = [] - // console.log('/////////////////////////////////////////////////////////////////////////////////////', new_data[sKey]) - for (let [i, sObj] of old_data[sKey].entries()) { - var oData = await (getActualInstance(sObj.refid, _res)) - var n = await (compareData(sObj.refid, oData, new_data[sKey][i], _res)) - new_data[sKey][i] = {} - new_data[sKey][i].refid = sObj.refid - s.push(n) - } - } - } - } - // } - var s = await (updateData(id, new_data, res)) - return s - } -}) - -var dataLevelCheking = async (function(data) { - var flag = false - var res = await (getSchemaData(data[0].Schemaid)) - // console.log('res, ', res) - for (let ent of res.entity) { - if (ent.customtype) { - flag = true - } - } - if (flag) { - console.log('Custom Data >>>>>>>>>>>>>>>>>>>>>') - var response = await (setData(data)) - return response - } else { - console.log('Single Level Data >>>>>>>>>>>>>>>>>>>>>') - var response = await (singleLevelsave(data)) - return response - } -}) - -var singleLevelsave = async(function (data) { - // console.log('singleLevelsave', data) - var id = data[0].Schemaid - var res = await (getSchemaData(id)) - var arr = [] - for (let [inx, sObj] of data.entries()) { - var _res = await (saveData(sObj, res)) - console.log('_res....................', _res) - arr.push({ refid: _res }) - } - return arr - }) - // var filterInst = async(function(data, id) { - // for (let [i, fObj] of data.entries()) { - // if (fObj._id == id) { - // for (let k in fObj) { - // if (Array.isArray(fObj[k])) { - // for (let [j, item] of fObj[k].entries()) { - // fObj[k][j] = await (filterInst(data, item.refid)) - // } - // } else { - // return fObj - // } - // } - // } - // } - // }) -var findAllInstance = async(function () { - // var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema')) - var allschema = await (getallSchemaData()) - var Instance = [] - for (let [i, sObj] of allschema.entries()) { - for (let [inx, apiObj] of dbapi.entries()) { - if (apiObj.db == sObj.database[0]) { - var _res = await (dbapi[inx].api.getflowsInstance(sObj.title, sObj.database[1])) - Instance.push(_res) - } - } - } - // console.log(Instance) - var Extract = [] - for (let [i, obj] of Instance.entries()) { - // console.log(obj) - for (let [inx, item] of obj.entries()) { - Extract.push(obj[inx]) - } - } - var fExtract = [] - // Filter Only SchemaId Instances - for (let [inz, idObj] of Extract.entries()) { - if (idObj.hasOwnProperty('Schemaid')) { - fExtract.push(idObj) - } - } - console.log('Extract', fExtract) - - for (let [inxx, mObj] of fExtract.entries()) { - fExtract[inxx] = await (getIdbySchemaId(mObj._id, mObj.Schemaid)) - } - return fExtract - // // var fIns = [] - // for (let [inx, fObj] of Extract.entries()) { - // // if (fObj.hasOwnProperty('Schemaid')) { - // for (let k in fObj) { - // if (Array.isArray(fObj[k])) { - // // console.log(fObj) - // for (let [j, item] of fObj[k].entries()) { - // // console.log() - // fObj[k][j] = await (filterInst(Extract, item.refid)) - // } - // } - // } - // // } - // } - // return Extract - // // var instance = [] - // // // console.log('dbapi', dbapi) - // // for (let [inx, mObj] of dbapi.entries()) { - // // // console.log('\n???', Obj) - // // var _res = await (mObj.api.getflowsInstance()) - // // // console.log('_res', _res) - // // instance.push(_res) - // // } - // // var Extract = [] - // // for (let [i, arr] of instance.entries()) { - // // for (let [j, item] of instance[i].entries()) { - // // Extract.push(item) - // // } - // // } - // // return Extract -}) - -var getIdbySchemaId = async(function (id, schemaid) { - // console.log(id, schemaid) - var res = await (getSchemaData(schemaid)) - // console.log(res) - for (let [i, db] of dbapi.entries()) { - if (db.db == res.database[0]) { - var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // console.log('_res', _res) - var status = false - // for (let k in _res) { - // if (Array.isArray(_res[k])) { - // status = true - // } - // } - for (let ent of res.entity) { - if (ent.customtype) { - status = true - } - } - if (!status) { - return _res - } else { - // for (let k in _res) { - // if (Array.isArray(_res[k])) { - // for (let [inx, iObj] of _res[k].entries()) { - // var _typeid = await (FindEntitytype(k, res)) - // _res[k][inx] = await (getIdbySchemaId(iObj.refid, _typeid)) - // } - // } - // } - for (let ent in res.entity) { - if (ent.customtype) { - for (let sObj of _res[ent.name]) { - sObj = await (getIdbySchemaId(sObj.refid, ent.type)) - } - // _res[ent.name] = await (getIdbySchemaId()) - } - } - return _res - } - } - } -}) - -var getIdbySchemaName = async(function (id, name) { - var Schema = await (getallSchemaData()) - var Schemaid; - for (let [i, obj] of Schema.entries()) { - if (obj.title == name) { - Schemaid = obj._id - } - } - var _res = await (getIdbySchemaId(id, Schemaid)) - return _res; -}) - -var removeIdbySchemaId = async(function (id, schemaid) { - var res = await (getSchemaData(schemaid)) - var _res = await (deleteData(id, res)) - return _res -}) - -var removeIdbySchemaName = async(function (id, name) { - var Schema = await (getallSchemaData()) - var Schemaid; - for (let [i, obj] of Schema.entries()) { - if (obj.title == name) { - Schemaid = obj._id - } - } - var _res = await (removeIdbySchemaId(id, Schemaid)) - return _res; -}) - -var createFunction = async (function(data) { - let res = await (getSchemaData(data[0].Schemaid)) - let _data = await (mynewCreateFunction(data, res)) - return _data -}) - -var getIdFunction = async (function(id, schemaid) { - let res = await (getSchemaData(schemaid)) - let _res = await (newgetFunction(id, res)) - return _res -}) - -var getNameFunction = async (function(id, title) { - let res = await (getSchemaDataByName(title)) - let _res = await (newgetFunction(id, res)) - return _res -}) - -var newgetFunction = async( function(id, res) { - let status = false - for (let ent of res.entity) { - if (ent.customtype) { - status = true - } - } - if (!status) { - // No custom type found - // for (let [i, db] of dbapi.entries()) { - // if (db.db == res.database[0]) { - // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // return _res - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conndata = await (getConnectionData(res.database[1])) - let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) - return _res - } else { - // Now get custom data also - // for (let [i, db] of dbapi.entries()) { - // if (db.db == res.database[0]) { - // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // for (let e of res.entity) { - // if (e.customtype) { - // let mschema = await (getSchemaData(e.type)) - // for (let [i, mObj] of _res[e.name].entries()) { - // _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) - // } - // } - // } - // return _res - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conndata = await (getConnectionData(res.database[1])) - let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) - for (let e of res.entity) { - if (e.customtype) { - let mschema = await (getSchemaData(e.type)) - for (let [i, mObj] of _res[e.name].entries()) { - _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) - } - } - } - return _res - } -}) - -class Service { - constructor(options) { - this.options = options || {}; - } - find(params) { - console.log('find feathers instance...'); - // var instance = [] - var s = findAllInstance() - return Promise.resolve(s) - // dbapi.forEach(function (db) { - // let _promise = new Promise((resolve, reject) => { - // db.api.getflowsInstance().then((data) => { - // resolve(data); - // }) - // }); - // instance.push(_promise) - // }); - // var _data = Promise.all(instance).then(function (response) { - // var Extract = [] - // // console.log(response) - // response.forEach(function (item) { - // item.forEach(function (result) { - // Extract.push(result) - // }) - // }) - // // console.log('..........', Extract) - // // for(let [i, obj] of Extract.entries()) { - // // for(let k in obj) { - // // if(k == 'database') { - // // } - // // else { - // // if(Array.isArray(obj[k])) { - // // for(let [index, insideObj] of obj[k].entries()) { - // // obj[k][index] = getInstance(insideObj.refid) - // // } - // // } - // // } - // // } - // // } - // // console.log('Extract', Extract) - // Extract = getallInstance(Extract) - // return Promise.resolve(Extract).then(function(d){ - // // console.log('Hieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') - // return d - // }) - // }) - // return _data - // if (params.query.name == undefined) { - // var dbdata = dbapi.getflowsInstance(); - // } - // if (params.query.name !== undefined) { - // var dbdata = dbapi.getSchemaName(params.query.name); - // } - // return Promise.resolve(dbdata); - } - get(id, params) { - console.log('Get Instance feathers...'); - if (params.query.schemaid != undefined) { - // console.log('id::: from Get Instance::: ', id) - // var res = getIdbySchemaId(id, params.query.schemaid) - var res = getIdFunction(id, params.query.schemaid) - return Promise.resolve(res) - } else if (params.query.schemaname != undefined) { - // var res = getIdbySchemaName(id, params.query.schemaname) - var res = getNameFunction(id, params.query.schemaname) - return Promise.resolve(res) - } else { - return Promise.resolve('You Must Enter schemaid Or schemaname as parameter for result..') - } - // // dbapi.forEach(function (db) { - // // let _promise = new Promise((resolve, reject) => { - // // db.api.getThisflowsInstance(id).then((data) => { - // // resolve(data); - // // }) - // // }); - // // instance.push(_promise) - // // }); - // if (params.query.Schemaid !== undefined) { - // var dbdata = getInstance(id, params.query.Schemaid) - // } else { - // var dbdata = getInstance(id) - // } - // // console.log('dbdata....', dbdata) - // return Promise.resolve(dbdata) - } - create(data, params) { - console.log('.................................Create feathers...............................'); - if (data.data && Array.isArray(data.data) && data.data.length > 0) { - let res = createFunction(data.data) - return res - } else { - let err = new Error('Bad Request') - return err - } - // var resp = dataLevelCheking(data.data) - // return Promise.resolve(resp) - // // var flag = false - // // //var mainDt = data.data - // // for (let value in data.data[0]) { - // // // console.log(value) - // // if (Array.isArray(data.data[0][value])) { - // // // console.log(data[0][value]) - // // flag = true - // // } - // // } - // // console.log('Flag create', flag) - // // if (!flag) { - // // // var response = saveData(data.data[0], 'single') - // // // var _data = Promise.resolve(response).then(function(d) { - // // // console.log('response... ', d) - // // // var arr = [] - // // // arr.push({refid: d}) - // // // return arr - // // // }) - // // // .catch(function(err){ - // // // console.log('Error', err) - // // // }) - // // // return _data - // // // return saveData(data.data[0]) - // // var response = singleLevelsave(data.data) - // // return Promise.resolve(response).then(res => { - // // console.log('response..............', res) - // // return res - // // }).catch(err => { - // // console.log('Error', err) - // // return err - // // }) - // // } else { - // // // var id = data.data[0].Schemaid - // // // console.log('.............id ', id) - // // // let _promise = new Promise((resolve, reject) => { - // // // getSchemaDataEnt(id).then((data) => { - // // // resolve(data); - // // // }) - // // // }); - // // var response = setData(data.data) - // // // var response = checkDataObj(data.data) - // // return Promise.resolve(response) - // // // .then(function(d) { - // // // console.log('response... ', d) - // // // return d - // // // }) - // // // .catch(function(err){ - // // // console.log('Error', err) - // // // }) - // // } - } - // create(data, params) { - // console.log('create feathers...'); - // var _dbindex = _.findIndex(dbapi, { 'db': data.database[0]}); - // // console.log('data', _dbindex, dbapi[0]) - // var dbdata = dbapi[_dbindex].api.postflowsInstance(data); - // return Promise.resolve(dbdata); - // } - update(id, data, params) { - console.log('-------------------------- Update Feathers Instacne ----------------------') - // console.log('update ...', id, data) - var response = checkUpdateData(id, data.data) - return Promise.resolve(response) - // var dbdata = dbapi.putflowsInstance(data, id); - // return Promise.resolve(dbdata); - } - patch(id, data, params) { - // var dbdata = dbapi.putSchema(data, id); - return Promise.resolve(data); - } - remove(id, params) { - if (params.query.schemaid != undefined) { - var res = removeIdbySchemaId(id, params.query.schemaid) - return Promise.resolve(res) - } else if (params.query.schemaname != undefined) { - var res = removeIdbySchemaName(id, params.query.schemaname) - return Promise.resolve(res) - } else { - return Promise.resolve('You Must Enter schemaid Or schemaname as parameter for result..') - } - // var dbdata = dbapi.deleteThisflowsInstance(id); - // return Promise.resolve(dbdata); - // return Promise.resolve({ id }); - } -} -module.exports = function (options) { - return new Service(options); -}; -module.exports.Service = Service; diff --git a/service/src/services/instance/instance.filters.js b/service/src/services/instance/instance.filters.js deleted file mode 100644 index b3c0c72..0000000 --- a/service/src/services/instance/instance.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the instance service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/instance/instance.hooks.js b/service/src/services/instance/instance.hooks.js deleted file mode 100644 index 5a97dd4..0000000 --- a/service/src/services/instance/instance.hooks.js +++ /dev/null @@ -1,132 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let axios = require('axios') -const app = require('config'); -var serverUrl = 'http://' + app.host + ':' + app.port + '/' -const config = require('../config') -const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [ - hook => aftercreateInstance(hook) - ], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; -var aftercreateInstance = async(function(hook) { - console.log('hook....', hook.result) - let outputObject = []; - // console.log('hook.result', hook.result) - // console.log('hook.data', hook.data) - let flowinstace = await (axios.get(serverUrl + 'flowz-instance/' + hook.data.instanceid)) - let process = _.find(flowinstace.data.processList, function(o) { return o.id == hook.data.processid; }); - for (var element in hook.result) { - let object = await (getinstancevalue(hook.result[element].refid, process.inputProperty[0].entityschema.id)) - outputObject.push(object); - } - // console.log('hook.data.processid', hook.data.processid) - // console.log('hook.data.instanceid', hook.data.instanceid) - // console.log('process', process.inputProperty[0].entityschema._id) - if (process != undefined) { - if (process.inputProperty[0].approvalClass !== undefined) { - addtoApprovalClass(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } else { - AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } - } else { - AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } - // AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid) -}); -var addtoApprovalClass = async(function(instanceid, inputdata, processid, jobId) { - const Queue = require('rethinkdb-job-queue') - //--------------- Connection Options ----------------- - const cxnOptions = config.rethinkdb - //--------------- Queue Options ----------------- - const qOptions = { - name: app.get('approvar_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - // jobOptions.data.fId = id - jobOptions.data = { - "fId": instanceid, - "input": inputdata, - "isExternalInput": true, - "job": processid, - "jobId": jobId - } - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - //--------------- Create new job ----------------- - const job = q.createJob(jobOptions) - //--------------- Add job ----------------- - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) - axios.get(serverUrl + 'flowz-instance/' + instanceid) - .then(response => { - let log = _.chain(response.data.process_log).orderBy(['lastModified'], ['asc']).findLast((f) => { return f.jobId === jobId }).clone().value() - log.status = 'sendForApproval' - log.lastModified = new Date() - response.data.process_log.push(log) - axios.put(serverUrl + 'flowz-instance/' + instanceid, response.data) - .then(res => { - console.log('Status updated for approval : sendForApproval') - }) - .catch(error => { - console.log('Error : ', error) - }) - }) -}) -var getinstancevalue = async(function(id, schemaid) { - console.log('id::: ', id, 'schemaid::: ', schemaid) - var response = await (axios.get(serverUrl + 'instance/' + id + '?schemaid=' + schemaid)) - // console.log('response', response) - return response.data -}); - -function AddValueToJobQue(flowid, data, processid, jobId) { - const Queue = require('rethinkdb-job-queue') - const cxnOptions = config.rethinkdb - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data = { - "fId": flowid, - "input": data, - "isExternalInput": true, - "job": processid, - "jobId": jobId - } - console.log('jobOptions', jobOptions) - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - const job = q.createJob(jobOptions) - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -} \ No newline at end of file diff --git a/service/src/services/instance/instance.service.js b/service/src/services/instance/instance.service.js deleted file mode 100644 index 28dee71..0000000 --- a/service/src/services/instance/instance.service.js +++ /dev/null @@ -1,21 +0,0 @@ -// Initializes the `instance` service on path `/instance` -const createService = require('./instance.class.js'); -const hooks = require('./instance.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - - const options = { - name: 'instance', - paginate - }; - - // Initialize our service with any options it requires - app.use('/instance', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('instance'); - - service.hooks(hooks); -}; diff --git a/service/src/services/logs/logs.filters.js b/service/src/services/logs/logs.filters.js deleted file mode 100644 index a8694bb..0000000 --- a/service/src/services/logs/logs.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the logs service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/logs/logs.hooks.js b/service/src/services/logs/logs.hooks.js deleted file mode 100644 index 55553eb..0000000 --- a/service/src/services/logs/logs.hooks.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [ - hook => blockUpdate(hook) - ], - update: [ - hook => blockUpdate(hook) - ], - patch: [ - hook => blockUpdate(hook) - ], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function blockUpdate(hook) { - hook.result = hook.data -} diff --git a/service/src/services/logs/logs.service.js b/service/src/services/logs/logs.service.js deleted file mode 100644 index 9875317..0000000 --- a/service/src/services/logs/logs.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./logs.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: app.get('system_logs_table'), - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/logs', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('logs'); - service.hooks(hooks); -}; diff --git a/service/src/services/receive-form/receive-form.class.js b/service/src/services/receive-form/receive-form.class.js deleted file mode 100644 index 5f3a3eb..0000000 --- a/service/src/services/receive-form/receive-form.class.js +++ /dev/null @@ -1,122 +0,0 @@ -/* eslint-disable no-unused-vars */ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let config = require('config'); -var axios = require('axios'); -// host=aws-us-east-1-portal.30.dblayer.com port=16868 -var tName = 'receive_form'; -var r = require('rethinkdbdash')({ - host: config.get('rdb_host').trim(), - port: config.get('rdb_port').trim(), - db: 'FlowzEngine' - // rauth: "51b2885598be1c2c1243a5c9c3548ad2", - // cert: "/ca.crt" -}); -// host: '159.203.134.27',port: '28015', -class Service { - constructor(options) { - this.options = options || {}; - } - find(params) { - console.log('find feathers...'); - var res = findFunction() - return Promise.resolve(res) - } - get(id, params) { - console.log('Get feathers...'); - var res = getFunction(id) - return Promise.resolve(res) - } - create(data, params) { - console.log('create feathers...'); - var res = createFunction(data) - return Promise.resolve(res) - } - update(id, data, params) { - console.log('Update feathers...'); - var res = updateFunction(id, data) - return Promise.resolve(res) - } - patch(id, data, params) { - var res = patchFunction(id, data) - return Promise.resolve(res) - } - remove(id, params) { - console.log('Delete feathers...') - var res = removeFunction(id) - return Promise.resolve(res) - } -} - -var findFunction = async function () { - let result - await r.table(tName) - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -var getFunction = async function (id) { - let result - await r.table(tName) - .get(id) - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -var createFunction = async function (data) { - r.table(tName) - .insert(data) - .run() - .then(function (response) { - console.log('Success ', response); - }) - .error(function (err) { - console.log('error occurred ', err); - }) - return data -} - -var updateFunction = async function (id, data) { - - return id -} - -var patchFunction = async function (id, data) { - - return id -} - -var removeFunction = async function (id) { - let result - await r.table(tName) - .get(id) - .delete() - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -module.exports = function (options) { - return new Service(options); -}; -module.exports.Service = Service; diff --git a/service/src/services/receive-form/receive-form.filters.js b/service/src/services/receive-form/receive-form.filters.js deleted file mode 100644 index c76b49c..0000000 --- a/service/src/services/receive-form/receive-form.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the receive-form service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/receive-form/receive-form.hooks.js b/service/src/services/receive-form/receive-form.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/receive-form/receive-form.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/receive-form/receive-form.service.js b/service/src/services/receive-form/receive-form.service.js deleted file mode 100644 index 293ec50..0000000 --- a/service/src/services/receive-form/receive-form.service.js +++ /dev/null @@ -1,33 +0,0 @@ -// Initializes the `receive-form` service on path `/receive-form` -const createService = require('./receive-form.class.js'); -const hooks = require('./receive-form.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - const swagger = require('feathers-swagger'); - - const options = { - name: 'receive-form', - paginate - }; - - app.configure(swagger({ - docsPath: '/docs', - prefix: /api\/v\d\//, - versionPrefix: /v\d/, - uiIndex: true, - info: { - title: 'A test', - description: 'A description', - } - })) - - // Initialize our service with any options it requires - app.use('/receive-form', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('receive-form'); - - service.hooks(hooks); -}; diff --git a/service/src/services/scheduler/scheduler.filters.js b/service/src/services/scheduler/scheduler.filters.js deleted file mode 100644 index 6c22dca..0000000 --- a/service/src/services/scheduler/scheduler.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the scheduler service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/scheduler/scheduler.hooks.js b/service/src/services/scheduler/scheduler.hooks.js deleted file mode 100644 index 43640fb..0000000 --- a/service/src/services/scheduler/scheduler.hooks.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; \ No newline at end of file diff --git a/service/src/services/scheduler/scheduler.service.js b/service/src/services/scheduler/scheduler.service.js deleted file mode 100644 index 4be6115..0000000 --- a/service/src/services/scheduler/scheduler.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./scheduler.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: app.get('scheduler_table'), - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/scheduler', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('scheduler'); - service.hooks(hooks); -}; diff --git a/service/src/services/schemamapping/schemamapping.filters.js b/service/src/services/schemamapping/schemamapping.filters.js deleted file mode 100644 index 522987d..0000000 --- a/service/src/services/schemamapping/schemamapping.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the schemamapping service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/schemamapping/schemamapping.hooks.js b/service/src/services/schemamapping/schemamapping.hooks.js deleted file mode 100644 index 5f0a280..0000000 --- a/service/src/services/schemamapping/schemamapping.hooks.js +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = { - before: { - all: [], - find: [ - hooks => beforeFind(hooks) - ], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function beforeFind(hook) { - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -} diff --git a/service/src/services/schemamapping/schemamapping.service.js b/service/src/services/schemamapping/schemamapping.service.js deleted file mode 100644 index ba5fc24..0000000 --- a/service/src/services/schemamapping/schemamapping.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./schemamapping.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'schemamapping', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/schemamapping', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('schemamapping'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/settings/settings.class.js b/service/src/services/settings/settings.class.js deleted file mode 100644 index 2c1e2a5..0000000 --- a/service/src/services/settings/settings.class.js +++ /dev/null @@ -1,490 +0,0 @@ -/* eslint-disable no-unused-vars */ -var express = require('express'); -var path = require('path'); -var CryptoJS = require("crypto-js"); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -// var db = require('../DBConnection/db'); -var fileName = '../DBConnection/db.json'; -var fs = require('fs'); -var jsonfile = require('jsonfile') -var _ = require('lodash') -var endecrypt = require('../encryption/security') - -// check_Connection -var mongodb = require('mongodb'); -var elasticsearch = require('elasticsearch'); -var MongoClient = require('mongodb').MongoClient; - -var check_Connection = async(function (db, data) { - // console.log('data..', data, 'db', db) - if (db == 'mongo') { - console.log("MongoDB.............."); - var _res; - if (data.username != undefined && data.password != undefined) { - // console.log('.............') - if (data.username != "" && data.password != "") { - _res = await (MongoClient.connect('mongodb://' + data.username + ':' + data.password + '@' + data.host + ':' + data.port + '/' + data.dbname)) - } else { - _res = await (MongoClient.connect('mongodb://' + data.host + ':' + data.port + '/' + data.dbname)) - } - } else { - // console.log('.............111') - if (data.dbname != undefined) {} else { - _res = await (MongoClient.connect('mongodb://' + data.host + ':' + data.port)) - } - } - return _res - } else if (db == 'rethink') { - // console.log("RethinkDB.............."); - var r = await (require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - })) - return r - } - // console.log('response>>>>>>>>>>>>', _res) - // , function(err, database) { - // if(err){ - // console.log('err', err) - // return 'false' - // } - // else { - // console.log('Mongo connected....',database); - // return 'true' - // } - // }); - else if (db == 'rethink') { - // console.log("RethinkDB.............."); - var r = await (require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - })) - return r - // ,function(err,response){ - // if(err){ - // console.log('XXXXXXXXXXXXXXXXXXXXXXXXX',err); - // return 'false' - // } - // else { - // console.log('EEEEEEEEEEEEEEEEEEEEEEEEEEE',response); - // return'true' - // } - // }) - } else if (db == 'elastic') { - // console.log("Elastic Search.............."); - var client = await (new elasticsearch.Client({ - host: data.host + ':' + data.port, - log: 'error' - }).ping({ - requestTimeout: 1000 - })) - // console.log(client) - return client - // , function (error) { - // if (error) { - // return 'false' - // } else { - // return 'true' - // } - // }); - } else if (db == 'mysql') { - return 'success' - } else { - var _res = new error() - return _res - } -}) - -var getConnectionData = async(function (db, data) { - // console.log('getConnectionData..............') - if (db == 'mongo') { - var mongoDB; - if (data.username != "" && data.password != "") { - mongoDB = 'mongodb://' + data.username + ':' + data.password + '@' + data.host + ':' + data.port + '/' + data.dbname; - } else { - mongoDB = 'mongodb://' + data.host + ':' + data.port + '/' + data.dbname; - } - var conn = await (MongoClient.connect(mongoDB)) - // console.log('conn', conn); - // var collections = await (conn.listCollections().toArray()); - // console.log('collections', collections) - - var result = await (conn.listCollections().toArray()) - for (let [inx, obj] of result.entries()) { - for (let k in obj) { - if (k !== 'name') { - delete obj[k] - } - var a = await (conn.collection(obj.name).find().toArray()) - var cols =[] - if(a[0] != undefined) { - for(let k in a[0]) { - cols.push({name: k}) - } - } - } - result[inx].columns = cols; - } - // console.log('Data........................', result) - return result - } else if (db == 'rethink') { - // console.log('match found rethink') - var connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - // console.log('conn.......', connection) - // var result = await (connection.table('schema').run()) - var result = await (connection.db(data.dbname).tableList()) - for (let [inx, val] of result.entries()) { - var a = await (connection.db(data.dbname).table(val).run()) - var cols =[] - if(a[0] != undefined) { - for(let k in a[0]) { - cols.push({name: k}) - } - } - result[inx] = { name: val, columns: cols} - } - // console.log('result............', result) - return result - } else if (db == 'elastic') { - // console.log('match found rethink') - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port + '/' + data.dbname - }); - var data1 = []; - var result = await ( - connection.search({ - body: { - aggs: { - typesAgg: { - terms: { - field: '_type', - size: 200 - } - } - }, - size: 0 - } - })) - var conn = new elasticsearch.Client({ - host: data.host + ':' + data.port - }); - // console.log('result........', result.aggregations.typesAgg.buckets) - for (let [i, obj] of result.aggregations.typesAgg.buckets.entries()) { - // var mapping = await ( - // conn.indices.getMapping({ - // index: data.dbname, - // type: obj.key - // })) - // console.log('..............', mapping[data.dbname].mappings[obj.key].properties) - // data1.push({ name: obj.key, columns: mapping[data.dbname].mappings[obj.key].properties }) - var data = [] - var a = await (connection.search({ - index: data.dbname, - type: obj.key, - body: { - query: { - match_all: { } - }, - } - })) - a.hits.hits.forEach(function(hit){ - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - var cols =[] - if(data[0] != undefined) { - for(let k in data[0]) { - cols.push({name: k}) - } - } - // result[inx] = { name: val, columns: cols} - data1.push({ name: obj.key, columns: cols }) - } - // console.log(data1) - return data1; - } else if (db == 'mysql') { - var s = [] - return s - } else { - return 'not_found_db' - } -}) - -var getAllSettings = async(function () { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - // console.log(dbdata) - _.forEach(dbdata, function (instances, db) { - // console.log(instances) - _.forEach(instances.dbinstance, function (item, i) { - // console.log(dbdata[db].dbinstance[i]) - delete dbdata[db].dbinstance[i].username - delete dbdata[db].dbinstance[i].password - }) - }) - return dbdata - }); - return _data -}) - -var getDbInstances = async(function (dbname) { - var _res = await (getAllSettings()) - var instances; - for (let db in _res) { - if (db == dbname) { - instances = _res[db].dbinstance - // console.log(_res[db].dbinstance) - } - } - return instances -}) - -class Service { - constructor(options) { - this.options = options || {}; - } - - find(params) { - if (params.query.dbname != undefined) { - var _res = getDbInstances(params.query.dbname) - return Promise.resolve(_res) - } else { - var _res = getAllSettings() - return Promise.resolve(_res) - } - // let result = new Promise((resolve, reject) => { - // fs.readFile(path.join(__dirname, '../DBConnection/db.json'),function (err, data) { - // if (err) return console.log(err); - // resolve(JSON.parse(data)); - // }); - // }); - // var _data = Promise.resolve(result).then(function(dbdata){ - // // console.log(dbdata) - // _.forEach(dbdata, function(instances, db){ - // // console.log(instances) - // _.forEach(instances.dbinstance, function(item, i){ - // // console.log(dbdata[db].dbinstance[i]) - // delete dbdata[db].dbinstance[i].username - // delete dbdata[db].dbinstance[i].password - // }) - // }) - // return dbdata - // }); - // return _data - } - - get(id, params) { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - // console.log(dbdata) - var instance; - _.forEach(dbdata, function (instances, db) { - var obj = _.find(instances.dbinstance, { id: id }) - if (obj != undefined) { - instance = obj - instance.selectedDb = db - } - }) - return instance - }); - return _data - } - - create(data, params) { - console.log('********* Inside Create Service *********\n'); - if (params.query.check != undefined) { - if (params.query.check == 'mysql') { - return Promise.resolve({ result: true, data: [] }) - } else { - var _res = check_Connection(params.query.check, data) - return Promise.resolve(_res).then(function (res) { - // console.log('result.................', res) - var abc = getConnectionData(params.query.check, data) - return Promise.resolve(abc).then(function (__res) { - return { result: true, data: __res } - }) - // return {result: true} - }) - .catch(function (err) { - // console.log('Error..............', err) - return { result: false } - }) - } - } else { - if (params.query.checkconn != undefined) { - var _res = check_Connection(params.query.checkconn, data) - return Promise.resolve(_res).then(function (res) { - return { result: true } - }).catch(function (err) { - // console.log('Error..............', err) - return { result: false } - }) - } else { - //encryption - data.password = endecrypt.encrypt(data.password); - // console.log(data) - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var selectDB = data.selectedDb; - delete data.selectedDb; - - //check connection alredy exist or not - var check = '' - _.map(res[selectDB].dbinstance, function (instance) { - if (instance.host == data.host && instance.port == data.port && instance.dbname == data.dbname) { - check = 'Exist' - } - }) - if (check == 'Exist') { - return 'Exist' - } else { - //check connection is isdefault true - if (data.isdefault) { - _.forEach(res, (v, k) => { - _.forEach(res[k].dbinstance, function (inst) { - inst.isdefault = false - }) - }) - } - // console.log(res[selectDB].dbinstance) - res[selectDB].dbinstance.push(data) - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - Promise.resolve(result1); - return 'Success' - } - }); - return _data; - } - } - } - - update(id, data, params) { - console.log('Inside Update Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - res[updatedb].dbinstance[index_instance].isenable = data.isenable - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - } - - patch(id, data, params) { - console.log('Inside patch Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - for (let db in res) { - for (let [inx, inst] of res[db].dbinstance.entries()) { - inst.isdefault = false - } - } - res[updatedb].dbinstance[index_instance].isdefault = data.isdefault - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - } - - remove(id, params) { - console.log('Inside Delete Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - res[updatedb].dbinstance.splice(index_instance, 1) - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - // return Promise.resolve({ id }); - } -} - -module.exports = function (options) { - return new Service(options); -}; - -module.exports.Service = Service; diff --git a/service/src/services/settings/settings.filters.js b/service/src/services/settings/settings.filters.js deleted file mode 100644 index 68f5738..0000000 --- a/service/src/services/settings/settings.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the settings service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/settings/settings.hooks.js b/service/src/services/settings/settings.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/settings/settings.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/settings/settings.service.js b/service/src/services/settings/settings.service.js deleted file mode 100644 index eb67acc..0000000 --- a/service/src/services/settings/settings.service.js +++ /dev/null @@ -1,21 +0,0 @@ -// Initializes the `settings` service on path `/settings` -const createService = require('./settings.class.js'); -const hooks = require('./settings.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - - const options = { - name: 'settings', - paginate - }; - - // Initialize our service with any options it requires - app.use('/settings', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('settings'); - - service.hooks(hooks); -}; diff --git a/service/src/services/usermaster/usermaster.filters.js b/service/src/services/usermaster/usermaster.filters.js deleted file mode 100644 index 5968061..0000000 --- a/service/src/services/usermaster/usermaster.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the flowz service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/usermaster/usermaster.hooks.js b/service/src/services/usermaster/usermaster.hooks.js deleted file mode 100644 index 43640fb..0000000 --- a/service/src/services/usermaster/usermaster.hooks.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; \ No newline at end of file diff --git a/service/src/services/usermaster/usermaster.service.js b/service/src/services/usermaster/usermaster.service.js deleted file mode 100644 index a330ba9..0000000 --- a/service/src/services/usermaster/usermaster.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./usermaster.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'usermaster', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/usermaster', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('usermaster'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/test/services/approval.test.js b/service/test/services/approval.test.js deleted file mode 100644 index ce43833..0000000 --- a/service/test/services/approval.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'approval\' service', () => { - it('registered the service', () => { - const service = app.service('approval'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/email-receive.test.js b/service/test/services/email-receive.test.js deleted file mode 100644 index 695e00d..0000000 --- a/service/test/services/email-receive.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'email-receive\' service', () => { - it('registered the service', () => { - const service = app.service('email-receive'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/email-templates.test.js b/service/test/services/email-templates.test.js deleted file mode 100644 index 7381d83..0000000 --- a/service/test/services/email-templates.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'email-templates\' service', () => { - it('registered the service', () => { - const service = app.service('email-templates'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/instance.test.js b/service/test/services/instance.test.js deleted file mode 100644 index caeec05..0000000 --- a/service/test/services/instance.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'instance\' service', () => { - it('registered the service', () => { - const service = app.service('instance'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/settings.test.js b/service/test/services/settings.test.js deleted file mode 100644 index fdcb563..0000000 --- a/service/test/services/settings.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'settings\' service', () => { - it('registered the service', () => { - const service = app.service('settings'); - - assert.ok(service, 'Registered the service'); - }); -}); From 5bd332f41a159a8e9dd2f92c312d72f0c5395f9c Mon Sep 17 00:00:00 2001 From: chirag Date: Tue, 11 Sep 2018 12:50:58 +0530 Subject: [PATCH 51/92] remove await and update user details call --- client/src/main.js | 183 +-- client/src/pages/Login.vue | 20 +- client/src/store/actions.js | 19 +- client/src/store/mutations.js | 4 +- service/package-lock.json | 2350 ++++++++++++++++++++------------- service/package.json | 2 +- 6 files changed, 1469 insertions(+), 1109 deletions(-) diff --git a/client/src/main.js b/client/src/main.js index 311112b..fbe02a5 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -119,17 +119,11 @@ import psl from 'psl' router.beforeEach((to, from, next) => { iView.LoadingBar.start() iView.LoadingBar.config({ color: '#0e406d' }) - // window.console.log('Transition', transition) - // router.app.$store.state.token - let obId = false + // window.console.log('Transition', transition) + // router.app.$store.state.token let location = psl.parse(window.location.hostname) // get parent domain location = location.domain === null ? location.input : location.domain - if (to.query.ob_id) { - // let location = psl.parse(window.location.hostname) // get parent domain - // location = location.domain === null ? location.input : location.domain - // router.app.$cookie.set('auth_token', to.query.ob_id, { expires: 1, domain: location }) - obId = to.query.ob_id - } + if (to.query.token) { router.app.$cookie.set('auth_token', to.query.token, { expires: 1, domain: location }) } @@ -141,164 +135,36 @@ router.beforeEach((to, from, next) => { } else { delete axios.defaults.headers.common['authorization'] } - if (to.matched.some(record => record.meta.requiresAuth) && obId) { - next({ - path: '/email-verification', - query: { ob_id: obId } - }) - } else if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === 'null')) { + + if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === 'null')) { next({ path: '/login' // query: { redirect: to.fullPath } }) } else { if (to.matched.some(record => record.meta.requiresAuth) || (to.path === '/login')) { - // console.log('Hereeeeeeee', to.path) - // to.matched.some(record => { - // console.log(record.meta.role) - // }) - store.dispatch('authenticate', token).then(response => { - // console.log('authenticate', response) - // if (store.state.subscription !== '' && store.state.subscription !== null) { - if (response.hasOwnProperty('package')) { - // if (response.package[store.state.subscription] === undefined) { - if (store.state.subscription !== '' && store.state.subscription !== undefined) { - if (response.package[store.state.subscription].role === 'admin') { - store.commit('SET_ROLE', 1) - // next({ - // path: '/admin/dashboard' - // }) - } else { - store.commit('SET_ROLE', 2) - // next({ - // path: '/' - // }) - } + store.dispatch('authenticateToken', token).then(response => { + // get user role + if (to.path !== '/') { + if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { + next({ + path: '/' + }) } else { - if (response.hasOwnProperty('defaultSubscriptionId')) { - store.state.subscription = response.defaultSubscriptionId - if (response.package[store.state.subscription].role === 'admin') { - store.commit('SET_ROLE', 1) - // next({ - // path: '/admin/dashboard' - // }) - } else { - store.commit('SET_ROLE', 2) - // next({ - // path: '/' - // }) - } - } + next() } - // } } else { - store.commit('SET_ROLE', 2) - } - // } - - store.commit('SET_USER', response) - // get user role - if (to.matched.some(record => record.meta.role)) { - // console.log('1') - // if (store.state.subscription !== '' && store.state.subscription !== null) { - // console.log('2') - // if (response.hasOwnProperty('package')) { - // console.log('3') - // if (response.package[store.state.subscription].role === 'admin') { - // console.log('4') - // store.commit('SET_ROLE', 1) - // // next({ - // // path: '/admin/dashboard' - // // }) - // } else { - // console.log('5') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // } else { - // console.log('6') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // } else { - // // console.log('7') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // store.dispatch('getUser', response.email).then(user => { - // if (user) { - // console.log('8') - if (store.state.role !== null) { - // store.commit('SET_ROLE', 2) - // console.log('9') - // if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { - // console.log('10') - // next({ - // path: '/login' - // // query: { redirect: to.fullPath } - // }) - // // next() - // } else { - // console.log('11') - // next() - // } - // next({ - // path: parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/' - // }) - // console.log('.........', to.path, store.state.role) - if (to.path === '/') { - if (store.state.role === 1) { - next({ - path: '/admin/dashboard' - }) - } else { - next({ - path: '/dashboard' - }) - } - } else { - if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { - next({ - path: '/' - }) - } else { - next() - } - } + if (store.state.role === 1) { + next({ + path: '/admin/dashboard' + }) } else { - // console.log('12') - store.commit('SET_ROLE', 2) next({ - path: '/' + path: '/dashboard' }) } - // } else { - // next() - // } - // }).catch(error => { - // console.log(error) - // // window.console.log('Not authenticated') - // next({ - // path: '/login' - // // query: { redirect: to.fullPath } - // }) - // }) - } else { - // console.log('13') - next({ - path: (to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path - }) - // next() } - }).catch(error => { - console.log(error.message) - // window.console.log('Not authenticated') + }).catch(() => { router.app.$cookie.delete('auth_token', { domain: location }) store.commit('SET_TOKEN', null) store.commit('SET_USER', null) @@ -306,23 +172,12 @@ router.beforeEach((to, from, next) => { if (to.path !== '/login') { next({ path: '/login' - // query: { redirect: to.fullPath } }) } else { next() } }) } else { - // console.log('16') - // let path = token ? ((to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path) : '/login' - // console.log(path) - // path: (token ? ((to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path) : '/login') - - // console.log('login ===> ') - // next({ - // path: '/login' - // }) - next() } } diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f1587f5..f5d8b05 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -147,7 +147,7 @@ export default { var auth = await modelAuthentication.login(this.formLogin).catch(error => { if (error.response) { this.$Message.error(error.response.data) - } else + } else { this.$Message.error("Fail login.") } @@ -159,7 +159,23 @@ export default { let location = psl.parse(window.location.hostname) // get parent domain location = location.domain === null ? location.input : location.domain this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie - this.$store.commit('SET_ROLE', null) + let userData = await this.$store.dispatch('authenticate', auth.logintoken) + + this.$store.commit('SET_ROLE', 2) + if (userData.hasOwnProperty('package')) { + if (this.$store.state.subscription !== '' && this.$store.state.subscription !== undefined) { + if (userData.package[this.$store.state.subscription].role === 'admin') { + this.$store.commit('SET_ROLE', 1) + } + } else { + if (userData.hasOwnProperty('defaultSubscriptionId')) { + this.$store.state.subscription = userData.defaultSubscriptionId + if (userData.package[this.$store.state.subscription].role === 'admin') { + this.$store.commit('SET_ROLE', 1) + } + } + } + } this.$router.push({path: '/'}) // Redirect to dashbord } this.loading = false diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 145849b..9ea316d 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -62,6 +62,10 @@ export default { commit('REMOVE_XML') }, authenticate ({ commit }, authToken) { + let userData = commit('GET_USER') + if (!userData) { + return userData + } return axios({ method: 'get', url: config.loginURL + '/userdetails', @@ -71,12 +75,25 @@ export default { }) .then(response => { if (response) { + commit('SET_USER', response.data.data) return response.data.data } else { - return + return null } }) }, + authenticateToken ({ commit }, authToken) { + return axios({ + method: 'post', + url: config.loginURL + '/validatetoken', + headers: { + 'authorization': authToken + } + }) + .then(response => { + return response.data.status + }) + }, getUser ({ commit }, email) { return modelUser.getByParam(email).then((response) => { if (response && response.data.data.length > 0) { diff --git a/client/src/store/mutations.js b/client/src/store/mutations.js index 6594ab0..890a382 100644 --- a/client/src/store/mutations.js +++ b/client/src/store/mutations.js @@ -6,6 +6,9 @@ export default { SET_USER (state, user) { state.user = user }, + GET_USER (state) { + return state.user + }, SET_TOKEN (state, token) { state.token = token }, @@ -49,4 +52,3 @@ export default { // state.activeFlow = data // } } - diff --git a/service/package-lock.json b/service/package-lock.json index 853b72c..e089ffb 100644 --- a/service/package-lock.json +++ b/service/package-lock.json @@ -19,14 +19,15 @@ "resolved": "https://registry.npmjs.org/@feathersjs/configuration/-/configuration-2.0.2.tgz", "integrity": "sha512-8UhUXFH7veSkQvfl5XBWn1VKR0o+RbVNrgXDPuTiFcR6XinVVQwX0m2OlzrZ2GvFXFCuqXh+60OubQGg3FAf4Q==", "requires": { - "config": "2.0.1", - "debug": "3.1.0" + "config": "^2.0.0", + "debug": "^3.1.0" } }, "@feathersjs/errors": { "version": "github:feathersjs/errors#219083f391f03fff98c92b0b313b9d6034737c71", + "from": "github:feathersjs/errors", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@feathersjs/express": { @@ -34,11 +35,11 @@ "resolved": "https://registry.npmjs.org/@feathersjs/express/-/express-1.2.5.tgz", "integrity": "sha512-HnoIvp/f8vTPlanF7zkg0Sqk2ukrf58ck/P4t1z7JTT0SG3zqgmUAS7XemEx3ckfIvz9mFJMedz2hw8HdE1yKQ==", "requires": { - "@feathersjs/commons": "3.0.0", - "@feathersjs/errors": "3.3.2", - "debug": "3.1.0", - "express": "4.16.3", - "uberproto": "2.0.4" + "@feathersjs/commons": "^3.0.0", + "@feathersjs/errors": "^3.3.2", + "debug": "^3.1.0", + "express": "^4.16.2", + "uberproto": "^2.0.0" }, "dependencies": { "@feathersjs/errors": { @@ -46,7 +47,7 @@ "resolved": "https://registry.npmjs.org/@feathersjs/errors/-/errors-3.3.2.tgz", "integrity": "sha512-9a2KHFMPRQw6zTuDo06YbgWyqXiWOqCi6iXI8kMrLDKAmkRvJjrCq+SXEJuz44hTxqBJtJBaW164Mez8tQqJbw==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "uberproto": { @@ -61,10 +62,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/feathers/-/feathers-3.2.1.tgz", "integrity": "sha512-NX9YvKLg17H/2/PDS2YqhPAHskcSD2mcgyXRxcBi2zJSEjXRh+/gpAidaQzWF0SkwVsdq8ecasqRsHldS2GfxQ==", "requires": { - "@feathersjs/commons": "3.0.0", - "debug": "3.1.0", - "events": "3.0.0", - "uberproto": "2.0.4" + "@feathersjs/commons": "^3.0.0", + "debug": "^3.1.0", + "events": "^3.0.0", + "uberproto": "^2.0.2" }, "dependencies": { "uberproto": { @@ -79,10 +80,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/socketio/-/socketio-3.2.4.tgz", "integrity": "sha512-+icouEbD/wLl7Bc+SjiigmhwqjkWhJR2Uue65QILzAzxdo6GL01B+Eber1L61D0rCsOEYhjMM14J5uXnfXgfvQ==", "requires": { - "@feathersjs/transport-commons": "4.1.3", - "debug": "3.1.0", - "socket.io": "2.1.1", - "uberproto": "2.0.4" + "@feathersjs/transport-commons": "^4.1.3", + "debug": "^3.1.0", + "socket.io": "^2.1.0", + "uberproto": "^2.0.1" }, "dependencies": { "uberproto": { @@ -97,11 +98,11 @@ "resolved": "https://registry.npmjs.org/@feathersjs/transport-commons/-/transport-commons-4.1.3.tgz", "integrity": "sha512-D4WzS6B5QO0oQ8VI9sjCk2qqqDa3QwPjkooweg6BOati9si+H67FZpsw4ns7oDhWbB4WVt6Gd33bIdB5gjUwkA==", "requires": { - "@feathersjs/commons": "3.0.0", - "@feathersjs/errors": "3.3.2", - "debug": "3.1.0", - "lodash": "4.17.10", - "radix-router": "3.0.1" + "@feathersjs/commons": "^3.0.0", + "@feathersjs/errors": "^3.3.2", + "debug": "^3.1.0", + "lodash": "^4.17.10", + "radix-router": "^3.0.1" }, "dependencies": { "@feathersjs/errors": { @@ -109,7 +110,7 @@ "resolved": "https://registry.npmjs.org/@feathersjs/errors/-/errors-3.3.2.tgz", "integrity": "sha512-9a2KHFMPRQw6zTuDo06YbgWyqXiWOqCi6iXI8kMrLDKAmkRvJjrCq+SXEJuz44hTxqBJtJBaW164Mez8tQqJbw==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } } } @@ -134,7 +135,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.1.tgz", "integrity": "sha512-uZP8Fd4f7rwHKztnOhFJYEJsKXO7opmcyKk5P9vRC8UJAx3AiWaGFiLxDqPJqzO3n3IhF/v6rdscxadarEXnag==", "requires": { - "csstype": "2.5.5" + "csstype": "^2.2.0" } }, "@types/socket.io": { @@ -142,7 +143,7 @@ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-1.4.37.tgz", "integrity": "sha512-GhDfR8U0KO+0khxfxgs/XodCw32vKRdt391h2G7JfZj3fegludA0cltsNaKoHncHjYq8xnNUhYoPpG9ytViC1g==", "requires": { - "@types/node": "10.7.1" + "@types/node": "*" } }, "accepts": { @@ -150,7 +151,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -166,7 +167,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -197,10 +198,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -246,8 +247,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -255,7 +256,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -263,7 +264,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -287,7 +288,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -321,7 +322,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -334,7 +335,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "async-each": { @@ -352,9 +353,9 @@ "resolved": "https://registry.npmjs.org/asyncawait/-/asyncawait-1.0.7.tgz", "integrity": "sha512-jWRlXdzpj90/bbgA6cy4BbTHFEBk+RQpFQHiCuy9/rp0OB07pBYWVRWoT4Garf0fZRC/nzA6OhN5xC0wpoxKjw==", "requires": { - "bluebird": "3.5.1", - "fibers": "2.0.2", - "lodash": "4.17.10" + "bluebird": "^3.1.1", + "fibers": "^2.0.2", + "lodash": "^4.17.10" } }, "asynckit": { @@ -382,8 +383,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.3", + "is-buffer": "^1.1.5" } }, "babel-code-frame": { @@ -392,9 +393,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-polyfill": { @@ -402,9 +403,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -419,8 +420,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "backo2": { @@ -460,7 +461,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "better-assert": { @@ -486,7 +487,7 @@ "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", "requires": { - "underscore": "1.4.4" + "underscore": "~1.4.4" }, "dependencies": { "underscore": { @@ -512,15 +513,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -539,12 +540,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "optional": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" }, "dependencies": { "array-flatten": { @@ -573,7 +574,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -582,9 +583,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -608,8 +609,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -645,7 +646,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -671,8 +672,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "optional": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "camelize": { @@ -690,11 +691,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chardet": { @@ -708,14 +709,15 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "circular-json": { @@ -735,7 +737,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -750,9 +752,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "co": { @@ -790,7 +792,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -799,7 +801,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "commonmark": { @@ -807,10 +809,10 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "minimist": "1.2.0", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "minimist": "~ 1.2.0", + "string.prototype.repeat": "^0.2.0" } }, "commonmark-react-renderer": { @@ -818,10 +820,10 @@ "resolved": "https://registry.npmjs.org/commonmark-react-renderer/-/commonmark-react-renderer-4.3.4.tgz", "integrity": "sha512-+/Rzo3sI37NR8LaVdkUiqBH3+CEW75hc86shwY4E9eEERg78VCy4rSkaP/p7OG5bTvosUMkvhn5d1ZJ5iyt/ag==", "requires": { - "lodash.assign": "4.2.0", - "lodash.isplainobject": "4.0.6", - "pascalcase": "0.1.1", - "xss-filters": "1.2.7" + "lodash.assign": "^4.2.0", + "lodash.isplainobject": "^4.0.6", + "pascalcase": "^0.1.1", + "xss-filters": "^1.2.6" } }, "component-bind": { @@ -834,7 +836,7 @@ "resolved": "https://registry.npmjs.org/component-clone/-/component-clone-0.2.2.tgz", "integrity": "sha1-x/WXmCKID62M+wliuikYbQYe4E8=", "requires": { - "component-type": "1.1.0" + "component-type": "*" } }, "component-emitter": { @@ -880,7 +882,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "requires": { - "mime-db": "1.36.0" + "mime-db": ">= 1.34.0 < 2" }, "dependencies": { "mime-db": { @@ -895,13 +897,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.14", + "compressible": "~2.0.14", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -925,10 +927,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config": { @@ -936,7 +938,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } }, "connect-history-api-fallback": { @@ -985,8 +987,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "create-react-class": { @@ -994,9 +996,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "cross-fetch": { @@ -1021,9 +1023,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto": { @@ -1041,8 +1043,8 @@ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", "requires": { - "hyphenate-style-name": "1.0.2", - "isobject": "3.0.1" + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -1068,7 +1070,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "optional": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -1081,7 +1083,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -1089,7 +1091,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dasherize": { @@ -1136,8 +1138,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -1146,12 +1148,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "optional": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -1193,8 +1195,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "optional": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-prefetch-control": { @@ -1208,7 +1210,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "optional": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -1217,7 +1219,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dompurify": { @@ -1241,8 +1243,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -1255,12 +1257,12 @@ "resolved": "https://registry.npmjs.org/elasticsearch/-/elasticsearch-13.3.1.tgz", "integrity": "sha1-xTCuqa+xfqkcPQpW8fERukm8kjk=", "requires": { - "agentkeepalive": "2.2.0", - "chalk": "1.1.3", + "agentkeepalive": "^2.2.0", + "chalk": "^1.0.0", "lodash": "2.4.2", - "lodash.get": "4.4.2", - "lodash.isempty": "4.4.0", - "lodash.trimend": "4.5.1" + "lodash.get": "^4.4.2", + "lodash.isempty": "^4.4.0", + "lodash.trimend": "^4.5.1" }, "dependencies": { "lodash": { @@ -1275,8 +1277,8 @@ "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-2.2.0.tgz", "integrity": "sha1-ulsj5KSwpFEPZS6HOxVOlAe2ygM=", "requires": { - "addressparser": "0.3.2", - "emailjs-mime-codec": "2.0.7" + "addressparser": "^0.3.2", + "emailjs-mime-codec": "^2.0.7" } }, "emailjs-base64": { @@ -1289,9 +1291,9 @@ "resolved": "https://registry.npmjs.org/emailjs-mime-codec/-/emailjs-mime-codec-2.0.7.tgz", "integrity": "sha512-Jeg3L2/39Bpi8bFfnVEPm1iGPSyYCrPmMkjhimmy9ao/PFtcXJaGcANQWvWciH+jUcOn5Pto+MMCYOI1h7pNxA==", "requires": { - "emailjs-base64": "1.1.4", - "ramda": "0.25.0", - "text-encoding": "0.6.4" + "emailjs-base64": "^1.1.4", + "ramda": "^0.25.0", + "text-encoding": "^0.6.4" } }, "emojis-list": { @@ -1314,7 +1316,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "engine.io": { @@ -1322,12 +1324,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -1337,14 +1339,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1354,10 +1356,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "entities": { @@ -1371,7 +1373,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "optional": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -1379,7 +1381,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -1387,11 +1389,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -1399,9 +1401,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -1409,9 +1411,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -1419,9 +1421,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-promise": { @@ -1434,8 +1436,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -1443,10 +1445,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -1465,44 +1467,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1517,7 +1519,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -1526,9 +1528,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -1543,7 +1545,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -1552,7 +1554,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1563,8 +1565,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1579,8 +1581,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -1594,7 +1596,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1603,7 +1605,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1628,8 +1630,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -1649,7 +1651,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "optional": true, "requires": { - "original": "1.0.1" + "original": ">=0.0.5" } }, "expand-brackets": { @@ -1657,7 +1659,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1665,7 +1667,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "expect": { @@ -1673,13 +1675,13 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "requires": { - "define-properties": "1.1.2", - "has": "1.0.3", - "is-equal": "1.5.5", - "is-regex": "1.0.4", - "object-inspect": "1.6.0", - "object-keys": "1.0.12", - "tmatch": "2.0.1" + "define-properties": "~1.1.2", + "has": "^1.0.1", + "is-equal": "^1.5.1", + "is-regex": "^1.0.3", + "object-inspect": "^1.1.0", + "object-keys": "^1.0.9", + "tmatch": "^2.0.1" } }, "expect-ct": { @@ -1692,36 +1694,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -1730,15 +1732,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -1783,7 +1785,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -1816,9 +1818,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1826,7 +1828,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -1849,7 +1851,7 @@ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.0.6.tgz", "integrity": "sha1-hv/4+GYjkaqBlyKGTWMuYD5u5gU=", "requires": { - "deep-equal": "1.0.1" + "deep-equal": "^1.0.1" } }, "fast-json-stable-stringify": { @@ -1869,7 +1871,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fbjs": { @@ -1877,13 +1879,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.18" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" }, "dependencies": { "core-js": { @@ -1898,13 +1900,13 @@ "resolved": "https://registry.npmjs.org/feathers/-/feathers-2.2.4.tgz", "integrity": "sha512-9IYKbxRKoDuerLCkYmFkQuKOwyB2SMM1kSUswDzlE0AmdzDrcfocVYb87/BsQx2j6hFkdCVFYkXq3+YPSDMT3w==", "requires": { - "babel-runtime": "6.26.0", - "debug": "3.1.0", - "events": "1.1.1", - "express": "4.16.3", - "feathers-commons": "0.8.7", - "rubberduck": "1.1.1", - "uberproto": "1.2.0" + "babel-runtime": "^6.26.0", + "debug": "^3.1.0", + "events": "^1.1.1", + "express": "^4.16.1", + "feathers-commons": "^0.8.7", + "rubberduck": "^1.1.1", + "uberproto": "^1.2.0" }, "dependencies": { "events": { @@ -1924,8 +1926,8 @@ "resolved": "https://registry.npmjs.org/feathers-configuration/-/feathers-configuration-0.4.2.tgz", "integrity": "sha512-T+lqgSRGnYhB/+pedL4xkZ3z7SYGtsrlX9uImkyxMCLLKWOuGPkkqyT9sy09isOMU9I2MZpmJCzQxZ1y8f6TUA==", "requires": { - "config": "1.31.0", - "debug": "3.1.0" + "config": "^1.21.0", + "debug": "^3.0.1" }, "dependencies": { "config": { @@ -1933,7 +1935,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz", "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } } } @@ -1943,7 +1945,7 @@ "resolved": "https://registry.npmjs.org/feathers-errors/-/feathers-errors-2.9.2.tgz", "integrity": "sha512-qwIX97bNW7+1tWVG073+omUA0rCYKJtTtwuzTrrvfrtdr8J8Dk1Fy4iaV9Fa6/YBD5AZu0lsplPE0iu4u/d4GQ==", "requires": { - "debug": "3.1.0" + "debug": "^3.0.0" } }, "feathers-hooks": { @@ -1951,8 +1953,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-2.1.2.tgz", "integrity": "sha512-XQKhbo4d4TuXyco+tbHmKn5wo8QhdSNslJ/+zckNYfUzLmrN8L3uB4Utf0/ivcgwWxJtS1kVhEETBN4TDxuWFg==", "requires": { - "feathers-commons": "0.8.7", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -1960,11 +1962,11 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-3.10.0.tgz", "integrity": "sha512-xuyTH69e0bs9r7ntQJiayBy8uC47mbGXeAsO7nkMXLGn+nYhjuw6z/ekQywnY+DeqvRWAgmy+LC4SzieIjIUiw==", "requires": { - "ajv": "5.5.2", - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "feathers-hooks": "2.1.2", - "traverse": "0.6.6" + "ajv": "^5.2.0", + "debug": "^3.0.0", + "feathers-errors": "^2.4.0", + "feathers-hooks": "^2.0.1", + "traverse": "^0.6.6" } }, "feathers-mongodb": { @@ -1972,12 +1974,12 @@ "resolved": "https://registry.npmjs.org/feathers-mongodb/-/feathers-mongodb-2.9.1.tgz", "integrity": "sha512-PpG0Xdo3/3yvGiE42aLUXYWmwF/TViaYFOkriuk0k1MaM4aztZO5tlmbQlvV03QH7VO6svaWJhZWRx5n9Uejqg==", "requires": { - "babel-polyfill": "6.26.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-query-filters": "2.1.2", - "lodash.omit": "4.5.0", - "uberproto": "1.2.0" + "babel-polyfill": "^6.7.4", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.1", + "feathers-query-filters": "^2.0.0", + "lodash.omit": "^4.3.0", + "uberproto": "^1.2.0" } }, "feathers-query-filters": { @@ -1985,7 +1987,7 @@ "resolved": "https://registry.npmjs.org/feathers-query-filters/-/feathers-query-filters-2.1.2.tgz", "integrity": "sha1-zbGCJNteGcwBQNUoEI4JCNXrBlQ=", "requires": { - "feathers-commons": "0.8.7" + "feathers-commons": "^0.8.0" } }, "feathers-rest": { @@ -1993,10 +1995,10 @@ "resolved": "https://registry.npmjs.org/feathers-rest/-/feathers-rest-1.8.1.tgz", "integrity": "sha512-FYVcBQLGocSdpjxEf+E/9Cb0QAX0S+biqRgB5KAGpoAF51cou9LV0WW1IwqwHzAT67KRyS4dT7fVCrE4kisM2w==", "requires": { - "debug": "3.1.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "qs": "6.5.2" + "debug": "^3.0.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.0.1", + "qs": "^6.4.0" } }, "feathers-rethinkdb": { @@ -2004,12 +2006,12 @@ "resolved": "https://registry.npmjs.org/feathers-rethinkdb/-/feathers-rethinkdb-0.4.3.tgz", "integrity": "sha1-GBpxVdgpvYsUJRRyYL8BywPcK6I=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-hooks": "1.8.1", - "feathers-query-filters": "2.1.2", - "uberproto": "1.2.0" + "debug": "^2.2.0", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.2", + "feathers-hooks": "^1.8.1", + "feathers-query-filters": "^2.0.0", + "uberproto": "^1.2.0" }, "dependencies": { "debug": { @@ -2025,9 +2027,9 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-1.8.1.tgz", "integrity": "sha1-y6DEbzCc1uNo+utJV6LeydfyiY8=", "requires": { - "feathers-commons": "0.8.7", - "feathers-hooks-common": "2.0.3", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "feathers-hooks-common": "^2.0.3", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -2035,8 +2037,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-2.0.3.tgz", "integrity": "sha1-6fEqvr28Fj8o1MtMhQlOKaokY10=", "requires": { - "debug": "2.6.9", - "feathers-errors": "2.9.2", + "debug": "^2.2.0", + "feathers-errors": "^2.4.0", "traverse": "0.6.6" } } @@ -2047,9 +2049,9 @@ "resolved": "https://registry.npmjs.org/feathers-socket-commons/-/feathers-socket-commons-2.4.0.tgz", "integrity": "sha1-Bi79V/mocWZEFFuZOl9ycJlp8eE=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2" + "debug": "^2.2.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.2.0" }, "dependencies": { "debug": { @@ -2067,11 +2069,11 @@ "resolved": "https://registry.npmjs.org/feathers-socketio/-/feathers-socketio-2.0.1.tgz", "integrity": "sha512-3ByXVr6UGyGN6TPRN+U5IhENYrSgeuADhbKWLG5cq2WvYH9h2N1l3cj7WBVsfRektUgVw/HkGNAoExy8yuknMA==", "requires": { - "@types/socket.io": "1.4.37", - "debug": "3.1.0", - "feathers-socket-commons": "2.4.0", - "socket.io": "2.1.1", - "uberproto": "1.2.0" + "@types/socket.io": "~1.4.27", + "debug": "^3.0.0", + "feathers-socket-commons": "^2.0.0", + "socket.io": "^2.0.1", + "uberproto": "^1.2.0" } }, "feathers-swagger": { @@ -2079,11 +2081,11 @@ "resolved": "https://registry.npmjs.org/feathers-swagger/-/feathers-swagger-0.5.1.tgz", "integrity": "sha512-2lv9nNTb5lIljQ3Dgy0IgUWTyrGT+pXFg7mYffKtETQtL0QzUvq4xjuhVfeAFUUdvXRjITUu0BQM303qiGYTDg==", "requires": { - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "serve-static": "1.13.2", - "swagger-ui": "3.17.1", - "swagger-ui-dist": "3.17.1" + "debug": "^3.1.0", + "feathers-errors": "^2.5.0", + "serve-static": "^1.12.4", + "swagger-ui": "^3.2.0", + "swagger-ui-dist": "^3.2.0" } }, "fibers": { @@ -2097,7 +2099,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2106,8 +2108,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2120,11 +2122,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -2133,12 +2135,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -2161,8 +2163,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "flat-cache": { @@ -2171,10 +2173,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" }, "dependencies": { "del": { @@ -2183,13 +2185,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -2198,12 +2200,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -2219,8 +2221,8 @@ "resolved": "https://registry.npmjs.org/flowz-error-handler/-/flowz-error-handler-0.0.3.tgz", "integrity": "sha512-bc/qmTTAKUiTUP9sEtYnrv7CZZ+BIhdm88CKmAWhN1PeGbOoQNicIG+23Bg1G28pHrIoJ93z0NiGIk/CxQOZ2Q==", "requires": { - "feathers-errors": "2.9.2", - "jsonfile": "4.0.0" + "feathers-errors": "^2.9.2", + "jsonfile": "^4.0.0" }, "dependencies": { "jsonfile": { @@ -2228,18 +2230,18 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } }, "flowz-subscription": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.7.tgz", - "integrity": "sha512-+5XSZfdr/w2ieWm2TpmuI3gvGcVGKqiXEtInscy22TCyI8I0aT2+8vcRFkpUZe4jcYMKY3ke0Q/LrAL8n0+Lwg==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.9.tgz", + "integrity": "sha512-0XZyfs6emHUS8vXGIP/dVcF9elZIVA7oxXYgOn+bRA7U2mfTA+JSD0Zu3WZEeZw7ciIRXh4PFG+JKC4jgQ1D+w==", "requires": { - "request": "2.88.0", - "request-promise": "4.2.2" + "request": "^2.83.0", + "request-promise": "^4.2.2" } }, "follow-redirects": { @@ -2247,7 +2249,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -2260,7 +2262,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2278,9 +2280,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2308,6 +2310,468 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2332,7 +2796,7 @@ "requires": { "is-node": "0.0.0", "jsonp": "0.0.4", - "phin": "2.9.0" + "phin": "^2.2.6" } }, "get-stdin": { @@ -2351,7 +2815,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2359,12 +2823,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -2372,8 +2836,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2381,7 +2845,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2396,11 +2860,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "optional": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2444,8 +2908,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -2453,7 +2917,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -2461,7 +2925,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -2557,10 +3021,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "optional": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "hpkp": { @@ -2590,10 +3054,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { @@ -2607,9 +3071,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "optional": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -2618,10 +3082,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "optional": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.10", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -2636,7 +3100,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "optional": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2646,9 +3110,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hyphenate-style-name": { @@ -2661,7 +3125,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -2702,7 +3166,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "optional": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -2715,8 +3179,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2729,8 +3193,8 @@ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", "requires": { - "bowser": "1.9.3", - "css-in-js-utils": "2.0.1" + "bowser": "^1.7.3", + "css-in-js-utils": "^2.0.0" } }, "inquirer": { @@ -2739,20 +3203,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2767,7 +3231,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -2776,9 +3240,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -2799,8 +3263,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -2809,7 +3273,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -2818,7 +3282,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2829,7 +3293,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "optional": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "invariant": { @@ -2837,7 +3301,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2867,7 +3331,7 @@ "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "requires": { - "is-callable": "1.1.3" + "is-callable": "^1.0.4" } }, "is-binary-path": { @@ -2875,7 +3339,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-boolean-object": { @@ -2893,7 +3357,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -2916,17 +3380,17 @@ "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "requires": { - "has": "1.0.3", - "is-arrow-function": "2.0.3", - "is-boolean-object": "1.0.0", - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-generator-function": "1.0.7", - "is-number-object": "1.0.3", - "is-regex": "1.0.4", - "is-string": "1.0.4", - "is-symbol": "1.0.1", - "object.entries": "1.0.4" + "has": "^1.0.1", + "is-arrow-function": "^2.0.3", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.3", + "is-date-object": "^1.0.1", + "is-generator-function": "^1.0.6", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.1", + "object.entries": "^1.0.4" } }, "is-equal-shallow": { @@ -2934,7 +3398,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2953,7 +3417,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -2961,7 +3425,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-generator-function": { @@ -2974,7 +3438,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-node": { @@ -2987,7 +3451,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-number-object": { @@ -3005,7 +3469,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -3013,7 +3477,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -3036,7 +3500,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3094,8 +3558,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "0.11.1" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isomorphic-form-data": { @@ -3103,7 +3567,7 @@ "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", "requires": { - "form-data": "1.0.1" + "form-data": "^1.0.0-rc3" }, "dependencies": { "form-data": { @@ -3111,9 +3575,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "2.6.1", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } } } @@ -3138,8 +3602,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -3179,7 +3643,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "jsonfile": { @@ -3187,7 +3651,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonp": { @@ -3195,7 +3659,7 @@ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=", "requires": { - "debug": "3.1.0" + "debug": "*" } }, "jsprim": { @@ -3219,7 +3683,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3228,7 +3692,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "optional": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -3237,8 +3701,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lie": { @@ -3246,7 +3710,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } }, "load-json-file": { @@ -3254,11 +3718,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -3273,10 +3737,10 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" }, "dependencies": { "json5": { @@ -3299,7 +3763,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } } } @@ -3320,8 +3784,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -3358,9 +3822,9 @@ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.debounce": { @@ -3398,9 +3862,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.omit": { @@ -3418,7 +3882,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -3427,8 +3891,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "optional": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -3437,8 +3901,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "lru-queue": { @@ -3446,7 +3910,7 @@ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "~0.10.2" } }, "map-obj": { @@ -3459,7 +3923,7 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", "integrity": "sha1-7yDL3mTCTFDMYa9bg+4LG4/wAQE=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -3482,14 +3946,14 @@ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.1.tgz", "integrity": "sha1-aT9TgM2ASjmR662gAXnGtWWjr6s=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-weak-map": "2.0.2", - "event-emitter": "0.3.5", - "is-promise": "2.1.0", - "lru-queue": "0.1.0", - "next-tick": "1.0.0", - "timers-ext": "0.1.5" + "d": "1", + "es5-ext": "^0.10.12", + "es6-weak-map": "^2.0.1", + "event-emitter": "^0.3.4", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "0.1" } }, "memory-fs": { @@ -3498,8 +3962,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "optional": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -3508,16 +3972,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "optional": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "merge-descriptors": { @@ -3535,19 +3999,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -3565,7 +4029,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -3584,7 +4048,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3642,12 +4106,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "supports-color": { @@ -3656,7 +4120,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3686,13 +4150,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3700,7 +4164,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3710,8 +4174,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "mongoose": { @@ -3720,7 +4184,7 @@ "integrity": "sha512-VGeSP5O3k9HUXsNm9AocdAlVbfaHV/RHgHc8Jfvwr0D0ZyzgJ3JJ+MKSmz+omicNOhBsmpBEL1zVHM2uIj8tDQ==", "requires": { "async": "2.6.0", - "bson": "1.0.9", + "bson": "~1.0.4", "hooks-fixed": "2.0.2", "kareem": "1.5.0", "lodash.get": "4.4.2", @@ -3739,7 +4203,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.14.0" } }, "mongodb": { @@ -3757,8 +4221,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "process-nextick-args": { @@ -3771,13 +4235,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3785,7 +4249,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3842,8 +4306,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "optional": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -3863,6 +4327,12 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "optional": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3876,9 +4346,9 @@ "requires": { "async": "0.2.10", "binary-search-tree": "0.2.5", - "localforage": "1.7.2", - "mkdirp": "0.5.1", - "underscore": "1.4.4" + "localforage": "^1.3.0", + "mkdirp": "~0.5.1", + "underscore": "~1.4.4" }, "dependencies": { "async": { @@ -3898,8 +4368,8 @@ "resolved": "https://registry.npmjs.org/nedb-promise/-/nedb-promise-2.0.1.tgz", "integrity": "sha1-g5suSQlxb99pUAt/aLK4ciWCzWU=", "requires": { - "nedb": "1.8.0", - "thenify": "3.3.0" + "nedb": "^1.8.0", + "thenify": "^3.2.0" } }, "negotiator": { @@ -3922,8 +4392,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -3937,10 +4407,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -3948,7 +4418,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "number-is-nan": { @@ -3986,10 +4456,10 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "object.omit": { @@ -3997,8 +4467,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "obuf": { @@ -4024,7 +4494,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -4033,7 +4503,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -4042,8 +4512,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "optional": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } }, "optionator": { @@ -4052,12 +4522,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "original": { @@ -4066,7 +4536,7 @@ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "optional": true, "requires": { - "url-parse": "1.4.1" + "url-parse": "~1.4.0" } }, "os-locale": { @@ -4075,7 +4545,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "optional": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -4095,10 +4565,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -4106,7 +4576,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -4114,7 +4584,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -4122,7 +4592,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -4140,8 +4610,8 @@ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "requires": { - "process": "0.11.10", - "util": "0.10.4" + "process": "^0.11.1", + "util": "^0.10.3" } }, "path-exists": { @@ -4149,7 +4619,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -4172,9 +4642,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -4210,7 +4680,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "platform": { @@ -4230,9 +4700,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "optional": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -4284,7 +4754,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-worker": { @@ -4292,8 +4762,8 @@ "resolved": "https://registry.npmjs.org/promise-worker/-/promise-worker-1.1.1.tgz", "integrity": "sha1-wrddBF0kliXAImTi3/mtIuAxxps=", "requires": { - "is-promise": "2.1.0", - "lie": "3.3.0" + "is-promise": "^2.1.0", + "lie": "^3.0.2" } }, "prop-types": { @@ -4301,8 +4771,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "proxy-addr": { @@ -4310,7 +4780,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -4366,7 +4836,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" }, "dependencies": { "performance-now": { @@ -4386,9 +4856,9 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -4424,11 +4894,11 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-addons-perf": { @@ -4436,8 +4906,8 @@ "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz", "integrity": "sha1-EQvc9cRZxPd8uF7WNLzTOXU2ODs=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.4", + "object-assign": "^4.1.0" } }, "react-addons-shallow-compare": { @@ -4455,7 +4925,7 @@ "resolved": "https://registry.npmjs.org/react-collapse/-/react-collapse-4.0.3.tgz", "integrity": "sha512-OO4NhtEqFtz+1ma31J1B7+ezdRnzHCZiTGSSd/Pxoks9hxrZYhzFEddeYt05A/1477xTtdrwo7xEa2FLJyWGCQ==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.8" } }, "react-debounce-input": { @@ -4463,8 +4933,8 @@ "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.0.tgz", "integrity": "sha1-aXjGBh2Jj1SfQEF/sNLrvs9Qqqo=", "requires": { - "lodash.debounce": "4.0.8", - "prop-types": "15.6.2" + "lodash.debounce": "^4", + "prop-types": "^15" } }, "react-dom": { @@ -4472,10 +4942,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-height": { @@ -4492,8 +4962,8 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.2.tgz", "integrity": "sha1-aodYNI32YLiDJqDnZNVp8nSq1oE=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "object-assign": "^4.1.1" } }, "prop-types": { @@ -4501,7 +4971,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "0.8.17" + "fbjs": "^0.8.9" } } } @@ -4516,8 +4986,8 @@ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", "requires": { - "react-hot-api": "0.4.7", - "source-map": "0.4.4" + "react-hot-api": "^0.4.5", + "source-map": "^0.4.4" } }, "react-immutable-proptypes": { @@ -4535,9 +5005,9 @@ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.5.1.tgz", "integrity": "sha512-N5xMde42RrclLIdF16bckTApFM56vkn4q3GoZlLkuE8IK23GOIqJsuE62RTrkgq//pAt4dovVgZcgawh7YtN4w==", "requires": { - "commonmark": "0.24.0", - "commonmark-react-renderer": "4.3.4", - "prop-types": "15.6.2" + "commonmark": "^0.24.0", + "commonmark-react-renderer": "^4.3.4", + "prop-types": "^15.5.1" }, "dependencies": { "commonmark": { @@ -4545,9 +5015,9 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.24.0.tgz", "integrity": "sha1-uA3gGCxUY1VkOqFdsSv7KCNoJ48=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "string.prototype.repeat": "^0.2.0" } } } @@ -4557,9 +5027,9 @@ "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", "requires": { - "performance-now": "0.2.0", - "prop-types": "15.6.2", - "raf": "3.4.0" + "performance-now": "^0.2.0", + "prop-types": "^15.5.8", + "raf": "^3.1.0" } }, "react-object-inspector": { @@ -4572,12 +5042,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz", "integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==", "requires": { - "create-react-class": "15.6.3", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "lodash": "4.17.10", - "loose-envify": "1.3.1", - "prop-types": "15.6.2" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" } }, "react-split-pane": { @@ -4585,11 +5055,11 @@ "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.70.tgz", "integrity": "sha512-vXLE4gTI9gTFXEaX2pKKyZilwDsxGVmAQi7yombplzzj2oBY/fmd3o4DlNSMN43m9XchtStcWri9mOrBx3yMiQ==", "requires": { - "@types/inline-style-prefixer": "3.0.1", - "@types/react": "16.4.1", - "inline-style-prefixer": "3.0.8", - "prop-types": "15.6.2", - "react-style-proptype": "3.2.1" + "@types/inline-style-prefixer": "^3.0.0", + "@types/react": "^16.0.18", + "inline-style-prefixer": "^3.0.6", + "prop-types": "^15.5.10", + "react-style-proptype": "^3.0.0" } }, "react-style-proptype": { @@ -4597,7 +5067,7 @@ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.4" } }, "read-pkg": { @@ -4605,9 +5075,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -4615,8 +5085,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -4624,13 +5094,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -4638,10 +5108,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -4650,8 +5120,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "optional": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redux": { @@ -4659,10 +5129,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.10", - "lodash-es": "4.17.10", - "loose-envify": "1.3.1", - "symbol-observable": "1.2.0" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "redux-immutable": { @@ -4670,7 +5140,7 @@ "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.0.8.tgz", "integrity": "sha1-31pdYByIInujj0dM+C99AOVvjBQ=", "requires": { - "immutable": "3.8.2" + "immutable": "^3.7.6" } }, "redux-logger": { @@ -4678,7 +5148,7 @@ "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", "requires": { - "deep-diff": "0.3.8" + "deep-diff": "^0.3.5" } }, "referrer-policy": { @@ -4696,7 +5166,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexp-clone": { @@ -4715,8 +5185,8 @@ "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", "requires": { - "argparse": "0.1.16", - "autolinker": "0.15.3" + "argparse": "~0.1.15", + "autolinker": "~0.15.0" }, "dependencies": { "argparse": { @@ -4724,8 +5194,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" } } } @@ -4751,7 +5221,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "optional": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -4759,26 +5229,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "mime-db": { @@ -4791,7 +5261,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "performance-now": { @@ -4809,8 +5279,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "uuid": { @@ -4825,10 +5295,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -4836,7 +5306,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "require-directory": { @@ -4857,8 +5327,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -4874,8 +5344,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.5.0" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "requires-port": { @@ -4899,8 +5369,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "rethinkdb": { @@ -4908,7 +5378,7 @@ "resolved": "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.3.tgz", "integrity": "sha1-PcZYbiL6HavuDSVOZL0ON5+tL3I=", "requires": { - "bluebird": "2.11.0" + "bluebird": ">= 2.3.2 < 3" }, "dependencies": { "bluebird": { @@ -4923,11 +5393,11 @@ "resolved": "https://registry.npmjs.org/rethinkdb-job-queue/-/rethinkdb-job-queue-3.1.7.tgz", "integrity": "sha512-/mb6AnUtomLCCEqZ3Z2L+PM8Bclx8n5h3oRb9rIjHps5GFO4ch7Gps1qJXpvOda7D+bX0c+6yZVuGQmBW8Ef8Q==", "requires": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "rethinkdbdash": "2.3.31", - "serialize-error": "2.1.0", - "uuid": "3.2.1" + "bluebird": "^3.5.1", + "debug": "^3.1.0", + "rethinkdbdash": "^2.3.31", + "serialize-error": "^2.1.0", + "uuid": "^3.2.1" }, "dependencies": { "serialize-error": { @@ -4947,7 +5417,7 @@ "resolved": "https://registry.npmjs.org/rethinkdbdash/-/rethinkdbdash-2.3.31.tgz", "integrity": "sha512-6nXrKFjdg2Ug0YpdmPWSvyD/2EisHnFNt4FWZ74dcXGK48ievSv+cNFTmVv+KjLi6I9CCf6w4CKZ6yCYTfMfdQ==", "requires": { - "bluebird": "3.5.1" + "bluebird": ">= 3.0.1" } }, "rimraf": { @@ -4955,7 +5425,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rubberduck": { @@ -4969,7 +5439,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -4984,7 +5454,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -5040,18 +5510,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -5079,10 +5549,10 @@ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "requires": { - "etag": "1.8.1", + "etag": "~1.8.1", "fresh": "0.5.2", "ms": "2.1.1", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "safe-buffer": "5.1.1" }, "dependencies": { @@ -5104,13 +5574,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "optional": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { @@ -5129,9 +5599,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -5161,7 +5631,7 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", "requires": { - "lodash.keys": "3.1.2" + "lodash.keys": "^3.1.2" } }, "shebang-command": { @@ -5170,7 +5640,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -5190,7 +5660,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -5211,12 +5681,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -5233,15 +5703,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -5251,7 +5721,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -5268,8 +5738,8 @@ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "optional": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" } }, "sockjs-client": { @@ -5278,12 +5748,12 @@ "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", "optional": true, "requires": { - "debug": "2.6.9", + "debug": "^2.2.0", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.1" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.1" }, "dependencies": { "debug": { @@ -5301,7 +5771,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -5311,7 +5781,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "spdx-correct": { @@ -5319,8 +5789,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -5333,8 +5803,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -5348,12 +5818,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "optional": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -5373,13 +5843,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "optional": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -5403,15 +5873,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -5434,9 +5904,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.repeat": { @@ -5449,7 +5919,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -5457,7 +5927,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5465,7 +5935,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -5474,7 +5944,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "optional": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -5493,23 +5963,23 @@ "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.8.6.tgz", "integrity": "sha1-TxiDhEkYwNEjgC1bThBp/jRCUlQ=", "requires": { - "@kyleshockey/object-assign-deep": "0.4.2", - "babel-runtime": "6.26.0", + "@kyleshockey/object-assign-deep": "^0.4.0", + "babel-runtime": "^6.23.0", "btoa": "1.1.2", - "buffer": "5.1.0", - "cookie": "0.3.1", + "buffer": "^5.1.0", + "cookie": "^0.3.1", "cross-fetch": "0.0.8", - "deep-extend": "0.5.1", - "encode-3986": "1.0.0", - "fast-json-patch": "2.0.6", + "deep-extend": "^0.5.1", + "encode-3986": "^1.0.0", + "fast-json-patch": "^2.0.6", "isomorphic-form-data": "0.0.1", - "js-yaml": "3.12.0", - "lodash": "4.17.10", - "qs": "6.5.2", - "querystring-browser": "1.0.4", - "url": "0.11.0", + "js-yaml": "^3.8.1", + "lodash": "^4.16.2", + "qs": "^6.3.0", + "querystring-browser": "^1.0.4", + "url": "^0.11.0", "utf8-bytes": "0.0.1", - "utfstring": "2.0.0" + "utfstring": "^2.0.0" } }, "swagger-ui": { @@ -5517,57 +5987,57 @@ "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-3.17.1.tgz", "integrity": "sha1-XXwxckK4VvOO3c1f8sMKtO24jpQ=", "requires": { - "@braintree/sanitize-url": "2.1.0", - "base64-js": "1.3.0", + "@braintree/sanitize-url": "^2.0.2", + "base64-js": "^1.2.0", "brace": "0.7.0", - "classnames": "2.2.6", - "commonmark": "0.28.1", - "core-js": "2.5.7", + "classnames": "^2.2.5", + "commonmark": "^0.28.1", + "core-js": "^2.5.1", "css.escape": "1.5.1", "deep-extend": "0.5.1", - "dompurify": "1.0.5", + "dompurify": "^1.0.4", "expect": "1.20.2", - "getbase": "2.8.2", - "ieee754": "1.1.12", - "immutable": "3.8.2", - "js-file-download": "0.4.1", - "js-yaml": "3.12.0", + "getbase": "^2.8.2", + "ieee754": "^1.1.8", + "immutable": "^3.x.x", + "js-file-download": "^0.4.1", + "js-yaml": "^3.5.5", "lodash": "4.17.5", - "matcher": "0.1.2", + "matcher": "^0.1.2", "memoizee": "0.4.1", - "promise-worker": "1.1.1", - "prop-types": "15.6.2", - "react": "15.6.2", - "react-addons-perf": "15.4.2", + "promise-worker": "^1.1.1", + "prop-types": "^15.5.10", + "react": "^15.6.2", + "react-addons-perf": "^15.4.0", "react-addons-shallow-compare": "0.14.8", - "react-addons-test-utils": "15.6.2", - "react-collapse": "4.0.3", - "react-debounce-input": "3.2.0", - "react-dom": "15.6.2", - "react-height": "2.2.1", + "react-addons-test-utils": "^15.6.2", + "react-collapse": "^4.0.3", + "react-debounce-input": "^3.2.0", + "react-dom": "^15.6.2", + "react-height": "^2.0.0", "react-hot-loader": "1.3.1", "react-immutable-proptypes": "2.1.0", - "react-immutable-pure-component": "1.2.0", - "react-markdown": "2.5.1", - "react-motion": "0.5.2", + "react-immutable-pure-component": "^1.1.1", + "react-markdown": "^2.5.0", + "react-motion": "^0.5.2", "react-object-inspector": "0.2.1", - "react-redux": "4.4.9", + "react-redux": "^4.x.x", "react-split-pane": "0.1.70", - "redux": "3.7.2", + "redux": "^3.x.x", "redux-immutable": "3.0.8", - "redux-logger": "3.0.6", - "remarkable": "1.7.1", + "redux-logger": "*", + "remarkable": "^1.7.1", "reselect": "2.5.3", - "scroll-to-element": "2.0.0", + "scroll-to-element": "^2.0.0", "serialize-error": "2.0.0", "shallowequal": "0.2.2", - "swagger-client": "3.8.6", - "url-parse": "1.4.1", + "swagger-client": "^3.8.5", + "url-parse": "^1.1.8", "webpack-dev-server": "2.5.0", "whatwg-fetch": "0.11.1", - "worker-loader": "0.7.1", + "worker-loader": "^0.7.1", "xml": "1.0.1", - "xml-but-prettier": "1.0.1", + "xml-but-prettier": "^1.0.1", "yaml-js": "0.2.0", "zenscroll": "4.0.1" }, @@ -5595,12 +6065,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -5615,7 +6085,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5624,9 +6094,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -5647,8 +6117,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -5657,7 +6127,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -5666,7 +6136,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5687,7 +6157,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.0.0" } }, "through": { @@ -5713,8 +6183,8 @@ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", "requires": { - "es5-ext": "0.10.45", - "next-tick": "1.0.0" + "es5-ext": "~0.10.14", + "next-tick": "1" } }, "tmatch": { @@ -5728,7 +6198,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -5741,7 +6211,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -5767,7 +6237,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -5782,7 +6252,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -5791,7 +6261,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -5844,8 +6314,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "utf8-bytes": { @@ -5892,8 +6362,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -5906,9 +6376,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "w3c-blob": { @@ -5921,7 +6391,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webpack-dev-middleware": { @@ -5930,11 +6400,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "optional": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" }, "dependencies": { "mime": { @@ -5952,26 +6422,26 @@ "optional": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "internal-ip": "1.2.0", + "bonjour": "^3.5.0", + "chokidar": "^1.6.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "del": "^3.0.0", + "express": "^4.13.3", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "internal-ip": "^1.2.0", "opn": "4.0.2", - "portfinder": "1.0.13", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.18", "sockjs-client": "1.1.2", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "3.2.3", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^3.1.1", + "webpack-dev-middleware": "^1.10.2", + "yargs": "^6.0.0" }, "dependencies": { "supports-color": { @@ -5980,7 +6450,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "optional": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5990,8 +6460,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -6010,7 +6480,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6024,12 +6494,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz", "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -6050,7 +6520,7 @@ "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-0.7.1.tgz", "integrity": "sha1-kf/S4vv3aSGkPoyjdm0S6VN/XXA=", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "0.2.x" } }, "wrap-ansi": { @@ -6059,8 +6529,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -6074,7 +6544,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -6082,9 +6552,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "x-xss-protection": { @@ -6102,7 +6572,7 @@ "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", "requires": { - "repeat-string": "1.6.1" + "repeat-string": "^1.5.2" } }, "xmlhttprequest-ssl": { @@ -6138,19 +6608,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "optional": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" }, "dependencies": { "camelcase": { @@ -6167,7 +6637,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "optional": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/service/package.json b/service/package.json index ab65408..b9978c5 100644 --- a/service/package.json +++ b/service/package.json @@ -55,7 +55,7 @@ "feathers-swagger": "^0.5.0", "fibers": "^2.0.0", "flowz-error-handler": "0.0.3", - "flowz-subscription": "^0.2.7", + "flowz-subscription": "^0.2.9", "form-data": "^2.3.2", "fs": "0.0.1-security", "get-json": "^1.0.0", From ac4cd43519e739e1ebc04e878721e4fde20e806c Mon Sep 17 00:00:00 2001 From: chirag Date: Tue, 11 Sep 2018 13:44:28 +0530 Subject: [PATCH 52/92] resolve user login issue --- client/src/pages/Login.vue | 1 - client/src/store/actions.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f5d8b05..75659e4 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -160,7 +160,6 @@ export default { location = location.domain === null ? location.input : location.domain this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie let userData = await this.$store.dispatch('authenticate', auth.logintoken) - this.$store.commit('SET_ROLE', 2) if (userData.hasOwnProperty('package')) { if (this.$store.state.subscription !== '' && this.$store.state.subscription !== undefined) { diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 9ea316d..62b66a2 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -63,7 +63,7 @@ export default { }, authenticate ({ commit }, authToken) { let userData = commit('GET_USER') - if (!userData) { + if (userData !== undefined) { return userData } return axios({ From 3e288cd106f0bdf41454e844c69f4004dc23ab4e Mon Sep 17 00:00:00 2001 From: nikitam Date: Tue, 11 Sep 2018 13:49:59 +0530 Subject: [PATCH 53/92] resolve-eslint-error --- client/src/pages/Login.vue | 9 +- client/src/pages/flow/instance/New.vue | 415 ------------------ .../pages/flow/instance/formdata-expand.vue | 38 -- client/src/pages/schema/expandInstance.vue | 45 -- client/src/store/actions.js | 7 - 5 files changed, 4 insertions(+), 510 deletions(-) delete mode 100644 client/src/pages/flow/instance/New.vue delete mode 100644 client/src/pages/flow/instance/formdata-expand.vue delete mode 100644 client/src/pages/schema/expandInstance.vue diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index e505e9a..4f8217a 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -150,11 +150,10 @@ export default { return }) if (auth) { - this.$store.commit('SET_TOKEN', auth.logintoken) - // Token Store in cookie - let location = psl.parse(window.location.hostname) // get parent domain - location = location.domain === null ? location.input : location.domain - this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie + this.$store.commit('SET_TOKEN', auth.logintoken) // Token Store in cookie + let location = psl.parse(window.location.hostname) // get parent domain + location = location.domain === null ? location.input : location.domain + this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie let userData = await this.$store.dispatch('authenticate', auth.logintoken) this.$store.commit('SET_ROLE', 2) if (userData.hasOwnProperty('package')) { diff --git a/client/src/pages/flow/instance/New.vue b/client/src/pages/flow/instance/New.vue deleted file mode 100644 index c993d87..0000000 --- a/client/src/pages/flow/instance/New.vue +++ /dev/null @@ -1,415 +0,0 @@ - - - diff --git a/client/src/pages/flow/instance/formdata-expand.vue b/client/src/pages/flow/instance/formdata-expand.vue deleted file mode 100644 index 50cebb9..0000000 --- a/client/src/pages/flow/instance/formdata-expand.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/client/src/pages/schema/expandInstance.vue b/client/src/pages/schema/expandInstance.vue deleted file mode 100644 index 064306c..0000000 --- a/client/src/pages/schema/expandInstance.vue +++ /dev/null @@ -1,45 +0,0 @@ - - \ No newline at end of file diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 14ebe13..46cbe1c 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -64,12 +64,5 @@ export default { .then(response => { return response.data.status }) - }, - getUser ({ commit }, email) { - return modelUser.getByParam(email).then((response) => { - if (response && response.data.data.length > 0) { - return response.data.data[0] - } - }) } } From 8c40482a4d88a82f5f9f38e33133939039c5e100 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Tue, 11 Sep 2018 14:22:12 +0530 Subject: [PATCH 54/92] Permissions error fixes --- client/src/pages/flow/List.vue | 70 ++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index bf8d4bb..8c128fe 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -32,10 +32,14 @@