@utiliread/primitives 1.0.0-8 → 1.0.0-80

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.
Files changed (162) hide show
  1. package/dist/cjs/aggregate-id.js +2 -2
  2. package/dist/cjs/consumption-type-id.js +2 -2
  3. package/dist/cjs/index.js +21 -9
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/measure-id.js +3 -0
  6. package/dist/cjs/measure-id.js.map +1 -0
  7. package/dist/cjs/number-formatter.js +79 -50
  8. package/dist/cjs/number-formatter.js.map +1 -1
  9. package/dist/cjs/number-formatter.spec.js +512 -0
  10. package/dist/cjs/number-formatter.spec.js.map +1 -0
  11. package/dist/cjs/optional.js +3 -0
  12. package/dist/cjs/optional.js.map +1 -0
  13. package/dist/cjs/precision-number.js +42 -0
  14. package/dist/cjs/precision-number.js.map +1 -0
  15. package/dist/cjs/precision-number.spec.js +27 -0
  16. package/dist/cjs/precision-number.spec.js.map +1 -0
  17. package/dist/cjs/register-convention.js +58 -0
  18. package/dist/cjs/register-convention.js.map +1 -0
  19. package/dist/cjs/register-convention.spec.js +39 -0
  20. package/dist/cjs/register-convention.spec.js.map +1 -0
  21. package/dist/cjs/register-definition.js +2 -2
  22. package/dist/cjs/register-id.js +2 -2
  23. package/dist/cjs/register-library.js +52 -41
  24. package/dist/cjs/register-library.js.map +1 -1
  25. package/dist/cjs/register-library.spec.js +36 -29
  26. package/dist/cjs/register-library.spec.js.map +1 -1
  27. package/dist/cjs/register-pack.js +2 -2
  28. package/dist/cjs/register-utils.js +8 -0
  29. package/dist/cjs/register-utils.js.map +1 -0
  30. package/dist/cjs/repository.js +26 -0
  31. package/dist/cjs/repository.js.map +1 -0
  32. package/dist/cjs/repository.spec.js +21 -0
  33. package/dist/cjs/repository.spec.js.map +1 -0
  34. package/dist/cjs/step.js +45 -0
  35. package/dist/cjs/step.js.map +1 -0
  36. package/dist/cjs/step.spec.js +29 -0
  37. package/dist/cjs/step.spec.js.map +1 -0
  38. package/dist/cjs/time-or-rule.js +19 -0
  39. package/dist/cjs/time-or-rule.js.map +1 -0
  40. package/dist/cjs/unit-id.js +13 -13
  41. package/dist/cjs/unit-id.js.map +1 -1
  42. package/dist/esm/aggregate-id.d.ts +1 -1
  43. package/dist/esm/aggregate-id.js +1 -1
  44. package/dist/esm/consumption-type-id.d.ts +1 -1
  45. package/dist/esm/consumption-type-id.js +1 -1
  46. package/dist/esm/index.d.ts +16 -8
  47. package/dist/esm/index.js +9 -4
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/measure-id.d.ts +1 -0
  50. package/dist/esm/measure-id.js +2 -0
  51. package/dist/esm/measure-id.js.map +1 -0
  52. package/dist/esm/number-formatter.d.ts +17 -8
  53. package/dist/esm/number-formatter.js +76 -47
  54. package/dist/esm/number-formatter.js.map +1 -1
  55. package/dist/esm/{register-converter.spec.d.ts → number-formatter.spec.d.ts} +1 -1
  56. package/dist/esm/number-formatter.spec.js +510 -0
  57. package/dist/esm/number-formatter.spec.js.map +1 -0
  58. package/dist/esm/optional.d.ts +1 -0
  59. package/dist/esm/optional.js +2 -0
  60. package/dist/esm/optional.js.map +1 -0
  61. package/dist/esm/precision-number.d.ts +11 -0
  62. package/dist/esm/precision-number.js +38 -0
  63. package/dist/esm/precision-number.js.map +1 -0
  64. package/dist/esm/precision-number.spec.d.ts +1 -0
  65. package/dist/esm/precision-number.spec.js +25 -0
  66. package/dist/esm/precision-number.spec.js.map +1 -0
  67. package/dist/esm/register-convention.d.ts +14 -0
  68. package/dist/esm/register-convention.js +54 -0
  69. package/dist/esm/register-convention.js.map +1 -0
  70. package/dist/esm/register-convention.spec.d.ts +1 -0
  71. package/dist/esm/register-convention.spec.js +37 -0
  72. package/dist/esm/register-convention.spec.js.map +1 -0
  73. package/dist/esm/register-definition.d.ts +13 -9
  74. package/dist/esm/register-definition.js +1 -1
  75. package/dist/esm/register-id.d.ts +1 -1
  76. package/dist/esm/register-id.js +1 -1
  77. package/dist/esm/register-library.d.ts +15 -11
  78. package/dist/esm/register-library.js +49 -38
  79. package/dist/esm/register-library.js.map +1 -1
  80. package/dist/esm/register-library.spec.d.ts +1 -1
  81. package/dist/esm/register-library.spec.js +34 -27
  82. package/dist/esm/register-library.spec.js.map +1 -1
  83. package/dist/esm/register-pack.d.ts +4 -4
  84. package/dist/esm/register-pack.js +1 -1
  85. package/dist/esm/register-utils.d.ts +3 -0
  86. package/dist/esm/register-utils.js +4 -0
  87. package/dist/esm/register-utils.js.map +1 -0
  88. package/dist/esm/repository.d.ts +9 -0
  89. package/dist/esm/repository.js +22 -0
  90. package/dist/esm/repository.js.map +1 -0
  91. package/dist/esm/repository.spec.d.ts +1 -0
  92. package/dist/esm/repository.spec.js +19 -0
  93. package/dist/esm/repository.spec.js.map +1 -0
  94. package/dist/esm/step.d.ts +15 -0
  95. package/dist/esm/step.js +42 -0
  96. package/dist/esm/step.js.map +1 -0
  97. package/dist/esm/step.spec.d.ts +1 -0
  98. package/dist/esm/step.spec.js +27 -0
  99. package/dist/esm/step.spec.js.map +1 -0
  100. package/dist/esm/time-or-rule.d.ts +7 -0
  101. package/dist/esm/time-or-rule.js +16 -0
  102. package/dist/esm/time-or-rule.js.map +1 -0
  103. package/dist/esm/unit-id.d.ts +2 -2
  104. package/dist/esm/unit-id.js +10 -10
  105. package/dist/esm/unit-id.js.map +1 -1
  106. package/locales/da/aggregates.json +8 -0
  107. package/locales/da/consumption-types.json +7 -0
  108. package/locales/da/measures.json +16 -0
  109. package/locales/da/registers.json +371 -0
  110. package/locales/da/units.json +93 -0
  111. package/locales/en/aggregates.json +8 -0
  112. package/locales/en/consumption-types.json +7 -0
  113. package/locales/en/measures.json +16 -0
  114. package/locales/en/registers.json +380 -0
  115. package/locales/en/units.json +93 -0
  116. package/package.json +17 -14
  117. package/src/aggregate-id.ts +9 -9
  118. package/src/consumption-type-id.ts +8 -8
  119. package/src/index.ts +39 -17
  120. package/src/measure-id.ts +15 -0
  121. package/src/number-formatter.spec.ts +549 -77
  122. package/src/number-formatter.ts +118 -50
  123. package/src/optional.ts +1 -0
  124. package/src/precision-number.spec.ts +28 -0
  125. package/src/precision-number.ts +44 -0
  126. package/src/register-convention.spec.ts +52 -29
  127. package/src/register-convention.ts +70 -45
  128. package/src/register-definition.ts +23 -14
  129. package/src/register-id.ts +270 -191
  130. package/src/register-library.spec.ts +41 -33
  131. package/src/register-library.ts +63 -37
  132. package/src/register-pack.ts +5 -5
  133. package/src/register-utils.ts +6 -6
  134. package/src/repository.spec.ts +20 -0
  135. package/src/repository.ts +24 -0
  136. package/src/step.spec.ts +37 -0
  137. package/src/step.ts +45 -0
  138. package/src/time-or-rule.ts +17 -0
  139. package/src/unit-id.ts +110 -100
  140. package/tsconfig.cjs.json +7 -8
  141. package/tsconfig.json +16 -14
  142. package/web-test-runner.config.mjs +7 -0
  143. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/base.css +0 -224
  144. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/block-navigation.js +0 -79
  145. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/favicon.png +0 -0
  146. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/index.html +0 -96
  147. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.css +0 -1
  148. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/prettify.js +0 -2
  149. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sort-arrow-sprite.png +0 -0
  150. package/coverage/Chrome Headless 90.0.4430.85 (Windows 10)/html/sorter.js +0 -170
  151. package/dist/cjs/register-converter.js +0 -47
  152. package/dist/cjs/register-converter.js.map +0 -1
  153. package/dist/cjs/register-converter.spec.js +0 -29
  154. package/dist/cjs/register-converter.spec.js.map +0 -1
  155. package/dist/esm/register-converter.d.ts +0 -9
  156. package/dist/esm/register-converter.js +0 -44
  157. package/dist/esm/register-converter.js.map +0 -1
  158. package/dist/esm/register-converter.spec.js +0 -27
  159. package/dist/esm/register-converter.spec.js.map +0 -1
  160. package/karma.config.js +0 -32
  161. package/src/register-converter.spec.ts +0 -31
  162. package/src/register-converter.ts +0 -29
