Merge branch 'master' into test
gitea/salix/test There was a failure building this commit Details

This commit is contained in:
Juan Ferrer 2019-06-11 15:52:12 +02:00
commit a8fa9b14c0
56 changed files with 336 additions and 278 deletions

View File

@ -33,4 +33,5 @@ COPY \
README.md \ README.md \
./ ./
ENV DEBUG=strong-remoting:shared-method
CMD ["pm2-docker", "./loopback/server/server.js"] CMD ["pm2-docker", "./loopback/server/server.js"]

View File

@ -87,11 +87,11 @@ xdescribe('Client balance path', () => {
expect(result).toContain('Data saved!'); expect(result).toContain('Data saved!');
}); });
it('should check balance is now 100', async() => { it('should check balance is now -100', async() => {
let result = await nightmare let result = await nightmare
.waitToGetProperty(selectors.clientBalance.firstBalanceLine, 'innerText'); .waitToGetProperty(selectors.clientBalance.firstBalanceLine, 'innerText');
expect(result).toContain('100.00'); expect(result).toContain('-€100.00');
}); });
it('should again click the new payment button', async() => { it('should again click the new payment button', async() => {
@ -107,18 +107,17 @@ xdescribe('Client balance path', () => {
let result = await nightmare let result = await nightmare
.clearInput(selectors.clientBalance.newPaymentAmountInput) .clearInput(selectors.clientBalance.newPaymentAmountInput)
.write(selectors.clientBalance.newPaymentAmountInput, '-150') .write(selectors.clientBalance.newPaymentAmountInput, '-150')
.wait(1999)
.waitToClick(selectors.clientBalance.saveButton) .waitToClick(selectors.clientBalance.saveButton)
.waitForLastSnackbar(); .waitForLastSnackbar();
expect(result).toContain('Data saved!'); expect(result).toContain('Data saved!');
}); });
it('should check balance is now -50', async() => { it('should check balance is now 50', async() => {
let result = await nightmare let result = await nightmare
.waitToGetProperty(selectors.clientBalance.firstBalanceLine, 'innerText'); .waitToGetProperty(selectors.clientBalance.firstBalanceLine, 'innerText');
expect(result).toContain('50.00'); expect(result).toContain('50');
}); });
it('should now click on the Clients button of the top bar menu', async() => { it('should now click on the Clients button of the top bar menu', async() => {

View File

@ -46,7 +46,7 @@ export default class InputNumber extends Input {
set value(value) { set value(value) {
this.hasValue = !(value === null || value === undefined || value === ''); this.hasValue = !(value === null || value === undefined || value === '');
if (!this.hasOwnProperty('_value') && this.hasValue) if (!this.hasOwnProperty('_value') && this.hasValue || value === '')
this.input.value = value; this.input.value = value;
this._value = value; this._value = value;

View File

@ -16,6 +16,7 @@ vn-treeview {
.actions { .actions {
min-width: 24px; min-width: 24px;
margin-right: 10px
} }
.description { .description {

View File

@ -3,7 +3,7 @@
"strong-error-handler": { "strong-error-handler": {
"params": { "params": {
"debug": true, "debug": true,
"log": true "log": false
} }
} }
} }

View File

@ -49,6 +49,10 @@
}, },
"final:after": { "final:after": {
"./middleware/error-handler": {}, "./middleware/error-handler": {},
"strong-error-handler": {} "strong-error-handler": {
"params": {
"log": false
}
}
} }
} }

View File

@ -1,4 +1,5 @@
const UserError = require('../../util/user-error'); const UserError = require('../../util/user-error');
const logToConsole = require('strong-error-handler/lib/logger');
module.exports = function() { module.exports = function() {
return function(err, req, res, next) { return function(err, req, res, next) {
@ -23,6 +24,9 @@ module.exports = function() {
if (err.sqlState == '45000') if (err.sqlState == '45000')
return next(new UserError(req.__(err.sqlMessage))); return next(new UserError(req.__(err.sqlMessage)));
if (!err.statusCode || err.statusCode >= 500)
logToConsole(req, err);
next(err); next(err);
}; };
}; };

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getAgenciesWithWarehouse', { Self.remoteMethod('getAgenciesWithWarehouse', {
description: 'Returns a list of agencies that can land a shipment on a day for an address and a warehouse', description: 'Returns a list of agencies that can land a shipment on a day for an address and a warehouse',
accessType: '',
accepts: [{ accepts: [{
arg: 'filter', arg: 'filter',
type: 'object', type: 'object',

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getFirstShipped', { Self.remoteMethod('getFirstShipped', {
description: 'Returns the first shipped and landed possible for params', description: 'Returns the first shipped and landed possible for params',
accessType: '',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('landsThatDay', { Self.remoteMethod('landsThatDay', {
description: 'Returns a list of agencies that can land a shipment on a day for an address', description: 'Returns a list of agencies that can land a shipment on a day for an address',
accessType: '',
accepts: [{ accepts: [{
arg: 'filter', arg: 'filter',
type: 'object', type: 'object',

View File

@ -1,7 +1,7 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('removeByDate', { Self.remoteMethod('removeByDate', {
description: 'Removes one or more delivery dates for a zone', description: 'Removes one or more delivery dates for a zone',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'zoneFk', arg: 'zoneFk',
type: 'Number', type: 'Number',

View File

@ -4,7 +4,6 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getLeaves', { Self.remoteMethod('getLeaves', {
description: 'Returns the first shipped and landed possible for params', description: 'Returns the first shipped and landed possible for params',
accessType: '',
accepts: [{ accepts: [{
arg: 'zoneFk', arg: 'zoneFk',
type: 'Number', type: 'Number',

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('toggleIsIncluded', { Self.remoteMethod('toggleIsIncluded', {
description: 'Toggle include to delivery', description: 'Toggle include to delivery',
accessType: '',
accepts: [{ accepts: [{
arg: 'zoneFk', arg: 'zoneFk',
type: 'Number', type: 'Number',

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('createFromSales', { Self.remoteMethodCtx('createFromSales', {
description: 'Create a claim', description: 'Create a claim',
accessType: '',
accepts: [{ accepts: [{
arg: 'claim', arg: 'claim',
type: 'object', type: 'object',

View File

@ -186,8 +186,7 @@
</div> </div>
</vn-popover> </vn-popover>
<vn-item-descriptor-popover <vn-item-descriptor-popover
vn-id="descriptor" vn-id="descriptor">
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover> </vn-item-descriptor-popover>
<vn-ticket-descriptor-popover <vn-ticket-descriptor-popover
vn-id="ticketDescriptor"> vn-id="ticketDescriptor">

View File

@ -161,15 +161,6 @@ class Controller {
} }
// Item Descriptor // Item Descriptor
showDescriptor(event, itemFk) { showDescriptor(event, itemFk) {
this.quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${itemFk}
})`,
tooltip: 'Item diary'
}
};
this.$.descriptor.itemFk = itemFk; this.$.descriptor.itemFk = itemFk;
this.$.descriptor.parent = event.target; this.$.descriptor.parent = event.target;
this.$.descriptor.show(); this.$.descriptor.show();

View File

@ -10,11 +10,10 @@ class Controller {
} }
onSubmit() { onSubmit() {
if (this.aclService.hasAny(['salesAssistant'])) { this.$scope.watcher.submit().then(() => {
this.$scope.watcher.submit().then(() => { if (this.aclService.hasAny(['salesAssistant']))
this.$state.go('claim.card.detail'); this.$state.go('claim.card.detail');
}); });
}
} }
} }

View File

@ -110,6 +110,5 @@
</tpl-body> </tpl-body>
</vn-dialog> </vn-dialog>
<vn-item-descriptor-popover <vn-item-descriptor-popover
vn-id="descriptor" vn-id="descriptor">
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover> </vn-item-descriptor-popover>

View File

@ -103,15 +103,6 @@ class Controller {
// Item Descriptor // Item Descriptor
showDescriptor(event, itemFk) { showDescriptor(event, itemFk) {
this.quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${itemFk}
})`,
tooltip: 'Item diary'
}
};
this.$scope.descriptor.itemFk = itemFk; this.$scope.descriptor.itemFk = itemFk;
this.$scope.descriptor.parent = event.target; this.$scope.descriptor.parent = event.target;
this.$scope.descriptor.show(); this.$scope.descriptor.show();

View File

@ -151,8 +151,7 @@
</vn-horizontal> </vn-horizontal>
</vn-card> </vn-card>
<vn-item-descriptor-popover <vn-item-descriptor-popover
vn-id="itemDescriptor" vn-id="itemDescriptor">
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover> </vn-item-descriptor-popover>
<vn-worker-descriptor-popover <vn-worker-descriptor-popover
vn-id="workerDescriptor" vn-id="workerDescriptor"

View File

@ -18,15 +18,6 @@ class Controller {
} }
showItemDescriptor(event, itemFk) { showItemDescriptor(event, itemFk) {
this.quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${itemFk}
})`,
tooltip: 'Item diary'
}
};
this.$.itemDescriptor.itemFk = itemFk; this.$.itemDescriptor.itemFk = itemFk;
this.$.itemDescriptor.parent = event.target; this.$.itemDescriptor.parent = event.target;
this.$.itemDescriptor.show(); this.$.itemDescriptor.show();

View File

@ -55,6 +55,7 @@ module.exports = Self => {
i.id, i.id,
TRUE, TRUE,
i.issued, i.issued,
NULL,
c.code, c.code,
i.created, i.created,
i.ref, i.ref,
@ -62,7 +63,6 @@ module.exports = Self => {
NULL, NULL,
NULL, NULL,
NULL, NULL,
NULL,
i.clientFk, i.clientFk,
i.pdf, i.pdf,
TRUE isInvoice TRUE isInvoice

View File

@ -5,6 +5,7 @@ const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('send', { Self.remoteMethodCtx('send', {
description: 'Sends SMS to a destination phone', description: 'Sends SMS to a destination phone',
accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'destinationFk', arg: 'destinationFk',
type: 'Integer' type: 'Integer'

View File

@ -32,6 +32,7 @@ class Controller {
setOrder(value) { setOrder(value) {
this.params.params.companyFk = value; this.params.params.companyFk = value;
this.filter.where.companyFk = value; this.filter.where.companyFk = value;
this.refresh();
} }
refresh() { refresh() {

View File

@ -9,6 +9,7 @@ class Controller extends Component {
this.$http = $http; this.$http = $http;
this.$q = $q; this.$q = $q;
this.client = null; this.client = null;
this._quicklinks = {};
} }
set clientFk(id) { set clientFk(id) {
@ -28,14 +29,16 @@ class Controller extends Component {
return this._client; return this._client;
} }
set quicklinks(value = {}) {
this._quicklinks = Object.assign(value, this._quicklinks);
}
get quicklinks() { get quicklinks() {
return this._quicklinks; return this._quicklinks;
} }
set quicklinks(value = {}) {
Object.keys(value).forEach(key => {
this._quicklinks[key] = value[key];
});
}
show() { show() {
this.$.popover.parent = this.parent; this.$.popover.parent = this.parent;
this.$.popover.show(); this.$.popover.show();

View File

@ -4,7 +4,7 @@
filter="::$ctrl.filter" filter="::$ctrl.filter"
link="{clientFk: $ctrl.$stateParams.id}" link="{clientFk: $ctrl.$stateParams.id}"
limit="20" limit="20"
data="greuges" auto-load="false"> data="greuges" auto-load="true">
</vn-crud-model> </vn-crud-model>
<mg-ajax <mg-ajax
path="/client/api/greuges/{{$ctrl.$stateParams.id}}/sumAmount" path="/client/api/greuges/{{$ctrl.$stateParams.id}}/sumAmount"
@ -20,12 +20,12 @@
</div> </div>
</vn-horizontal> </vn-horizontal>
<vn-vertical> <vn-vertical>
<vn-table model="model"> <vn-table model="model" auto-load="false">
<vn-thead> <vn-thead>
<vn-tr> <vn-tr>
<vn-th field="shipped" default-order="DESC">Date</vn-th> <vn-th field="shipped" default-order="DESC">Date</vn-th>
<vn-th field="description">Comment</vn-th> <vn-th field="description">Comment</vn-th>
<vn-th field="amount">Amount</vn-th> <vn-th field="amount" >Amount</vn-th>
<vn-th field="greugeTypeFk">Type</vn-th> <vn-th field="greugeTypeFk">Type</vn-th>
</vn-tr> </vn-tr>
</vn-thead> </vn-thead>

View File

@ -6,12 +6,13 @@ class Controller {
this.filter = { this.filter = {
include: [ include: [
{ {
relation: "greugeType", relation: 'greugeType',
scope: { scope: {
fields: ["id", "name"] fields: ['id', 'name']
} }
} }
] ],
order: 'shipped DESC, amount'
}; };
} }
} }

View File

@ -9,6 +9,7 @@ class Controller extends Component {
this.$http = $http; this.$http = $http;
this.$q = $q; this.$q = $q;
this.worker = null; this.worker = null;
this._quicklinks = {};
} }
set invoiceOutId(id) { set invoiceOutId(id) {
@ -23,14 +24,16 @@ class Controller extends Component {
return this._invoiceOutId; return this._invoiceOutId;
} }
set quicklinks(value = {}) {
this._quicklinks = Object.assign(value, this._quicklinks);
}
get quicklinks() { get quicklinks() {
return this._quicklinks; return this._quicklinks;
} }
set quicklinks(value = {}) {
Object.keys(value).forEach(key => {
this._quicklinks[key] = value[key];
});
}
show() { show() {
this.$.popover.parent = this.parent; this.$.popover.parent = this.parent;
this.$.popover.show(); this.$.popover.show();

View File

@ -1,3 +1,5 @@
let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('clone', { Self.remoteMethod('clone', {
description: 'clone item', description: 'clone item',
@ -10,8 +12,9 @@ module.exports = Self => {
http: {source: 'path'} http: {source: 'path'}
}], }],
returns: { returns: {
arg: 'id', type: 'Object',
description: 'new cloned itemId' description: 'new cloned itemId',
root: true,
}, },
http: { http: {
path: `/:id/clone`, path: `/:id/clone`,
@ -20,76 +23,106 @@ module.exports = Self => {
}); });
Self.clone = async itemId => { Self.clone = async itemId => {
let $ = Self.app.models;
let transaction = await Self.beginTransaction({}); let transaction = await Self.beginTransaction({});
let filter = { let options = {transaction};
where: {
id: itemId
},
include: [
{relation: 'tags', scope: {order: 'priority ASC', include: {relation: 'tag'}}}
]
};
try { try {
let origin = await Self.findOne(filter); const origin = await Self.findById(itemId, options);
let copy = JSON.parse(JSON.stringify(origin)); if (!origin)
throw new UserError(`That item doesn't exists`);
delete copy.id; origin.itemTag = undefined;
delete copy.itemTag; origin.description = undefined;
delete copy.description; origin.image = undefined;
delete copy.image; origin.comment = undefined;
delete copy.comment; origin.size = undefined;
let newItem = await Self.create(copy); const newItem = await Self.create(origin, options);
let botanical = await $.ItemBotanical.findOne({ let promises = [];
where: {itemFk: origin.id},
fields: ['botanical', 'genusFk', 'specieFk']
}, {options: transaction});
if (botanical) { await cloneTaxes(origin.id, newItem.id, promises, options);
botanical.itemFk = newItem.id; await cloneBotanical(origin.id, newItem.id, promises, options);
await $.ItemBotanical.create(botanical); await cloneTags(origin.id, newItem.id, promises, options);
} await Promise.all(promises);
let copyTags = await $.ItemTag.find({
where: {
itemFk: origin.id
},
fields: ['tagFk', 'value', 'priority']
}, {options: transaction});
for (let i = 0; i < copyTags.length; i++) {
copyTags[i].itemFk = newItem.id;
await $.ItemTag.upsert(copyTags[i], {options: transaction});
}
let copyTaxes = await Self.app.models.ItemTaxCountry.find({
where: {itemFk: origin.id},
fields: ['botanical', 'countryFk', 'taxClassFk']
}, {options: transaction});
for (let i = 0; i < copyTaxes.length; i++) {
let tax = copyTaxes[i];
tax.itemFk = newItem.id;
await Self.app.models.ItemTaxCountry.upsertWithWhere(
{
itemFk: tax.itemFk,
countryFk: tax.countryFk,
taxClassFk: tax.taxClassFk,
},
tax,
{options: transaction}
);
}
await transaction.commit(); await transaction.commit();
return newItem.id;
return newItem;
} catch (e) { } catch (e) {
await transaction.rollback(); await transaction.rollback();
throw e; throw e;
} }
}; };
/**
* Clone original taxes to new item
* @param {Integer} originalId - Original item id
* @param {Integer} newId - New item id
* @param {Array} promises - Array of promises
* @param {Object} options - Transaction options
*/
async function cloneTaxes(originalId, newId, promises, options) {
const models = Self.app.models;
const originalTaxes = await models.ItemTaxCountry.find({
where: {itemFk: originalId},
fields: ['botanical', 'countryFk', 'taxClassFk']
}, options);
originalTaxes.forEach(tax => {
tax.itemFk = newId;
const newItemTax = models.ItemTaxCountry.upsertWithWhere({
itemFk: newId,
countryFk: tax.countryFk,
}, tax, options);
promises.push(newItemTax);
});
}
/**
* Clone original botanical to new item
* @param {Integer} originalId - Original item id
* @param {Integer} newId - New item id
* @param {Array} promises - Array of promises
* @param {Object} options - Transaction options
*/
async function cloneBotanical(originalId, newId, promises, options) {
const models = Self.app.models;
const botanical = await models.ItemBotanical.findOne({
where: {itemFk: originalId},
fields: ['botanical', 'genusFk', 'specieFk']
}, options);
if (botanical) {
botanical.itemFk = newId;
const newBotanical = models.ItemBotanical.create(botanical, options);
promises.push(newBotanical);
}
}
/**
* Clone original item tags to new item
* @param {Integer} originalId - Original item id
* @param {Integer} newId - New item id
* @param {Array} promises - Array of promises
* @param {Object} options - Transaction options
*/
async function cloneTags(originalId, newId, promises, options) {
const models = Self.app.models;
const originalTags = await models.ItemTag.find({
where: {
itemFk: originalId
},
fields: ['tagFk', 'value', 'priority']
}, options);
originalTags.forEach(tag => {
tag.itemFk = newId;
const newTag = models.ItemTag.create(tag, options);
promises.push(newTag);
});
}
}; };

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getVisibleAvailable', { Self.remoteMethod('getVisibleAvailable', {
description: 'Returns visible and available for params', description: 'Returns visible and available for params',
accessType: '',
accepts: [ accepts: [
{ {
arg: 'id', arg: 'id',

View File

@ -1,6 +1,6 @@
const app = require('vn-loopback/server/server'); const app = require('vn-loopback/server/server');
describe('item clone()', () => { fdescribe('item clone()', () => {
let nextItemId; let nextItemId;
beforeEach(async() => { beforeEach(async() => {
@ -16,7 +16,11 @@ describe('item clone()', () => {
let itemFk = 1; let itemFk = 1;
let result = await app.models.Item.clone(itemFk); let result = await app.models.Item.clone(itemFk);
expect(result).toEqual(nextItemId); expect(result.id).toEqual(nextItemId);
expect(result.image).toBeUndefined();
expect(result.itemTag).toBeUndefined();
expect(result.comment).toBeUndefined();
expect(result.description).toBeUndefined();
}); });
it('should attempt to clone the given item but give an error as it doesnt exist', async() => { it('should attempt to clone the given item but give an error as it doesnt exist', async() => {
@ -24,7 +28,7 @@ describe('item clone()', () => {
let itemFk = 999; let itemFk = 999;
await app.models.Item.clone(itemFk) await app.models.Item.clone(itemFk)
.catch(e => { .catch(e => {
expect(e.message).toContain('Cannot convert undefined or null to object'); expect(e.message).toContain(`That item doesn't exists`);
error = e; error = e;
}); });

View File

@ -9,6 +9,7 @@ class Controller extends Component {
this.$http = $http; this.$http = $http;
this.$q = $q; this.$q = $q;
this.item = null; this.item = null;
this._quicklinks = {};
} }
set itemFk(id) { set itemFk(id) {
@ -16,6 +17,15 @@ class Controller extends Component {
this._itemFk = id; this._itemFk = id;
this.item = null; this.item = null;
this._quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${id},
})`,
tooltip: 'Item diary'
}
};
this.getCard(); this.getCard();
} }
@ -28,14 +38,16 @@ class Controller extends Component {
return this._item; return this._item;
} }
set quicklinks(value = {}) {
this._quicklinks = Object.assign(value, this._quicklinks);
}
get quicklinks() { get quicklinks() {
return this._quicklinks; return this._quicklinks;
} }
set quicklinks(value = {}) {
Object.keys(value).forEach(key => {
this._quicklinks[key] = value[key];
});
}
show() { show() {
this.$.popover.parent = this.parent; this.$.popover.parent = this.parent;
this.$.popover.show(); this.$.popover.show();

View File

@ -139,8 +139,7 @@
question="Do you want to clone this item?" question="Do you want to clone this item?"
message="All it's properties will be copied"> message="All it's properties will be copied">
</vn-confirm> </vn-confirm>
<vn-item-descriptor-popover vn-id="itemDescriptor"> <vn-item-descriptor-popover vn-id="itemDescriptor"></vn-item-descriptor-popover>
</vn-item-descriptor-popover>
<vn-worker-descriptor-popover <vn-worker-descriptor-popover
vn-id="workerDescriptor" vn-id="workerDescriptor"
worker-fk="$ctrl.selectedWorker"> worker-fk="$ctrl.selectedWorker">

View File

@ -53,15 +53,6 @@ class Controller {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
this.quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${itemFk},
})`,
tooltip: 'Item diary'
}
};
this.$.itemDescriptor.itemFk = itemFk; this.$.itemDescriptor.itemFk = itemFk;
this.$.itemDescriptor.parent = event.target; this.$.itemDescriptor.parent = event.target;
this.$.itemDescriptor.show(); this.$.itemDescriptor.show();

View File

@ -3,7 +3,7 @@ const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('removes', { Self.remoteMethod('removes', {
description: 'Delete an Order Row', description: 'Delete an Order Row',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -86,6 +86,5 @@
</vn-horizontal> </vn-horizontal>
</vn-card> </vn-card>
<vn-item-descriptor-popover <vn-item-descriptor-popover
vn-id="descriptor" vn-id="descriptor">
quicklinks="$ctrl.quicklinks">
</vn-item-descriptor-popover> </vn-item-descriptor-popover>

View File

@ -31,15 +31,6 @@ class Controller {
} }
showDescriptor(event, itemFk) { showDescriptor(event, itemFk) {
this.quicklinks = {
btnThree: {
icon: 'icon-transaction',
state: `item.card.diary({
id: ${itemFk},
})`,
tooltip: 'Item diary'
}
};
this.$scope.descriptor.itemFk = itemFk; this.$scope.descriptor.itemFk = itemFk;
this.$scope.descriptor.parent = event.target; this.$scope.descriptor.parent = event.target;
this.$scope.descriptor.show(); this.$scope.descriptor.show();

View File

@ -3,7 +3,7 @@ let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('removes', { Self.remoteMethod('removes', {
description: 'Change the state of a ticket', description: 'Change the state of a ticket',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -4,7 +4,7 @@ let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('reserve', { Self.remoteMethod('reserve', {
description: 'Change the state of a ticket', description: 'Change the state of a ticket',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -3,7 +3,7 @@ let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('updateDiscount', { Self.remoteMethodCtx('updateDiscount', {
description: 'Changes the discount of a sale', description: 'Changes the discount of a sale',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -3,7 +3,7 @@ let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('updatePrice', { Self.remoteMethodCtx('updatePrice', {
description: 'Changes the discount of a sale', description: 'Changes the discount of a sale',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'params', arg: 'params',
type: 'object', type: 'object',

View File

@ -3,7 +3,7 @@ let UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('updateQuantity', { Self.remoteMethod('updateQuantity', {
description: 'Changes the quantity of a sale', description: 'Changes the quantity of a sale',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'id', arg: 'id',
type: 'number', type: 'number',

View File

@ -3,7 +3,7 @@ const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('deleted', { Self.remoteMethodCtx('deleted', {
description: 'Sets the isDeleted value of a ticket to 1', description: 'Sets the isDeleted value of a ticket to 1',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'ticketFk', arg: 'ticketFk',
type: 'Object', type: 'Object',

View File

@ -1,7 +1,7 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('threeLastActive', { Self.remoteMethod('threeLastActive', {
description: 'Returns the last three tickets of a client that have the alertLevel at 0 and the shiped day is gt today', description: 'Returns the last three tickets of a client that have the alertLevel at 0 and the shiped day is gt today',
accessType: '', accessType: 'READ',
accepts: [{ accepts: [{
arg: 'filter', arg: 'filter',
type: 'object', type: 'object',

View File

@ -9,6 +9,7 @@ class Controller extends Component {
this.$http = $http; this.$http = $http;
this.$q = $q; this.$q = $q;
this.ticket = null; this.ticket = null;
this._quicklinks = {};
} }
set ticketFk(id) { set ticketFk(id) {
@ -28,14 +29,16 @@ class Controller extends Component {
return this._ticket; return this._ticket;
} }
set quicklinks(value = {}) {
this._quicklinks = Object.assign(value, this._quicklinks);
}
get quicklinks() { get quicklinks() {
return this._quicklinks; return this._quicklinks;
} }
set quicklinks(value = {}) {
Object.keys(value).forEach(key => {
this._quicklinks[key] = value[key];
});
}
show() { show() {
this.$.popover.parent = this.parent; this.$.popover.parent = this.parent;
this.$.popover.show(); this.$.popover.show();

View File

@ -27,7 +27,7 @@ export default class Controller {
this.$http.get(`/api/TicketConfigs/findOne`).then(res => { this.$http.get(`/api/TicketConfigs/findOne`).then(res => {
if (res.data) { if (res.data) {
this.filter = { this.filter = {
scopeDays: res.data.scopeDays scopeDays: parseInt(res.data.scopeDays)
}; };
} }
}); });
@ -64,6 +64,7 @@ export default class Controller {
onSearch(params) { onSearch(params) {
if (params) { if (params) {
if (params.scopeDays) { if (params.scopeDays) {
params.scopeDays = parseInt(params.scopeDays);
this.scopeDays = params.scopeDays; this.scopeDays = params.scopeDays;
this.buildFilterDates(); this.buildFilterDates();
params = Object.assign(params, {from: this.today, to: this.daysOnward}); params = Object.assign(params, {from: this.today, to: this.daysOnward});

View File

@ -37,8 +37,7 @@
label="To" label="To"
model="filter.to"> model="filter.to">
</vn-date-picker> </vn-date-picker>
<vn-input-number <vn-input-number vn-one
vn-one
min="0" min="0"
step="1" step="1"
label="Days onward" label="Days onward"

View File

@ -4,7 +4,6 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getLeaves', { Self.remoteMethod('getLeaves', {
description: 'Returns the first shipped and landed possible for params', description: 'Returns the first shipped and landed possible for params',
accessType: '',
accepts: [{ accepts: [{
arg: 'parentFk', arg: 'parentFk',
type: 'Number', type: 'Number',

View File

@ -4,7 +4,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('nodeAdd', { Self.remoteMethod('nodeAdd', {
description: 'Returns the first shipped and landed possible for params', description: 'Returns the first shipped and landed possible for params',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'parentFk', arg: 'parentFk',
type: 'Number', type: 'Number',

View File

@ -4,7 +4,7 @@ const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('nodeDelete', { Self.remoteMethod('nodeDelete', {
description: 'Returns the first shipped and landed possible for params', description: 'Returns the first shipped and landed possible for params',
accessType: '', accessType: 'WRITE',
accepts: [{ accepts: [{
arg: 'parentFk', arg: 'parentFk',
type: 'Number', type: 'Number',

View File

@ -1,7 +1,6 @@
module.exports = Self => { module.exports = Self => {
Self.remoteMethod('getByWarehouse', { Self.remoteMethod('getByWarehouse', {
description: 'Returns an array of labour holidays from an specified warehouse', description: 'Returns an array of labour holidays from an specified warehouse',
accessType: '',
accepts: [{ accepts: [{
arg: 'warehouseFk', arg: 'warehouseFk',
type: 'Number', type: 'Number',

View File

@ -1,11 +1,8 @@
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
const UserError = require('vn-loopback/util/user-error'); const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('absences', { Self.remoteMethodCtx('absences', {
description: 'Returns an array of absences from an specified worker', description: 'Returns an array of absences from an specified worker',
accessType: '',
accepts: [{ accepts: [{
arg: 'workerFk', arg: 'workerFk',
type: 'Number', type: 'Number',

View File

@ -9,6 +9,7 @@ class Controller extends Component {
this.$http = $http; this.$http = $http;
this.$q = $q; this.$q = $q;
this.worker = null; this.worker = null;
this._quicklinks = {};
} }
set workerFk(workerFk) { set workerFk(workerFk) {
@ -23,14 +24,16 @@ class Controller extends Component {
return this._workerFk; return this._workerFk;
} }
set quicklinks(value = {}) {
this._quicklinks = Object.assign(value, this._quicklinks);
}
get quicklinks() { get quicklinks() {
return this._quicklinks; return this._quicklinks;
} }
set quicklinks(value = {}) {
Object.keys(value).forEach(key => {
this._quicklinks[key] = value[key];
});
}
show() { show() {
this.$.popover.parent = this.parent; this.$.popover.parent = this.parent;
this.$.popover.show(); this.$.popover.show();

236
package-lock.json generated
View File

@ -1505,7 +1505,7 @@
}, },
"util": { "util": {
"version": "0.10.3", "version": "0.10.3",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz",
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -1543,15 +1543,23 @@
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
}, },
"async-done": { "async-done": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.1.tgz", "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz",
"integrity": "sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg==", "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==",
"dev": true, "dev": true,
"requires": { "requires": {
"end-of-stream": "^1.1.0", "end-of-stream": "^1.1.0",
"once": "^1.3.2", "once": "^1.3.2",
"process-nextick-args": "^1.0.7", "process-nextick-args": "^2.0.0",
"stream-exhaust": "^1.0.1" "stream-exhaust": "^1.0.1"
},
"dependencies": {
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true
}
} }
}, },
"async-each": { "async-each": {
@ -1733,7 +1741,7 @@
"base": { "base": {
"version": "0.11.2", "version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true, "dev": true,
"requires": { "requires": {
"cache-base": "^1.0.1", "cache-base": "^1.0.1",
@ -2321,7 +2329,7 @@
"cache-base": { "cache-base": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"collection-visit": "^1.0.0", "collection-visit": "^1.0.0",
@ -2496,7 +2504,7 @@
"class-utils": { "class-utils": {
"version": "0.3.6", "version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true, "dev": true,
"requires": { "requires": {
"arr-union": "^3.1.0", "arr-union": "^3.1.0",
@ -2656,7 +2664,7 @@
}, },
"string_decoder": { "string_decoder": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true, "dev": true,
"requires": { "requires": {
@ -3194,13 +3202,13 @@
"dependencies": { "dependencies": {
"jsesc": { "jsesc": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
"integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
"dev": true "dev": true
}, },
"regexpu-core": { "regexpu-core": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -3211,13 +3219,13 @@
}, },
"regjsgen": { "regjsgen": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
"integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
"dev": true "dev": true
}, },
"regjsparser": { "regjsparser": {
"version": "0.1.5", "version": "0.1.5",
"resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
"integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -3687,7 +3695,7 @@
"dot-prop": { "dot-prop": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
"integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"is-obj": "^1.0.0" "is-obj": "^1.0.0"
@ -3847,7 +3855,7 @@
"dependencies": { "dependencies": {
"fs-extra": { "fs-extra": {
"version": "0.30.0", "version": "0.30.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -3860,7 +3868,7 @@
}, },
"jsonfile": { "jsonfile": {
"version": "2.4.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -4151,14 +4159,14 @@
} }
}, },
"es6-weak-map": { "es6-weak-map": {
"version": "2.0.2", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"dev": true, "dev": true,
"requires": { "requires": {
"d": "1", "d": "1",
"es5-ext": "^0.10.14", "es5-ext": "^0.10.46",
"es6-iterator": "^2.0.1", "es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1" "es6-symbol": "^3.1.1"
} }
}, },
@ -4844,7 +4852,7 @@
}, },
"file-loader": { "file-loader": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", "resolved": "http://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
"integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
"dev": true, "dev": true,
"requires": { "requires": {
@ -4937,9 +4945,9 @@
} }
}, },
"fined": { "fined": {
"version": "1.1.1", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
"integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
"dev": true, "dev": true,
"requires": { "requires": {
"expand-tilde": "^2.0.2", "expand-tilde": "^2.0.2",
@ -5710,9 +5718,9 @@
} }
}, },
"fstream": { "fstream": {
"version": "1.0.11", "version": "1.0.12",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"dev": true, "dev": true,
"requires": { "requires": {
"graceful-fs": "^4.1.2", "graceful-fs": "^4.1.2",
@ -5866,9 +5874,9 @@
}, },
"dependencies": { "dependencies": {
"glob": { "glob": {
"version": "7.1.3", "version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
@ -5907,7 +5915,7 @@
"global-modules": { "global-modules": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
"integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
"dev": true, "dev": true,
"requires": { "requires": {
"global-prefix": "^1.0.1", "global-prefix": "^1.0.1",
@ -6012,21 +6020,21 @@
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
}, },
"gulp": { "gulp": {
"version": "4.0.0", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
"integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
"dev": true, "dev": true,
"requires": { "requires": {
"glob-watcher": "^5.0.0", "glob-watcher": "^5.0.3",
"gulp-cli": "^2.0.0", "gulp-cli": "^2.2.0",
"undertaker": "^1.0.0", "undertaker": "^1.2.1",
"vinyl-fs": "^3.0.0" "vinyl-fs": "^3.0.0"
}, },
"dependencies": { "dependencies": {
"gulp-cli": { "gulp-cli": {
"version": "2.0.1", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.0.1.tgz", "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz",
"integrity": "sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ==", "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==",
"dev": true, "dev": true,
"requires": { "requires": {
"ansi-colors": "^1.0.1", "ansi-colors": "^1.0.1",
@ -6039,7 +6047,7 @@
"gulplog": "^1.0.0", "gulplog": "^1.0.0",
"interpret": "^1.1.0", "interpret": "^1.1.0",
"isobject": "^3.0.1", "isobject": "^3.0.1",
"liftoff": "^2.5.0", "liftoff": "^3.1.0",
"matchdep": "^2.0.0", "matchdep": "^2.0.0",
"mute-stdout": "^1.0.0", "mute-stdout": "^1.0.0",
"pretty-hrtime": "^1.0.0", "pretty-hrtime": "^1.0.0",
@ -6259,7 +6267,7 @@
}, },
"kind-of": { "kind-of": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
"integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
"dev": true "dev": true
}, },
@ -6443,7 +6451,7 @@
"dependencies": { "dependencies": {
"es6-promise": { "es6-promise": {
"version": "3.3.1", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
"integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=",
"dev": true "dev": true
}, },
@ -7458,7 +7466,7 @@
"is-plain-object": { "is-plain-object": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dev": true, "dev": true,
"requires": { "requires": {
"isobject": "^3.0.1" "isobject": "^3.0.1"
@ -7628,7 +7636,7 @@
}, },
"jasmine-core": { "jasmine-core": {
"version": "2.99.1", "version": "2.99.1",
"resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", "resolved": "http://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz",
"integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=",
"dev": true "dev": true
}, },
@ -7645,7 +7653,7 @@
"jasmine-spec-reporter": { "jasmine-spec-reporter": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
"integrity": "sha1-HWMq7ANBZwrTJPkrqEtLMrNeniI=", "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
"dev": true, "dev": true,
"requires": { "requires": {
"colors": "1.1.2" "colors": "1.1.2"
@ -7880,7 +7888,7 @@
"karma-chrome-launcher": { "karma-chrome-launcher": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
"integrity": "sha1-zxudBxNswY/iOTJ9JGVMPbw2is8=", "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
"dev": true, "dev": true,
"requires": { "requires": {
"fs-access": "^1.0.0", "fs-access": "^1.0.0",
@ -8053,19 +8061,42 @@
} }
}, },
"liftoff": { "liftoff": {
"version": "2.5.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
"integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend": "^3.0.0", "extend": "^3.0.0",
"findup-sync": "^2.0.0", "findup-sync": "^3.0.0",
"fined": "^1.0.1", "fined": "^1.0.1",
"flagged-respawn": "^1.0.0", "flagged-respawn": "^1.0.0",
"is-plain-object": "^2.0.4", "is-plain-object": "^2.0.4",
"object.map": "^1.0.0", "object.map": "^1.0.0",
"rechoir": "^0.6.2", "rechoir": "^0.6.2",
"resolve": "^1.1.7" "resolve": "^1.1.7"
},
"dependencies": {
"findup-sync": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz",
"integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==",
"dev": true,
"requires": {
"detect-file": "^1.0.0",
"is-glob": "^4.0.0",
"micromatch": "^3.0.4",
"resolve-dir": "^1.0.1"
}
},
"is-glob": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
}
} }
}, },
"load-json-file": { "load-json-file": {
@ -9690,7 +9721,7 @@
}, },
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
}, },
"minstache": { "minstache": {
@ -9704,7 +9735,7 @@
"dependencies": { "dependencies": {
"commander": { "commander": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/commander/-/commander-1.0.4.tgz", "resolved": "http://registry.npmjs.org/commander/-/commander-1.0.4.tgz",
"integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -10162,7 +10193,7 @@
"dependencies": { "dependencies": {
"jsesc": { "jsesc": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
"integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
"dev": true "dev": true
} }
@ -10792,7 +10823,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@ -10820,6 +10852,7 @@
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -10834,7 +10867,8 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
@ -10845,7 +10879,8 @@
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -10962,7 +10997,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@ -10974,6 +11010,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -10988,6 +11025,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -10995,12 +11033,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.3.5", "version": "2.3.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@ -11019,6 +11059,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -11099,7 +11140,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -11111,6 +11153,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -11196,7 +11239,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@ -11232,6 +11276,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@ -11251,6 +11296,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@ -11294,12 +11340,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
@ -11356,9 +11404,9 @@
} }
}, },
"now-and-later": { "now-and-later": {
"version": "2.0.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz",
"integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"once": "^1.3.2" "once": "^1.3.2"
@ -11598,7 +11646,7 @@
"dependencies": { "dependencies": {
"minimist": { "minimist": {
"version": "0.0.10", "version": "0.0.10",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"dev": true "dev": true
}, },
@ -12154,7 +12202,7 @@
}, },
"pretty-bytes": { "pretty-bytes": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", "resolved": "http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
"integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -12225,7 +12273,7 @@
}, },
"readable-stream": { "readable-stream": {
"version": "1.1.14", "version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -12237,13 +12285,13 @@
}, },
"string_decoder": { "string_decoder": {
"version": "0.10.31", "version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true "dev": true
}, },
"through2": { "through2": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", "resolved": "http://registry.npmjs.org/through2/-/through2-0.2.3.tgz",
"integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -13134,7 +13182,7 @@
}, },
"safe-regex": { "safe-regex": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -13259,7 +13307,7 @@
"dependencies": { "dependencies": {
"source-map": { "source-map": {
"version": "0.4.4", "version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -13399,7 +13447,7 @@
"set-value": { "set-value": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
"integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend-shallow": "^2.0.1", "extend-shallow": "^2.0.1",
@ -13510,7 +13558,7 @@
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -13586,7 +13634,7 @@
"snapdragon-node": { "snapdragon-node": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"dev": true, "dev": true,
"requires": { "requires": {
"define-property": "^1.0.0", "define-property": "^1.0.0",
@ -13637,7 +13685,7 @@
"snapdragon-util": { "snapdragon-util": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"kind-of": "^3.2.0" "kind-of": "^3.2.0"
@ -13993,7 +14041,7 @@
"split-string": { "split-string": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend-shallow": "^3.0.0" "extend-shallow": "^3.0.0"
@ -14177,7 +14225,7 @@
}, },
"string_decoder": { "string_decoder": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true, "dev": true,
"requires": { "requires": {
@ -14708,13 +14756,13 @@
"dev": true "dev": true
}, },
"tar": { "tar": {
"version": "2.2.1", "version": "2.2.2",
"resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
"dev": true, "dev": true,
"requires": { "requires": {
"block-stream": "*", "block-stream": "*",
"fstream": "^1.0.2", "fstream": "^1.0.12",
"inherits": "2" "inherits": "2"
} }
}, },
@ -15062,7 +15110,7 @@
"touch": { "touch": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
"integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
"dev": true, "dev": true,
"requires": { "requires": {
"nopt": "~1.0.10" "nopt": "~1.0.10"
@ -15276,9 +15324,9 @@
} }
}, },
"undertaker": { "undertaker": {
"version": "1.2.0", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz",
"integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==",
"dev": true, "dev": true,
"requires": { "requires": {
"arr-flatten": "^1.0.1", "arr-flatten": "^1.0.1",
@ -15548,7 +15596,7 @@
"useragent": { "useragent": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
"integrity": "sha1-IX+UOtVAyyEoZYqyP8lg9qiMmXI=", "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
"dev": true, "dev": true,
"requires": { "requires": {
"lru-cache": "4.1.x", "lru-cache": "4.1.x",
@ -15613,9 +15661,9 @@
"dev": true "dev": true
}, },
"v8flags": { "v8flags": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
"integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
"dev": true, "dev": true,
"requires": { "requires": {
"homedir-polyfill": "^1.0.1" "homedir-polyfill": "^1.0.1"
@ -16285,7 +16333,7 @@
}, },
"globby": { "globby": {
"version": "6.1.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "resolved": "http://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -16298,7 +16346,7 @@
"dependencies": { "dependencies": {
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true "dev": true
} }

View File

@ -46,7 +46,7 @@
"eslint-plugin-jasmine": "^2.10.1", "eslint-plugin-jasmine": "^2.10.1",
"fancy-log": "^1.3.2", "fancy-log": "^1.3.2",
"file-loader": "^1.1.11", "file-loader": "^1.1.11",
"gulp": "^4.0.0", "gulp": "^4.0.2",
"gulp-concat": "^2.6.1", "gulp-concat": "^2.6.1",
"gulp-env": "^0.4.0", "gulp-env": "^0.4.0",
"gulp-file": "^0.4.0", "gulp-file": "^0.4.0",

BIN
print/report/printer-setup/assets/files/model.ezp Executable file → Normal file

Binary file not shown.