@onepercentio/one-ui 1.2.6 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,7 +31,7 @@ const { findPathDeep } = require("deepdash")(lodash);
31
31
 
32
32
  function findAllStaticGeneration() {
33
33
  const glob = require("glob");
34
- const results = glob.sync("**/*.+(static|email).tsx", {
34
+ const results = glob.sync("**/*.+(static|email|document).tsx", {
35
35
  cwd: join(resolve("."), "src"),
36
36
  absolute: true,
37
37
  });
@@ -41,7 +41,7 @@ function findAllStaticGeneration() {
41
41
 
42
42
  function parseResultsrToEntries(results) {
43
43
  return results.reduce((entries, filePath) => {
44
- const [_, fileName] = /[\\/]([^\\/]+).(static|email).tsx/.exec(filePath);
44
+ const [_, fileName] = /[\\/]([^\\/]+).(static|email|document).tsx/.exec(filePath);
45
45
  entries[fileName] = filePath;
46
46
  return entries;
47
47
  }, {});
@@ -221,7 +221,7 @@ async function createConfig(
221
221
  });
222
222
 
223
223
  whereToPlaceTheNewLoaderPath.splice(1, 0, {
224
- test: /\.email\.tsx/,
224
+ test: [/\.email\.tsx/],
225
225
  use: [
226
226
  {
227
227
  loader: babelLoader.loader,
@@ -238,6 +238,25 @@ async function createConfig(
238
238
  },
239
239
  ],
240
240
  });
241
+
242
+ whereToPlaceTheNewLoaderPath.splice(1, 0, {
243
+ test: [/\.document\.tsx/],
244
+ use: [
245
+ {
246
+ loader: babelLoader.loader,
247
+ options: babelLoader.options,
248
+ },
249
+ {
250
+ loader: join(__dirname, "loaders", "static-loader"),
251
+ options: {
252
+ features: {
253
+ ...features,
254
+ inlineCSS: false,
255
+ },
256
+ },
257
+ },
258
+ ],
259
+ });
241
260
  if (features.replaceCSSRules)
242
261
  baseConfig.module.rules.unshift({
243
262
  test: /\.svg$/,
@@ -384,8 +403,15 @@ module.exports = async function initEmailWebpack() {
384
403
  templatesFilter,
385
404
  );
386
405
  checkTemplatesCount(config.entry);
387
- return config;
406
+
407
+ /** @type {import("webpack").Configuration} */
408
+ const finalConfig = {...config, bail: true}
409
+ return finalConfig;
388
410
  };
389
411
 
390
412
  module.exports.checkTemplatesCount = checkTemplatesCount;
391
413
  /** @typedef {{mainHtml: [htmlPath: string, htmlOutputFilename: string][], templatesFilter: (availableTemplates: string[]) => Promise<string[]>}} EmailGeneratorConfig */
414
+
415
+ process.on("uncaughtException", e => {
416
+ console.log("Had error", e)
417
+ })
@@ -89,11 +89,49 @@ const prepareSizes = (options) => {
89
89
  }));
90
90
  };
91
91
 
92
+ function getIssuer(loaderContext, currentModule) {
93
+ const compilation = loaderContext._compilation;
94
+
95
+ if (
96
+ compilation &&
97
+ compilation.moduleGraph &&
98
+ typeof compilation.moduleGraph.getIssuer === "function"
99
+ ) {
100
+ return compilation.moduleGraph.getIssuer(currentModule);
101
+ }
102
+
103
+ return currentModule && currentModule.issuer;
104
+ }
105
+
106
+ function shouldExportAsDataUrl(loaderContext) {
107
+ const documentEntryPattern = /\.document\.tsx(?:[?#].*)?$/;
108
+ let currentModule = loaderContext._module;
109
+ const visited = new Set();
110
+
111
+ while (currentModule && !visited.has(currentModule)) {
112
+ visited.add(currentModule);
113
+
114
+ const request =
115
+ currentModule.resource ||
116
+ currentModule.userRequest ||
117
+ currentModule.request ||
118
+ "";
119
+
120
+ if (documentEntryPattern.test(request)) {
121
+ return true;
122
+ }
123
+
124
+ currentModule = getIssuer(loaderContext, currentModule);
125
+ }
126
+
127
+ return false;
128
+ }
129
+
92
130
  function _default(content) {
93
131
  const options = Object.assign(
94
132
  {},
95
133
  loaderUtils.getOptions(this),
96
- loaderUtils.parseQuery(this.resourceQuery || "?")
134
+ loaderUtils.parseQuery(this.resourceQuery || "?"),
97
135
  );
98
136
  const context = options.context || this.rootContext;
99
137
  const callback = this.async();
@@ -101,7 +139,7 @@ function _default(content) {
101
139
  options.name = options.name || "[contenthash].png";
102
140
  options.name = options.name.replace(
103
141
  "[name]",
104
- _path.default.basename(this.resourcePath).replace(/\..*$/, "")
142
+ _path.default.basename(this.resourcePath).replace(/\..*$/, ""),
105
143
  );
106
144
  let outputPathBase = loaderUtils.interpolateName(this, options.name, {
107
145
  context,
@@ -113,6 +151,8 @@ function _default(content) {
113
151
  outputPathBase = _path.default.join(options.outputPath, outputPathBase);
114
152
  }
115
153
 
154
+ const exportAsDataUrl = shouldExportAsDataUrl(this);
155
+
116
156
  Promise.all(
117
157
  prepareSizes(options).map((size) => {
118
158
  return new Promise((resolve, reject) => {
@@ -121,7 +161,7 @@ function _default(content) {
121
161
  if (size.width > -1 && size.height > -1) {
122
162
  sharpInst = sharpInst.resize(
123
163
  size.width * options.resizeFactor,
124
- size.height * options.resizeFactor
164
+ size.height * options.resizeFactor,
125
165
  );
126
166
  }
127
167
 
@@ -148,20 +188,27 @@ function _default(content) {
148
188
  return finalSize[match] || finalSize[match] === 0
149
189
  ? finalSize[match]
150
190
  : match;
151
- }
191
+ },
152
192
  );
153
- this.emitFile(outputPath, data);
193
+
194
+ if (!exportAsDataUrl) {
195
+ this.emitFile(outputPath, data);
196
+ }
197
+
154
198
  resolve({
155
199
  size: finalSize,
156
200
  outputPath,
201
+ data,
157
202
  });
158
203
  }
159
204
  });
160
205
  });
161
- })
206
+ }),
162
207
  )
163
208
  .then((results) => {
164
- let output = `module.exports = __webpack_public_path__ + "${results[0].outputPath}";`;
209
+ let output = exportAsDataUrl
210
+ ? `module.exports = "data:image/png;base64,${results[0].data.toString("base64")}";`
211
+ : `module.exports = __webpack_public_path__ + "${results[0].outputPath}";`;
165
212
  callback(null, output);
166
213
  })
167
214
  .catch((error) => {
@@ -67,10 +67,8 @@
67
67
  height: auto;
68
68
  padding: 0px !important;
69
69
  }
70
- padding: 16px 32px;
71
70
  position: relative;
72
- width: 100%;
73
- max-width: 640px;
71
+ max-width: 95vw;
74
72
  background: $mainBackgroundColor;
75
73
  backdrop-filter: var(--adaptive-dialog-backdrop, initial);
76
74
  display: flex;
@@ -67,10 +67,8 @@
67
67
  height: auto;
68
68
  padding: 0px !important;
69
69
  }
70
- padding: 16px 32px;
71
70
  position: relative;
72
- width: 100%;
73
- max-width: 640px;
71
+ max-width: 95vw;
74
72
  background: $mainBackgroundColor;
75
73
  backdrop-filter: var(--adaptive-dialog-backdrop, initial);
76
74
  display: flex;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onepercentio/one-ui",
3
- "version": "1.2.6",
3
+ "version": "1.3.1",
4
4
  "description": "A set of reusable components created through the development of Onepercent projects",
5
5
  "repository": "git@github.com:onepercentio/one-ui.git",
6
6
  "author": "Murilo Oliveira de Araujo <murilo.araujo@onepercent.io>",