@@ -1,6 +1,6 @@
1
- import { RegisterDefinition } from "./register-definition";
2
- import { RegisterId } from "./register-id";
3
-
4
- export function getRegisterId(register: RegisterId | RegisterDefinition) {
5
- return typeof register === "string" ? register : register.id;
6
- }
1
+ import { RegisterDefinition } from "./register-definition";
2
+ import { RegisterId } from "./register-id";
3
+
4
+ export function getRegisterId(register: RegisterId | RegisterDefinition) {
5
+ return typeof register === "string" ? register : register.id;
6
+ }
@@ -0,0 +1,20 @@
1
+ import { Repository } from "./repository";
2
+ import { expect } from "@esm-bundle/chai";
3
+
4
+ describe("ctor", () => {
5
+ it("creates", () => {
6
+ expect(Repository("gpkv", "gjoel")).to.equal("gpkv/gjoel");
7
+ expect(Repository("gpkv/gjoel")).to.equal("gpkv/gjoel");
8
+ });
9
+ it("throws if wrong format", () => {
10
+ expect(() => Repository("invalid")).to.throw();
11
+ });
12
+ });
13
+
14
+ describe("split", () => {
15
+ it("splits into correct parts", () => {
16
+ const { team, name } = Repository.split(Repository("gpkv", "gjoel"));
17
+ expect(team).to.equal("gpkv");
18
+ expect(name).to.equal("gjoel");
19
+ });
20
+ });
@@ -0,0 +1,24 @@
1
+ // This is clearly not correct but it provides some amazing type safety
2
+ export type Repository = "some/repo";
3
+
4
+ export function Repository(repo: string): Repository;
5
+ export function Repository(team: string, name: string): Repository;
6
+ export function Repository(repoOrTeam: string, name?: string): Repository {
7
+ if (name) {
8
+ return <Repository>`${repoOrTeam}/${name}`;
9
+ } else if (repoOrTeam.indexOf("/") > 0) {
10
+ return <Repository>repoOrTeam;
11
+ } else {
12
+ throw new TypeError("Invalid repository format");
13
+ }
14
+ }
15
+
16
+ export namespace Repository {
17
+ export function split(repo: Repository) {
18
+ const parts = repo.split("/");
19
+ return {
20
+ team: parts[0],
21
+ name: parts[1],
22
+ };
23
+ }
24
+ }
@@ -0,0 +1,37 @@
1
+ import { DayOfWeek, Step } from "./step";
2
+
3
+ import { DateTime } from "luxon";
4
+ import { expect } from "@esm-bundle/chai";
5
+
6
+ describe("startOf", () => {
7
+ it("returns start of day", () => {
8
+ const dt = DateTime.fromISO("2020-01-11T05:00:00+01:00");
9
+ const result = Step.startOf(dt, "day");
10
+ expect(+result).to.equal(
11
+ +DateTime.fromISO("2020-01-11T00:00:00+01:00"),
12
+ );
13
+ });
14
+
15
+ it("returns previous monday from saturday", () => {
16
+ const dt = DateTime.fromISO("2020-01-11T05:00:00+01:00");
17
+ const result = Step.startOf(dt, "week", DayOfWeek.Monday);
18
+ expect(+result).to.equal(
19
+ +DateTime.fromISO("2020-01-06T00:00:00+01:00"),
20
+ );
21
+ });
22
+
23
+ it("returns same monday from monday with hour", () => {
24
+ const dt = DateTime.fromISO("2020-01-13T05:00:00+01:00");
25
+ const result = Step.startOf(dt, "week", DayOfWeek.Monday);
26
+ expect(+result).to.equal(
27
+ +DateTime.fromISO("2020-01-13T00:00:00+01:00"),
28
+ );
29
+ });
30
+ });
31
+
32
+ describe("asDuration", () => {
33
+ it("should return equivalent duration", () => {
34
+ const duration = Step.asDuration("week");
35
+ expect(duration.days).to.equal(7);
36
+ });
37
+ });
package/src/step.ts ADDED
@@ -0,0 +1,45 @@
1
+ import { DateTime, Duration } from "luxon";
2
+
3
+ export type Step = "hour" | "day" | "week" | "month" | "year";
4
+
5
+ export enum DayOfWeek {
6
+ Monday = 1,
7
+ Tuesday = 2,
8
+ Wednesday = 3,
9
+ Thursday = 4,
10
+ Friday = 5,
11
+ Saturday = 6,
12
+ Sunday = 7,
13
+ }
14
+
15
+ export namespace Step {
16
+ export function startOf(
17
+ dateTime: DateTime,
18
+ step: Step,
19
+ firstDayOfWeek?: DayOfWeek,
20
+ ): DateTime {
21
+ if (step === "week") {
22
+ const value = dateTime
23
+ .startOf("day")
24
+ .set({ weekday: firstDayOfWeek ?? DayOfWeek.Monday });
25
+ return value > dateTime ? value.minus({ days: 7 }) : value;
26
+ } else {
27
+ return dateTime.startOf(step);
28
+ }
29
+ }
30
+
31
+ export function asDuration(step: Step, amount = 1): Duration {
32
+ switch (step) {
33
+ case "hour":
34
+ return Duration.fromObject({ hours: amount });
35
+ case "day":
36
+ return Duration.fromObject({ days: amount });
37
+ case "week":
38
+ return Duration.fromObject({ days: 7 * amount });
39
+ case "month":
40
+ return Duration.fromObject({ months: amount });
41
+ case "year":
42
+ return Duration.fromObject({ years: amount });
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,17 @@
1
+ import { DateTime } from "luxon";
2
+
3
+ export type TimeOrRule = Date | DateTime | string;
4
+
5
+ export namespace TimeOrRule {
6
+ export function isTime(input: TimeOrRule): input is Date | DateTime {
7
+ return typeof input !== "string";
8
+ }
9
+
10
+ export function isRule(input: TimeOrRule): input is string {
11
+ return typeof input === "string";
12
+ }
13
+
14
+ export function asJSON(input: TimeOrRule) {
15
+ return isRule(input) ? input : input.toJSON();
16
+ }
17
+ }
package/src/unit-id.ts CHANGED
@@ -1,100 +1,110 @@
1
- export type UnitId =
2
- "unitless" |
3
-
4
- "milliWattHour" |
5
- "wattHour" |
6
- "kiloWattHour" |
7
- "megaWattHour" |
8
- "gigaWattHour" |
9
- "calorie" |
10
- "kiloCalorie" |
11
- "megaCalorie" |
12
-
13
- "joule" |
14
- "kiloJoule" |
15
- "megaJoule" |
16
- "gigaJoule" |
17
-
18
- "liter" |
19
- "cubicMeter" |
20
-
21
- "fluidOunce" |
22
- "gallon" |
23
-
24
- "gram" |
25
- "kiloGram" |
26
- "tonne" |
27
-
28
- "ounce" |
29
- "pound" |
30
- "ton" |
31
-
32
- "second" |
33
- "minute" |
34
- "hour" |
35
- "day" |
36
- "week" |
37
- "month" |
38
- "year" |
39
-
40
- "milliWatt" |
41
- "watt" |
42
- "kiloWatt" |
43
- "megaWatt" |
44
- "gigaWatt" |
45
-
46
- "joulesPerSecond" |
47
- "joulesPerMinute" |
48
- "joulesPerHour" |
49
-
50
- "litersPerSecond" |
51
- "litersPerMinute" |
52
- "litersPerHour" |
53
-
54
- "cubicMetersPerSecond" |
55
- "cubicMetersPerMinute" |
56
- "cubicMetersPerHour" |
57
-
58
- "fluidOuncesPerSecond" |
59
- "fluidOuncesPerMinute" |
60
- "fluidOuncesPerHour" |
61
-
62
- "gallonsPerSecond" |
63
- "gallonsPerMinute" |
64
- "gallonsPerHour" |
65
-
66
- "gramsPerSecond" |
67
- "gramsPerMinute" |
68
- "gramsPerHour" |
69
-
70
- "kiloGramsPerSecond" |
71
- "kiloGramsPerMinute" |
72
- "kiloGramsPerHour" |
73
-
74
- "celcius" |
75
- "kelvin" |
76
- "fahrenheit" |
77
-
78
- "var" |
79
- "kiloVar" |
80
- "megaVar" |
81
-
82
- "varHour" |
83
- "kiloVarHour" |
84
- "megaVarHour" |
85
-
86
- "percentage" |
87
-
88
- "literCelcius" |
89
- "cubicMeterCelcius";
90
-
91
- export const energyUnits: UnitId[] = [
92
- "milliWattHour",
93
- "wattHour",
94
- "kiloWattHour",
95
- "megaWattHour",
96
- "gigaWattHour",
97
- "calorie",
98
- "kiloCalorie",
99
- "megaCalorie",
100
- ];
1
+ export type UnitId =
2
+ | "unitless"
3
+ | "milliWattHour"
4
+ | "wattHour"
5
+ | "kiloWattHour"
6
+ | "megaWattHour"
7
+ | "gigaWattHour"
8
+ | "calorie"
9
+ | "kiloCalorie"
10
+ | "megaCalorie"
11
+ | "joule"
12
+ | "kiloJoule"
13
+ | "megaJoule"
14
+ | "gigaJoule"
15
+ | "liter"
16
+ | "cubicMeter"
17
+ | "fluidOunce"
18
+ | "gallon"
19
+ | "gram"
20
+ | "kiloGram"
21
+ | "tonne"
22
+ | "ounce"
23
+ | "pound"
24
+ | "ton"
25
+ | "second"
26
+ | "minute"
27
+ | "hour"
28
+ | "day"
29
+ | "week"
30
+ | "month"
31
+ | "year"
32
+ | "milliWatt"
33
+ | "milliWatt2"
34
+ | "watt"
35
+ | "watt2"
36
+ | "kiloWatt"
37
+ | "kiloWatt2"
38
+ | "megaWatt"
39
+ | "megaWatt2"
40
+ | "gigaWatt"
41
+ | "gigaWatt2"
42
+ | "joulesPerSecond"
43
+ | "joulesPerSecond2"
44
+ | "joulesPerMinute"
45
+ | "joulesPerMinute2"
46
+ | "joulesPerHour"
47
+ | "joulesPerHour2"
48
+ | "litersPerSecond"
49
+ | "litersPerSecond2"
50
+ | "litersPerMinute"
51
+ | "litersPerMinute2"
52
+ | "litersPerHour"
53
+ | "litersPerHour2"
54
+ | "cubicMetersPerSecond"
55
+ | "cubicMetersPerSecond2"
56
+ | "cubicMetersPerMinute"
57
+ | "cubicMetersPerMinute2"
58
+ | "cubicMetersPerHour"
59
+ | "cubicMetersPerHour2"
60
+ | "fluidOuncesPerSecond"
61
+ | "fluidOuncesPerSecond2"
62
+ | "fluidOuncesPerMinute"
63
+ | "fluidOuncesPerMinute2"
64
+ | "fluidOuncesPerHour"
65
+ | "fluidOuncesPerHour2"
66
+ | "gallonsPerSecond"
67
+ | "gallonsPerSecond2"
68
+ | "gallonsPerMinute"
69
+ | "gallonsPerMinute2"
70
+ | "gallonsPerHour"
71
+ | "gallonsPerHour2"
72
+ | "gramsPerSecond"
73
+ | "gramsPerSecond2"
74
+ | "gramsPerMinute"
75
+ | "gramsPerMinute2"
76
+ | "gramsPerHour"
77
+ | "gramsPerHour2"
78
+ | "kiloGramsPerSecond"
79
+ | "kiloGramsPerSecond2"
80
+ | "kiloGramsPerMinute"
81
+ | "kiloGramsPerMinute2"
82
+ | "kiloGramsPerHour"
83
+ | "kiloGramsPerHour2"
84
+ | "celcius"
85
+ | "kelvin"
86
+ | "fahrenheit"
87
+ | "bar"
88
+ | "bar2"
89
+ | "pascal"
90
+ | "pascal2"
91
+ | "var"
92
+ | "kiloVar"
93
+ | "megaVar"
94
+ | "varHour"
95
+ | "kiloVarHour"
96
+ | "megaVarHour"
97
+ | "percentage"
98
+ | "literCelcius"
99
+ | "cubicMeterCelcius";
100
+
101
+ export const energyUnits: UnitId[] = [
102
+ "milliWattHour",
103
+ "wattHour",
104
+ "kiloWattHour",
105
+ "megaWattHour",
106
+ "gigaWattHour",
107
+ "calorie",
108
+ "kiloCalorie",
109
+ "megaCalorie",
110
+ ];
package/tsconfig.cjs.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "target": "es5",
5
- "module": "commonjs",
6
- "outDir": "dist/cjs",
7
- "declaration": false
8
- }
9
- }
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "CommonJS",
5
+ "outDir": "dist/cjs",
6
+ "declaration": false
7
+ }
8
+ }
package/tsconfig.json CHANGED
@@ -1,15 +1,17 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "declaration": true,
7
- "sourceMap": true,
8
- "experimentalDecorators": true,
9
- "emitDecoratorMetadata": true,
10
- "strict": true,
11
- "rootDir": "src",
12
- "outDir": "dist/esm",
13
- "lib": [ "ES2018", "DOM" ]
14
- }
15
- }
2
+ "compilerOptions": {
3
+ "target": "ES2018",
4
+ "module": "ESNext",
5
+ "moduleResolution": "Node",
6
+ "esModuleInterop": true,
7
+ "declaration": true,
8
+ "sourceMap": true,
9
+ "experimentalDecorators": true,
10
+ "emitDecoratorMetadata": true,
11
+ "strict": true,
12
+ "rootDir": "src",
13
+ "outDir": "dist/esm",
14
+ "lib": ["ES2018", "DOM"],
15
+ "types": ["mocha"]
16
+ }
17
+ }
@@ -0,0 +1,7 @@
1
+ import { esbuildPlugin } from "@web/dev-server-esbuild";
2
+
3
+ export default {
4
+ nodeResolve: true,
5
+ files: ["src/**/*.spec.ts"],
6
+ plugins: [esbuildPlugin({ ts: true })],
7
+ };
@@ -1,224 +0,0 @@
1
- body, html {
2
- margin:0; padding: 0;
3
- height: 100%;
4
- }
5
- body {
6
- font-family: Helvetica Neue, Helvetica, Arial;
7
- font-size: 14px;
8
- color:#333;
9
- }
10
- .small { font-size: 12px; }
11
- *, *:after, *:before {
12
- -webkit-box-sizing:border-box;
13
- -moz-box-sizing:border-box;
14
- box-sizing:border-box;
15
- }
16
- h1 { font-size: 20px; margin: 0;}
17
- h2 { font-size: 14px; }
18
- pre {
19
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
20
- margin: 0;
21
- padding: 0;
22
- -moz-tab-size: 2;
23
- -o-tab-size: 2;
24
- tab-size: 2;
25
- }
26
- a { color:#0074D9; text-decoration:none; }
27
- a:hover { text-decoration:underline; }
28
- .strong { font-weight: bold; }
29
- .space-top1 { padding: 10px 0 0 0; }
30
- .pad2y { padding: 20px 0; }
31
- .pad1y { padding: 10px 0; }
32
- .pad2x { padding: 0 20px; }
33
- .pad2 { padding: 20px; }
34
- .pad1 { padding: 10px; }
35
- .space-left2 { padding-left:55px; }
36
- .space-right2 { padding-right:20px; }
37
- .center { text-align:center; }
38
- .clearfix { display:block; }
39
- .clearfix:after {
40
- content:'';
41
- display:block;
42
- height:0;
43
- clear:both;
44
- visibility:hidden;
45
- }
46
- .fl { float: left; }
47
- @media only screen and (max-width:640px) {
48
- .col3 { width:100%; max-width:100%; }
49
- .hide-mobile { display:none!important; }
50
- }
51
-
52
- .quiet {
53
- color: #7f7f7f;
54
- color: rgba(0,0,0,0.5);
55
- }
56
- .quiet a { opacity: 0.7; }
57
-
58
- .fraction {
59
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
60
- font-size: 10px;
61
- color: #555;
62
- background: #E8E8E8;
63
- padding: 4px 5px;
64
- border-radius: 3px;
65
- vertical-align: middle;
66
- }
67
-
68
- div.path a:link, div.path a:visited { color: #333; }
69
- table.coverage {
70
- border-collapse: collapse;
71
- margin: 10px 0 0 0;
72
- padding: 0;
73
- }
74
-
75
- table.coverage td {
76
- margin: 0;
77
- padding: 0;
78
- vertical-align: top;
79
- }
80
- table.coverage td.line-count {
81
- text-align: right;
82
- padding: 0 5px 0 20px;
83
- }
84
- table.coverage td.line-coverage {
85
- text-align: right;
86
- padding-right: 10px;
87
- min-width:20px;
88
- }
89
-
90
- table.coverage td span.cline-any {
91
- display: inline-block;
92
- padding: 0 5px;
93
- width: 100%;
94
- }
95
- .missing-if-branch {
96
- display: inline-block;
97
- margin-right: 5px;
98
- border-radius: 3px;
99
- position: relative;
100
- padding: 0 4px;
101
- background: #333;
102
- color: yellow;
103
- }
104
-
105
- .skip-if-branch {
106
- display: none;
107
- margin-right: 10px;
108
- position: relative;
109
- padding: 0 4px;
110
- background: #ccc;
111
- color: white;
112
- }
113
- .missing-if-branch .typ, .skip-if-branch .typ {
114
- color: inherit !important;
115
- }
116
- .coverage-summary {
117
- border-collapse: collapse;
118
- width: 100%;
119
- }
120
- .coverage-summary tr { border-bottom: 1px solid #bbb; }
121
- .keyline-all { border: 1px solid #ddd; }
122
- .coverage-summary td, .coverage-summary th { padding: 10px; }
123
- .coverage-summary tbody { border: 1px solid #bbb; }
124
- .coverage-summary td { border-right: 1px solid #bbb; }
125
- .coverage-summary td:last-child { border-right: none; }
126
- .coverage-summary th {
127
- text-align: left;
128
- font-weight: normal;
129
- white-space: nowrap;
130
- }
131
- .coverage-summary th.file { border-right: none !important; }
132
- .coverage-summary th.pct { }
133
- .coverage-summary th.pic,
134
- .coverage-summary th.abs,
135
- .coverage-summary td.pct,
136
- .coverage-summary td.abs { text-align: right; }
137
- .coverage-summary td.file { white-space: nowrap; }
138
- .coverage-summary td.pic { min-width: 120px !important; }
139
- .coverage-summary tfoot td { }
140
-
141
- .coverage-summary .sorter {
142
- height: 10px;
143
- width: 7px;
144
- display: inline-block;
145
- margin-left: 0.5em;
146
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
147
- }
148
- .coverage-summary .sorted .sorter {
149
- background-position: 0 -20px;
150
- }
151
- .coverage-summary .sorted-desc .sorter {
152
- background-position: 0 -10px;
153
- }
154
- .status-line { height: 10px; }
155
- /* yellow */
156
- .cbranch-no { background: yellow !important; color: #111; }
157
- /* dark red */
158
- .red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
159
- .low .chart { border:1px solid #C21F39 }
160
- .highlighted,
161
- .highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{
162
- background: #C21F39 !important;
163
- }
164
- /* medium red */
165
- .cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
166
- /* light red */
167
- .low, .cline-no { background:#FCE1E5 }
168
- /* light green */
169
- .high, .cline-yes { background:rgb(230,245,208) }
170
- /* medium green */
171
- .cstat-yes { background:rgb(161,215,106) }
172
- /* dark green */
173
- .status-line.high, .high .cover-fill { background:rgb(77,146,33) }
174
- .high .chart { border:1px solid rgb(77,146,33) }
175
- /* dark yellow (gold) */
176
- .status-line.medium, .medium .cover-fill { background: #f9cd0b; }
177
- .medium .chart { border:1px solid #f9cd0b; }
178
- /* light yellow */
179
- .medium { background: #fff4c2; }
180
-
181
- .cstat-skip { background: #ddd; color: #111; }
182
- .fstat-skip { background: #ddd; color: #111 !important; }
183
- .cbranch-skip { background: #ddd !important; color: #111; }
184
-
185
- span.cline-neutral { background: #eaeaea; }
186
-
187
- .coverage-summary td.empty {
188
- opacity: .5;
189
- padding-top: 4px;
190
- padding-bottom: 4px;
191
- line-height: 1;
192
- color: #888;
193
- }
194
-
195
- .cover-fill, .cover-empty {
196
- display:inline-block;
197
- height: 12px;
198
- }
199
- .chart {
200
- line-height: 0;
201
- }
202
- .cover-empty {
203
- background: white;
204
- }
205
- .cover-full {
206
- border-right: none !important;
207
- }
208
- pre.prettyprint {
209
- border: none !important;
210
- padding: 0 !important;
211
- margin: 0 !important;
212
- }
213
- .com { color: #999 !important; }
214
- .ignore-none { color: #999; font-weight: normal; }
215
-
216
- .wrapper {
217
- min-height: 100%;
218
- height: auto !important;
219
- height: 100%;
220
- margin: 0 auto -48px;
221
- }
222
- .footer, .push {
223
- height: 48px;
224
- }