@jsreport/jsreport-html-to-xlsx
Advanced tools
Comparing version 3.0.0-beta.1 to 3.0.0
@@ -0,0 +0,0 @@ const config = require('./jsreport.config.js') |
@@ -0,0 +0,0 @@ |
@@ -0,0 +0,0 @@ |
@@ -0,0 +0,0 @@ const path = require('path') |
@@ -36,9 +36,4 @@ /*! | ||
reporter.documentStore.registerComplexType('BaseXlsxTemplateRefType', { | ||
shortid: { type: 'Edm.String', referenceTo: 'xlsxTemplates', schema: { type: 'null' } } | ||
}) | ||
if (reporter.documentStore.model.entityTypes.TemplateType) { | ||
reporter.documentStore.model.entityTypes.TemplateType.htmlToXlsx = { type: 'jsreport.HtmlToXlsxType' } | ||
reporter.documentStore.model.entityTypes.TemplateType.baseXlsxTemplate = { type: 'jsreport.BaseXlsxTemplateRefType', schema: { type: 'null' } } | ||
} | ||
@@ -45,0 +40,0 @@ |
@@ -6,6 +6,5 @@ const fs = require('fs') | ||
module.exports = (reporter, definition) => async (req, res) => { | ||
module.exports = async (reporter, definition, req, res) => { | ||
const htmlEngines = definition.options.htmlEngines | ||
const htmlToXlsxOptions = req.template.htmlToXlsx || {} | ||
const baseXlsxTemplate = req.template.baseXlsxTemplate || {} | ||
@@ -83,5 +82,3 @@ if (htmlToXlsxOptions.htmlEngine == null) { | ||
htmlToXlsxOptions.templateAssetShortid || | ||
(htmlToXlsxOptions.templateAsset && htmlToXlsxOptions.templateAsset.content) || | ||
baseXlsxTemplate.content || | ||
baseXlsxTemplate.shortid | ||
(htmlToXlsxOptions.templateAsset && htmlToXlsxOptions.templateAsset.content) | ||
) { | ||
@@ -92,9 +89,4 @@ reporter.logger.info('html-to-xlsx is going to insert table generation into base xlsx template', req) | ||
xlsxTemplateBuf = Buffer.from(htmlToXlsxOptions.templateAsset.content, htmlToXlsxOptions.templateAsset.encoding || 'utf8') | ||
} else if (baseXlsxTemplate.content) { | ||
xlsxTemplateBuf = Buffer.from(req.template.baseXlsxTemplate.content, 'base64') | ||
} else { | ||
if ( | ||
!baseXlsxTemplate.shortid && | ||
!htmlToXlsxOptions.templateAssetShortid | ||
) { | ||
if (!htmlToXlsxOptions.templateAssetShortid) { | ||
throw reporter.createError('No valid base xlsx template specified, make sure to set a correct one', { | ||
@@ -105,3 +97,3 @@ weak: true | ||
let docs | ||
let docs = [] | ||
let xlsxTemplateShortid | ||
@@ -114,10 +106,11 @@ | ||
}, req) | ||
} else { | ||
xlsxTemplateShortid = baseXlsxTemplate.shortid | ||
docs = await reporter.documentStore.collection('xlsxTemplates').find({ | ||
shortid: xlsxTemplateShortid | ||
}, req) | ||
} | ||
if (!docs.length) { | ||
if (!xlsxTemplateShortid) { | ||
throw reporter.createError('Unable to find xlsx template. xlsx template not specified', { | ||
statusCode: 404 | ||
}) | ||
} | ||
throw reporter.createError(`Unable to find xlsx template with shortid ${xlsxTemplateShortid}`, { | ||
@@ -128,7 +121,3 @@ statusCode: 404 | ||
if (htmlToXlsxOptions.templateAssetShortid) { | ||
xlsxTemplateBuf = docs[0].content | ||
} else { | ||
xlsxTemplateBuf = docs[0].contentRaw | ||
} | ||
xlsxTemplateBuf = docs[0].content | ||
} | ||
@@ -135,0 +124,0 @@ } |
@@ -0,0 +0,0 @@ const path = require('path') |
@@ -1,4 +0,2 @@ | ||
const recipe = require('./recipe') | ||
const fs = require('fs').promises | ||
const path = require('path') | ||
@@ -11,3 +9,3 @@ | ||
name: 'html-to-xlsx', | ||
execute: recipe(reporter, definition) | ||
execute: (req, res) => require('./recipe')(reporter, definition, req, res) | ||
}) | ||
@@ -14,0 +12,0 @@ |
{ | ||
"name": "@jsreport/jsreport-html-to-xlsx", | ||
"version": "3.0.0-beta.1", | ||
"version": "3.0.0", | ||
"description": "jsreport recipe capable of converting html into excel", | ||
@@ -38,4 +38,4 @@ "keywords": [ | ||
"chrome-page-eval": "1.3.0", | ||
"html-to-xlsx": "2.1.0", | ||
"@jsreport/office": "3.0.0-beta.1", | ||
"html-to-xlsx": "2.2.0", | ||
"@jsreport/office": "3.0.0", | ||
"nanoid": "1.0.7", | ||
@@ -48,7 +48,7 @@ "node.extend.without.arrays": "1.1.6", | ||
"handlebars": "4.7.7", | ||
"@jsreport/jsreport-core": "3.0.0-beta.1", | ||
"@jsreport/jsreport-handlebars": "3.0.0-beta.1", | ||
"@jsreport/studio-dev": "3.0.0-beta.1", | ||
"@jsreport/jsreport-core": "3.0.0", | ||
"@jsreport/jsreport-handlebars": "3.0.0", | ||
"@jsreport/studio-dev": "3.0.0", | ||
"mocha": "5.2.0", | ||
"puppeteer": "9.1.1", | ||
"puppeteer": "10.4.0", | ||
"should": "13.2.3", | ||
@@ -59,3 +59,3 @@ "standard": "16.0.3", | ||
"engines": { | ||
"node": ">=14.17.4" | ||
"node": ">=16.11" | ||
}, | ||
@@ -71,2 +71,2 @@ "standard": { | ||
} | ||
} | ||
} |
@@ -0,0 +0,0 @@ # @jsreport/jsreport-html-to-xlsx |
@@ -0,0 +0,0 @@ // eslint-disable-next-line no-unused-vars |
@@ -0,0 +0,0 @@ /* eslint no-unused-vars: 1 */ |
@@ -5,8 +5,5 @@ import React, { Component } from 'react' | ||
const EntityRefSelect = Studio.EntityRefSelect | ||
const sharedComponents = Studio.sharedComponents | ||
class HtmlToXlsxProperties extends Component { | ||
static selectXlsxTemplates (entities) { | ||
return Object.keys(entities).filter((k) => entities[k].__entitySet === 'xlsxTemplates').map((k) => entities[k]) | ||
} | ||
static selectAssets (entities) { | ||
@@ -18,3 +15,2 @@ return Object.keys(entities).filter((k) => entities[k].__entitySet === 'assets').map((k) => entities[k]) | ||
if ( | ||
(!entity.baseXlsxTemplate || !entity.baseXlsxTemplate.shortid) && | ||
(!entity.htmlToXlsx || !entity.htmlToXlsx.templateAssetShortid) | ||
@@ -25,17 +21,10 @@ ) { | ||
const foundItems = HtmlToXlsxProperties.selectXlsxTemplates(entities).filter((e) => entity.baseXlsxTemplate != null && entity.baseXlsxTemplate.shortid === e.shortid) | ||
const foundAssets = HtmlToXlsxProperties.selectAssets(entities).filter((e) => entity.htmlToXlsx != null && entity.htmlToXlsx.templateAssetShortid === e.shortid) | ||
if (!foundItems.length && !foundAssets.length) { | ||
if (!foundAssets.length) { | ||
return 'xlsx template' | ||
} | ||
let name | ||
const name = foundAssets[0].name | ||
if (foundAssets.length) { | ||
name = foundAssets[0].name | ||
} else { | ||
name = foundItems[0].name | ||
} | ||
return 'xlsx template: ' + name | ||
@@ -68,9 +57,8 @@ } | ||
removeInvalidXlsxTemplateReferences () { | ||
const { entity, entities, onChange } = this.props | ||
const { entity, entities } = this.props | ||
if (!entity.baseXlsxTemplate && !entity.htmlToXlsx) { | ||
if (!entity.htmlToXlsx) { | ||
return | ||
} | ||
const updatedXlsxTemplates = Object.keys(entities).filter((k) => entities[k].__entitySet === 'xlsxTemplates' && entity.baseXlsxTemplate != null && entities[k].shortid === entity.baseXlsxTemplate.shortid) | ||
const updatedXlsxAssets = Object.keys(entities).filter((k) => entities[k].__entitySet === 'assets' && entity.htmlToXlsx != null && entities[k].shortid === entity.htmlToXlsx.templateAssetShortid) | ||
@@ -83,6 +71,2 @@ | ||
} | ||
if (entity.baseXlsxTemplate && entity.baseXlsxTemplate.shortid && updatedXlsxTemplates.length === 0) { | ||
onChange({ _id: entity._id, baseXlsxTemplate: null }) | ||
} | ||
} | ||
@@ -135,3 +119,3 @@ | ||
render () { | ||
const { entity, onChange } = this.props | ||
const { entity } = this.props | ||
const htmlToXlsx = entity.htmlToXlsx || {} | ||
@@ -157,2 +141,3 @@ const htmlEngines = Studio.extensions['html-to-xlsx'].options.htmlEngines | ||
headingLabel='Select xlsx template' | ||
newLabel='New xlsx asset for template' | ||
filter={(references) => ({ data: references.assets })} | ||
@@ -163,13 +148,5 @@ value={entity.htmlToXlsx ? entity.htmlToXlsx.templateAssetShortid : null} | ||
})} | ||
renderNew={(modalProps) => <sharedComponents.NewAssetModal {...modalProps} options={{ ...modalProps.options, defaults: { folder: entity.folder }, activateNewTab: false }} />} | ||
/> | ||
</div> | ||
<div className='form-group'> | ||
<label>xlsx template (deprecated)</label> | ||
<EntityRefSelect | ||
headingLabel='Select xlsx template' | ||
filter={(references) => ({ xlsxTemplates: references.xlsxTemplates })} | ||
value={entity.baseXlsxTemplate ? entity.baseXlsxTemplate.shortid : null} | ||
onChange={(selected) => onChange({ _id: entity._id, baseXlsxTemplate: selected != null && selected.length > 0 ? { shortid: selected[0].shortid } : null })} | ||
/> | ||
</div> | ||
{htmlToXlsx.htmlEngine !== 'cheerio' && ( | ||
@@ -176,0 +153,0 @@ <div className='form-group'> |
@@ -0,0 +0,0 @@ import Properties from './HtmlToXlsxProperties' |
@@ -184,2 +184,3 @@ /******/ (function(modules) { // webpackBootstrap | ||
var EntityRefSelect = _jsreportStudio2.default.EntityRefSelect; | ||
var sharedComponents = _jsreportStudio2.default.sharedComponents; | ||
@@ -190,11 +191,2 @@ var HtmlToXlsxProperties = function (_Component) { | ||
_createClass(HtmlToXlsxProperties, null, [{ | ||
key: 'selectXlsxTemplates', | ||
value: function selectXlsxTemplates(entities) { | ||
return Object.keys(entities).filter(function (k) { | ||
return entities[k].__entitySet === 'xlsxTemplates'; | ||
}).map(function (k) { | ||
return entities[k]; | ||
}); | ||
} | ||
}, { | ||
key: 'selectAssets', | ||
@@ -211,9 +203,6 @@ value: function selectAssets(entities) { | ||
value: function title(entity, entities) { | ||
if ((!entity.baseXlsxTemplate || !entity.baseXlsxTemplate.shortid) && (!entity.htmlToXlsx || !entity.htmlToXlsx.templateAssetShortid)) { | ||
if (!entity.htmlToXlsx || !entity.htmlToXlsx.templateAssetShortid) { | ||
return 'xlsx template'; | ||
} | ||
var foundItems = HtmlToXlsxProperties.selectXlsxTemplates(entities).filter(function (e) { | ||
return entity.baseXlsxTemplate != null && entity.baseXlsxTemplate.shortid === e.shortid; | ||
}); | ||
var foundAssets = HtmlToXlsxProperties.selectAssets(entities).filter(function (e) { | ||
@@ -223,14 +212,8 @@ return entity.htmlToXlsx != null && entity.htmlToXlsx.templateAssetShortid === e.shortid; | ||
if (!foundItems.length && !foundAssets.length) { | ||
if (!foundAssets.length) { | ||
return 'xlsx template'; | ||
} | ||
var name = void 0; | ||
var name = foundAssets[0].name; | ||
if (foundAssets.length) { | ||
name = foundAssets[0].name; | ||
} else { | ||
name = foundItems[0].name; | ||
} | ||
return 'xlsx template: ' + name; | ||
@@ -273,13 +256,9 @@ } | ||
entity = _props.entity, | ||
entities = _props.entities, | ||
onChange = _props.onChange; | ||
entities = _props.entities; | ||
if (!entity.baseXlsxTemplate && !entity.htmlToXlsx) { | ||
if (!entity.htmlToXlsx) { | ||
return; | ||
} | ||
var updatedXlsxTemplates = Object.keys(entities).filter(function (k) { | ||
return entities[k].__entitySet === 'xlsxTemplates' && entity.baseXlsxTemplate != null && entities[k].shortid === entity.baseXlsxTemplate.shortid; | ||
}); | ||
var updatedXlsxAssets = Object.keys(entities).filter(function (k) { | ||
@@ -294,6 +273,2 @@ return entities[k].__entitySet === 'assets' && entity.htmlToXlsx != null && entities[k].shortid === entity.htmlToXlsx.templateAssetShortid; | ||
} | ||
if (entity.baseXlsxTemplate && entity.baseXlsxTemplate.shortid && updatedXlsxTemplates.length === 0) { | ||
onChange({ _id: entity._id, baseXlsxTemplate: null }); | ||
} | ||
} | ||
@@ -352,5 +327,3 @@ }, { | ||
var _props2 = this.props, | ||
entity = _props2.entity, | ||
_onChange = _props2.onChange; | ||
var entity = this.props.entity; | ||
@@ -398,2 +371,3 @@ var htmlToXlsx = entity.htmlToXlsx || {}; | ||
headingLabel: 'Select xlsx template', | ||
newLabel: 'New xlsx asset for template', | ||
filter: function filter(references) { | ||
@@ -407,21 +381,5 @@ return { data: references.assets }; | ||
}); | ||
} | ||
}) | ||
), | ||
_react2.default.createElement( | ||
'div', | ||
{ className: 'form-group' }, | ||
_react2.default.createElement( | ||
'label', | ||
null, | ||
'xlsx template (deprecated)' | ||
), | ||
_react2.default.createElement(EntityRefSelect, { | ||
headingLabel: 'Select xlsx template', | ||
filter: function filter(references) { | ||
return { xlsxTemplates: references.xlsxTemplates }; | ||
}, | ||
value: entity.baseXlsxTemplate ? entity.baseXlsxTemplate.shortid : null, | ||
onChange: function onChange(selected) { | ||
return _onChange({ _id: entity._id, baseXlsxTemplate: selected != null && selected.length > 0 ? { shortid: selected[0].shortid } : null }); | ||
renderNew: function renderNew(modalProps) { | ||
return _react2.default.createElement(sharedComponents.NewAssetModal, _extends({}, modalProps, { options: _extends({}, modalProps.options, { defaults: { folder: entity.folder }, activateNewTab: false }) })); | ||
} | ||
@@ -428,0 +386,0 @@ }) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
0
877142
18
1051
1
+ Added@jsreport/office@3.0.0(transitive)
+ Addedaxios@0.23.0(transitive)
+ Addedhtml-to-xlsx@2.2.0(transitive)
- Removed@jsreport/office@3.0.0-beta.1(transitive)
- Removedaxios@0.21.1(transitive)
- Removedhtml-to-xlsx@2.1.0(transitive)
Updated@jsreport/office@3.0.0
Updatedhtml-to-xlsx@2.2.0