vasille-css 7.0.0-rc.1 → 7.0.0-rc.2

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.
package/lib/dev.js CHANGED
@@ -8,10 +8,3 @@ export class DevCssStyleInjector extends CssStyleInjector {
8
8
  return `${super.generateClassName()}-${this.key}`;
9
9
  }
10
10
  }
11
- export function devStyleSheet(styles) {
12
- const result = {};
13
- for (const key in styles) {
14
- result[key] = new DevCssStyleInjector(key, styles[key]);
15
- }
16
- return result;
17
- }
package/lib/index.js CHANGED
@@ -12,13 +12,7 @@ export class CssStyleInjector {
12
12
  }
13
13
  const className = this.generateClassName();
14
14
  for (const item of this.styles) {
15
- if (item instanceof Array) {
16
- const [target, rule] = item;
17
- insertRule(target, rule.replace("{}", className));
18
- }
19
- else {
20
- insertRule(0, item.replace("{}", className));
21
- }
15
+ this.insertRule(item, className);
22
16
  }
23
17
  this.styles.splice(0);
24
18
  return (this.className = className);
@@ -26,6 +20,25 @@ export class CssStyleInjector {
26
20
  generateClassName() {
27
21
  return `vasille-${++index}`;
28
22
  }
23
+ insertRule(rule, className) {
24
+ if (rule instanceof Array) {
25
+ insertRule(rule[0], rule[1].replace("{}", className));
26
+ }
27
+ else {
28
+ insertRule(0, rule.replace("{}", className));
29
+ }
30
+ }
31
+ }
32
+ export class SafeCssStyleInjector extends CssStyleInjector {
33
+ insertRule(rule, className) {
34
+ try {
35
+ super.insertRule(rule, className);
36
+ }
37
+ catch (e) {
38
+ // ignore any style related errors
39
+ void e;
40
+ }
41
+ }
29
42
  }
30
43
  /**
31
44
  * Inserts stylesheet to document
@@ -34,7 +47,7 @@ export class CssStyleInjector {
34
47
  export function styleSheet(styles) {
35
48
  const result = {};
36
49
  for (const key in styles) {
37
- result[key] = new CssStyleInjector(styles[key]);
50
+ result[key] = new SafeCssStyleInjector(styles[key]);
38
51
  }
39
52
  return result;
40
53
  }
package/lib/lib.js CHANGED
@@ -22,7 +22,7 @@ function createStyleSheet(media) {
22
22
  document.head.append(style);
23
23
  return style.sheet;
24
24
  }
25
- export function insertRule(target, rule) {
25
+ export function getStyleSheet(target) {
26
26
  let sheet;
27
27
  switch (target) {
28
28
  case 0:
@@ -68,6 +68,10 @@ export function insertRule(target, rule) {
68
68
  sheet = light;
69
69
  break;
70
70
  }
71
+ return sheet;
72
+ }
73
+ export function insertRule(target, rule) {
74
+ const sheet = getStyleSheet(target);
71
75
  /* istanbul ignore else */
72
76
  if (sheet) {
73
77
  sheet.insertRule(rule, sheet.cssRules.length);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vasille-css",
3
- "version": "7.0.0-rc.1",
3
+ "version": "7.0.0-rc.2",
4
4
  "description": "The same devkit which is designed to build fault tolerant frontends (CSS style library)",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./types/index.d.ts",
package/types/dev.d.ts CHANGED
@@ -4,8 +4,3 @@ export declare class DevCssStyleInjector extends CssStyleInjector {
4
4
  constructor(key: string, styles: (string | [number, string])[]);
5
5
  protected generateClassName(): string;
6
6
  }
7
- export declare function devStyleSheet<T extends {
8
- [k: string]: (string | [number, string])[];
9
- }>(styles: T): {
10
- [K in keyof T]: DevCssStyleInjector;
11
- };
package/types/index.d.ts CHANGED
@@ -5,6 +5,10 @@ export declare class CssStyleInjector {
5
5
  constructor(styles: (string | [number, string])[]);
6
6
  inject(): string;
7
7
  protected generateClassName(): string;
8
+ protected insertRule(rule: string | [number, string], className: string): void;
9
+ }
10
+ export declare class SafeCssStyleInjector extends CssStyleInjector {
11
+ protected insertRule(rule: string | [number, string], className: string): void;
8
12
  }
9
13
  /**
10
14
  * Inserts stylesheet to document
package/types/lib.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export declare function setMobileMaxWidth(value: number): void;
2
2
  export declare function setTabletMaxWidth(value: number): void;
3
3
  export declare function setLaptopMaxWidth(value: number): void;
4
+ export declare function getStyleSheet(target: number): CSSStyleSheet | undefined;
4
5
  export declare function insertRule(target: number, rule: string): void;