@enigmatry/entry-components 1.15.1-preview.3 → 1.15.1-preview.30

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 (186) hide show
  1. package/assets/fonts/Montserrat/Montserrat-bold.eot +0 -0
  2. package/assets/fonts/Montserrat/Montserrat-bold.ttf +0 -0
  3. package/assets/fonts/Montserrat/Montserrat-bold.woff +0 -0
  4. package/assets/fonts/Montserrat/Montserrat-bold.woff2 +0 -0
  5. package/assets/fonts/OpenSans/OpenSans-bold.eot +0 -0
  6. package/assets/fonts/OpenSans/OpenSans-bold.ttf +0 -0
  7. package/assets/fonts/OpenSans/OpenSans-bold.woff +0 -0
  8. package/assets/fonts/OpenSans/OpenSans-bold.woff2 +0 -0
  9. package/assets/fonts/OpenSans/OpenSans-normal.eot +0 -0
  10. package/assets/fonts/OpenSans/OpenSans-normal.ttf +0 -0
  11. package/assets/fonts/OpenSans/OpenSans-normal.woff +0 -0
  12. package/assets/fonts/OpenSans/OpenSans-normal.woff2 +0 -0
  13. package/assets/fonts/Roboto/Roboto-bold.woff2 +0 -0
  14. package/assets/fonts/Roboto/Roboto-normal.woff2 +0 -0
  15. package/button/README.md +47 -0
  16. package/button/entry-button-config.d.ts +26 -0
  17. package/button/entry-button.directive.d.ts +18 -0
  18. package/button/entry-button.module.d.ts +9 -0
  19. package/{header → button}/index.d.ts +1 -1
  20. package/button/public-api.d.ts +3 -0
  21. package/dialog/README.md +2 -2
  22. package/dialog/entry-dialog-buttons-alignment.type.d.ts +1 -1
  23. package/dialog/entry-dialog-config.model.d.ts +1 -1
  24. package/dialog/entry-dialog.module.d.ts +4 -1
  25. package/esm2020/{header/enigmatry-entry-components-header.mjs → button/enigmatry-entry-components-button.mjs} +1 -1
  26. package/esm2020/button/entry-button-config.mjs +22 -0
  27. package/esm2020/button/entry-button.directive.mjs +56 -0
  28. package/esm2020/button/entry-button.module.mjs +28 -0
  29. package/esm2020/button/public-api.mjs +4 -0
  30. package/esm2020/dialog/dialogs/entry-dialog.component.mjs +8 -5
  31. package/esm2020/dialog/entry-dialog-buttons-alignment.type.mjs +1 -1
  32. package/esm2020/dialog/entry-dialog-config.model.mjs +3 -3
  33. package/esm2020/dialog/entry-dialog.module.mjs +16 -4
  34. package/esm2020/file-input/enigmatry-entry-components-file-input.mjs +5 -0
  35. package/esm2020/file-input/entry-file-input.component.mjs +197 -0
  36. package/esm2020/file-input/entry-file-input.module.mjs +40 -0
  37. package/esm2020/file-input/public-api.mjs +3 -0
  38. package/esm2020/permissions/enigmatry-entry-components-permissions.mjs +5 -0
  39. package/esm2020/permissions/permission-type.mjs +2 -0
  40. package/esm2020/permissions/permission.directive.mjs +35 -0
  41. package/esm2020/permissions/permission.guard.mjs +14 -0
  42. package/esm2020/permissions/permission.module.mjs +29 -0
  43. package/esm2020/permissions/permission.pipe.mjs +20 -0
  44. package/esm2020/permissions/permission.service.mjs +3 -0
  45. package/esm2020/permissions/public-api.mjs +6 -0
  46. package/esm2020/public-api.mjs +4 -3
  47. package/esm2020/search-filter/entry-search-filter.component.mjs +8 -6
  48. package/esm2020/search-filter/entry-search-filter.module.mjs +12 -4
  49. package/esm2020/search-filter/search-filter-input/search-filter-input.component.mjs +9 -4
  50. package/esm2020/validation/entry-form-errors.component.mjs +7 -3
  51. package/fesm2015/enigmatry-entry-components-button.mjs +110 -0
  52. package/fesm2015/enigmatry-entry-components-button.mjs.map +1 -0
  53. package/fesm2015/enigmatry-entry-components-dialog.mjs +22 -7
  54. package/fesm2015/enigmatry-entry-components-dialog.mjs.map +1 -1
  55. package/fesm2015/enigmatry-entry-components-file-input.mjs +237 -0
  56. package/fesm2015/enigmatry-entry-components-file-input.mjs.map +1 -0
  57. package/fesm2015/enigmatry-entry-components-permissions.mjs +98 -0
  58. package/fesm2015/enigmatry-entry-components-permissions.mjs.map +1 -0
  59. package/fesm2015/enigmatry-entry-components-search-filter.mjs +24 -9
  60. package/fesm2015/enigmatry-entry-components-search-filter.mjs.map +1 -1
  61. package/fesm2015/enigmatry-entry-components-validation.mjs +6 -2
  62. package/fesm2015/enigmatry-entry-components-validation.mjs.map +1 -1
  63. package/fesm2015/enigmatry-entry-components.mjs +3 -2
  64. package/fesm2015/enigmatry-entry-components.mjs.map +1 -1
  65. package/fesm2020/enigmatry-entry-components-button.mjs +107 -0
  66. package/fesm2020/enigmatry-entry-components-button.mjs.map +1 -0
  67. package/fesm2020/enigmatry-entry-components-dialog.mjs +22 -7
  68. package/fesm2020/enigmatry-entry-components-dialog.mjs.map +1 -1
  69. package/fesm2020/enigmatry-entry-components-file-input.mjs +240 -0
  70. package/fesm2020/enigmatry-entry-components-file-input.mjs.map +1 -0
  71. package/fesm2020/enigmatry-entry-components-permissions.mjs +97 -0
  72. package/fesm2020/enigmatry-entry-components-permissions.mjs.map +1 -0
  73. package/fesm2020/enigmatry-entry-components-search-filter.mjs +24 -9
  74. package/fesm2020/enigmatry-entry-components-search-filter.mjs.map +1 -1
  75. package/fesm2020/enigmatry-entry-components-validation.mjs +6 -2
  76. package/fesm2020/enigmatry-entry-components-validation.mjs.map +1 -1
  77. package/fesm2020/enigmatry-entry-components.mjs +3 -2
  78. package/fesm2020/enigmatry-entry-components.mjs.map +1 -1
  79. package/file-input/README.md +71 -0
  80. package/file-input/entry-file-input.component.d.ts +74 -0
  81. package/file-input/entry-file-input.module.d.ts +12 -0
  82. package/{toolbar → file-input}/index.d.ts +1 -1
  83. package/file-input/public-api.d.ts +2 -0
  84. package/package.json +24 -16
  85. package/permissions/README.md +68 -0
  86. package/permissions/index.d.ts +5 -0
  87. package/permissions/permission-type.d.ts +3 -0
  88. package/permissions/permission.directive.d.ts +11 -0
  89. package/permissions/permission.guard.d.ts +2 -0
  90. package/permissions/permission.module.d.ts +9 -0
  91. package/permissions/permission.pipe.d.ts +11 -0
  92. package/permissions/permission.service.d.ts +4 -0
  93. package/permissions/public-api.d.ts +5 -0
  94. package/public-api.d.ts +3 -2
  95. package/search-filter/entry-search-filter.module.d.ts +4 -2
  96. package/search-filter/search-filter-input/search-filter-input.component.d.ts +4 -2
  97. package/styles/_generator.scss +20 -0
  98. package/styles/modules/_default-theme.scss +63 -0
  99. package/styles/modules/components/buttons/_generator.scss +8 -0
  100. package/styles/modules/components/dialogs/_generator.scss +16 -0
  101. package/styles/modules/components/forms/_generator.scss +15 -0
  102. package/styles/modules/components/search-filter/_generator.scss +15 -0
  103. package/styles/modules/components/tables/_cells.scss +19 -0
  104. package/styles/modules/components/tables/_generator.scss +7 -0
  105. package/styles/modules/components/tables/_no-result.scss +10 -0
  106. package/styles/modules/components/tables/_rows.scss +23 -0
  107. package/styles/modules/components/tables/_sorting.scss +11 -0
  108. package/styles/modules/components/tables/_table-body.scss +11 -0
  109. package/styles/modules/typography/_fonts.scss +46 -68
  110. package/styles/modules/vendors/angular-material/_generator.scss +46 -0
  111. package/styles/modules/vendors/angular-material/_palette-generator.scss +32 -0
  112. package/styles/modules/vendors/angular-material/_typography-generator.scss +101 -0
  113. package/styles/partials/core/components/_index.scss +4 -0
  114. package/styles/partials/core/components/dialogs/_general.scss +23 -0
  115. package/styles/partials/core/components/forms/_general.scss +28 -0
  116. package/styles/partials/core/components/search-filter/_general.scss +9 -0
  117. package/styles/partials/core/components/tables/_general.scss +17 -0
  118. package/styles/partials/generator-test.scss +29 -0
  119. package/styles/partials/theming.scss +1 -0
  120. package/dialog/styles/modules/_generator.scss +0 -11
  121. package/dialog/styles/modules/components/dialogs/_general.scss +0 -11
  122. package/dialog/styles/modules/components/dialogs/footers/_general.scss +0 -26
  123. package/dialog/styles/modules/components/dialogs/headers/_general.scss +0 -16
  124. package/dialog/styles/modules/theming/_default-theming.scss +0 -29
  125. package/dialog/styles/partials/core/_index.scss +0 -3
  126. package/dialog/styles/partials/core/components/_index.scss +0 -1
  127. package/dialog/styles/partials/core/components/dialogs/_general.scss +0 -78
  128. package/dialog/styles/partials/core/components/dialogs/_index.scss +0 -1
  129. package/dialog/styles/partials/core/elements/_general.scss +0 -10
  130. package/dialog/styles/partials/core/elements/_index.scss +0 -1
  131. package/dialog/styles/partials/core/layouts/_alignments.scss +0 -13
  132. package/dialog/styles/partials/core/layouts/_index.scss +0 -1
  133. package/dialog/styles/partials/main.scss +0 -1
  134. package/esm2020/header/entry-header.component.mjs +0 -13
  135. package/esm2020/header/entry-header.module.mjs +0 -24
  136. package/esm2020/header/public-api.mjs +0 -3
  137. package/esm2020/toolbar/enigmatry-entry-components-toolbar.mjs +0 -5
  138. package/esm2020/toolbar/entry-toolbar.component.mjs +0 -43
  139. package/esm2020/toolbar/entry-toolbar.module.mjs +0 -24
  140. package/esm2020/toolbar/public-api.mjs +0 -3
  141. package/fesm2015/enigmatry-entry-components-header.mjs +0 -41
  142. package/fesm2015/enigmatry-entry-components-header.mjs.map +0 -1
  143. package/fesm2015/enigmatry-entry-components-toolbar.mjs +0 -71
  144. package/fesm2015/enigmatry-entry-components-toolbar.mjs.map +0 -1
  145. package/fesm2020/enigmatry-entry-components-header.mjs +0 -41
  146. package/fesm2020/enigmatry-entry-components-header.mjs.map +0 -1
  147. package/fesm2020/enigmatry-entry-components-toolbar.mjs +0 -71
  148. package/fesm2020/enigmatry-entry-components-toolbar.mjs.map +0 -1
  149. package/header/README.md +0 -41
  150. package/header/entry-header.component.d.ts +0 -6
  151. package/header/entry-header.module.d.ts +0 -8
  152. package/header/public-api.d.ts +0 -2
  153. package/header/styles/modules/_generator.scss +0 -13
  154. package/header/styles/modules/components/buttons/_general.scss +0 -26
  155. package/header/styles/modules/components/headers/_general.scss +0 -13
  156. package/header/styles/modules/theming/_default-theming.scss +0 -21
  157. package/header/styles/partials/core/_index.scss +0 -3
  158. package/header/styles/partials/core/components/_index.scss +0 -2
  159. package/header/styles/partials/core/components/buttons/_general.scss +0 -42
  160. package/header/styles/partials/core/components/buttons/_index.scss +0 -1
  161. package/header/styles/partials/core/components/headers/_general.scss +0 -9
  162. package/header/styles/partials/core/components/headers/_index.scss +0 -1
  163. package/header/styles/partials/core/elements/_index.scss +0 -1
  164. package/header/styles/partials/core/elements/headings.scss +0 -3
  165. package/header/styles/partials/core/layouts/_alignment.scss +0 -6
  166. package/header/styles/partials/core/layouts/_index.scss +0 -1
  167. package/header/styles/partials/main.scss +0 -1
  168. package/styles/_generate.scss +0 -15
  169. package/styles/modules/_breakpoints.scss +0 -37
  170. package/styles/modules/_generate.scss +0 -5
  171. package/styles/modules/_variables.scss +0 -22
  172. package/styles/modules/states/_hover.scss +0 -27
  173. package/styles/modules/theming/_default-theming.scss +0 -9
  174. package/styles/modules/typography/_generate.scss +0 -7
  175. package/toolbar/README.md +0 -39
  176. package/toolbar/entry-toolbar.component.d.ts +0 -28
  177. package/toolbar/entry-toolbar.module.d.ts +0 -8
  178. package/toolbar/public-api.d.ts +0 -2
  179. package/toolbar/styles/modules/_generate.scss +0 -10
  180. package/toolbar/styles/modules/components/toolbar/_general.scss +0 -34
  181. package/toolbar/styles/modules/theming/_default-theming.scss +0 -8
  182. package/toolbar/styles/partials/core/_index.scss +0 -1
  183. package/toolbar/styles/partials/core/components/_index.scss +0 -1
  184. package/toolbar/styles/partials/core/components/toolbar/_general.scss +0 -100
  185. package/toolbar/styles/partials/core/components/toolbar/_index.scss +0 -1
  186. package/toolbar/styles/partials/main.scss +0 -1
@@ -0,0 +1,16 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ .entry-dialog {
5
+ .title {
6
+ $close-icon-width: map.get($theme, 'general', 'buttons', 'icon-size');
7
+ width: calc(100% - $close-icon-width);
8
+ color: map.get($theme, 'general', 'colors', 'font');
9
+ font-size: map.get($theme, 'dialogs', 'title', 'size');
10
+
11
+ &.without-close-icon {
12
+ width: 100%;
13
+ }
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ $default-gap: map.get($theme, 'general', 'spacing', 'default');
5
+
6
+ .entry-form {
7
+ .action-buttons {
8
+ margin-top: $default-gap;
9
+ }
10
+
11
+ .mat-mdc-form-field {
12
+ margin-bottom: $default-gap;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ $default-gap: map.get($theme, 'general', 'spacing', 'default');
5
+
6
+ .search-form-container {
7
+ .entry-button {
8
+ margin-bottom: $default-gap;
9
+ }
10
+
11
+ .form-field {
12
+ margin-right: 2 * $default-gap;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,19 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ .mat-mdc-cell {
5
+ color: map.get($theme, 'general', 'colors', 'font');
6
+ }
7
+
8
+ .mat-mdc-header-cell:first-of-type, .mat-mdc-cell:first-of-type, .mat-mdc-footer-cell:first-of-type {
9
+ padding-left: map.get($theme, 'tables', 'cells', 'edge-gap');
10
+ }
11
+
12
+ .mat-mdc-header-cell:last-of-type, .mat-mdc-cell:last-of-type, .mat-mdc-footer-cell:last-of-type {
13
+ padding-right: map.get($theme, 'tables', 'cells', 'edge-gap');
14
+ }
15
+
16
+ .selection-cell, .action-cell {
17
+ width: map.get($theme, 'general', 'buttons', 'icon-size');
18
+ }
19
+ }
@@ -0,0 +1,7 @@
1
+ @use 'no-result';
2
+ @use 'table-body' as table;
3
+
4
+ @mixin generate-from($theme) {
5
+ @include table.generate-from($theme);
6
+ @include no-result.generate-from($theme);
7
+ }
@@ -0,0 +1,10 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ .entry-table .no-results {
5
+ font: {
6
+ size: map.get($theme, 'tables', 'contents', 'no-result', 'font-size');
7
+ weight: map.get($theme, 'tables', 'contents', 'no-result', 'font-weight');
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,23 @@
1
+ @use 'sass:map';
2
+ @use '@enigmatry/scss-foundation/src/modules/lists/row-coloring' as list;
3
+
4
+ @mixin generate-from($theme) {
5
+ .mat-mdc-row {
6
+ &.mdc-data-table__row {
7
+ @include list.row-coloring(map.get($theme, 'tables', 'rows', 'odd-even-background'),
8
+ map.get($theme, 'tables', 'rows', 'odd-even-row'));
9
+
10
+ &.selected {
11
+ background-color: map.get($theme, 'general', 'colors', 'primary');
12
+
13
+ .mat-mdc-cell {
14
+ color: map.get($theme, 'tables', 'rows', 'selected-color');
15
+ }
16
+ }
17
+
18
+ &.mat-row-disabled {
19
+ background-color: map.get($theme, 'tables', 'rows', 'disabled-color');
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,11 @@
1
+ @use 'sass:map';
2
+
3
+ @mixin generate-from($theme) {
4
+ .mat-sort-header-sorted {
5
+ font-weight: 700;
6
+ }
7
+
8
+ .mat-sort-header-sorted, .mat-sort-header-arrow {
9
+ color: map.get($theme, 'general', 'colors', 'font');
10
+ }
11
+ }
@@ -0,0 +1,11 @@
1
+ @use 'rows';
2
+ @use 'sorting';
3
+ @use 'cells';
4
+
5
+ @mixin generate-from($theme) {
6
+ .entry-table {
7
+ @include rows.generate-from($theme);
8
+ @include sorting.generate-from($theme);
9
+ @include cells.generate-from($theme);
10
+ }
11
+ }
@@ -1,86 +1,64 @@
1
- @use 'sass:string';
2
1
  @use 'sass:map';
3
- @use 'sass:math';
4
2
 
5
- @mixin generate-font-face($font-config) {
6
- $font-path: map.get($font-config, path);
7
- $font-sources: map.get($font-config, sources);
3
+ $font-path: '/assets/fonts/';
4
+ $font-sources: (
5
+ (
6
+ name: 'Roboto',
7
+ style: normal,
8
+ formats: ('woff2'),
9
+ weight: 400
10
+ ),
11
+ (
12
+ name: 'Roboto',
13
+ style: bold,
14
+ formats: ('woff2'),
15
+ weight: 500
16
+ )
17
+ );
8
18
 
19
+ // $font-sources: (
20
+ // (
21
+ // name: 'OpenSans',
22
+ // style: normal,
23
+ // formats: ('eot', 'woff', 'woff2', 'ttf')
24
+ // ),
25
+ // (
26
+ // name: 'OpenSans',
27
+ // style: bold,
28
+ // formats: ('eot', 'woff', 'woff2', 'ttf')
29
+ // ),
30
+ // (
31
+ // name: 'Montserrat',
32
+ // style: bold,
33
+ // formats: ('eot', 'woff', 'woff2', 'ttf')
34
+ // )
35
+ // );
36
+
37
+ @mixin generate-default-font() {
9
38
  @each $font in $font-sources {
10
39
  $name: map.get($font, name);
11
40
  $style: map.get($font, style);
12
41
  $formats: map.get($font, formats);
13
-
42
+ $weight: map.get($font, weight);
43
+
14
44
  @each $format in $formats {
15
45
  $url: '#{$font-path}#{$name}/#{$name}-#{$style}.#{$format}';
16
-
46
+
17
47
  @font-face {
18
48
  font: {
19
- family: '#{$name}-#{$style}';
20
49
  style: '#{$style}';
50
+
51
+ /* stylelint-disable property-no-unknown, max-nesting-depth */
52
+ @if $weight {
53
+ family: '#{$name}';
54
+ weight: $weight;
55
+ }
56
+ @else {
57
+ family: '#{$name}-#{$style}';
58
+ }
21
59
  }
22
60
  src: url('#{$url}') format('#{$format}');
23
61
  }
24
62
  }
25
63
  }
26
-
27
- // Generate icomoon icons font face:
28
- @include entry-icomoon-icons($font-path);
29
- }
30
-
31
- // TODO: Hardcoded icons font, must be configurable but also to support default value!
32
- @mixin entry-icomoon-icons($font-path) {
33
- @font-face {
34
- font-family: 'icomoon';
35
- font-style: normal;
36
- font-weight: normal;
37
- src: url($font-path + 'icomoon/fonts/icomoon.eot?s68r7n');
38
- src: url($font-path + 'icomoon/fonts/icomoon.eot?s68r7n#iefix') format('embedded-opentype'),
39
- url($font-path + 'icomoon/fonts/icomoon.ttf?s68r7n') format('truetype'),
40
- url($font-path + 'icomoon/fonts//icomoon.woff?s68r7n') format('woff'),
41
- url($font-path + 'icomoon/fonts//icomoon.svg?s68r7n#icomoon') format('svg');
42
- font-display: block;
43
- }
44
-
45
- [class ^= 'icon-'], [class *= ' icon-'] {
46
- /* use !important to prevent issues with browser extensions that change fonts */
47
- font-family: 'icomoon' !important;
48
-
49
- /* Better Font Rendering =========== */
50
- -webkit-font-smoothing: antialiased;
51
- -moz-osx-font-smoothing: grayscale;
52
- font-style: normal;
53
- font-variant: normal;
54
- font-weight: normal;
55
- line-height: 1;
56
- text-transform: none;
57
- speak: never;
58
- }
59
-
60
- .icon-close::before {
61
- content: '\e900';
62
- }
63
-
64
- .icon-menu:before {
65
- content: "\e9bd";
66
- }
67
- }
68
-
69
- // TODO: Hardcoded mixins (currently not ins use) that should be configurable!
70
- /*
71
- @mixin -font($family, $size) {
72
- font: {
73
- family: $family;
74
- size: $size;
75
- };
76
- }
77
- @mixin main-font($size: 14px) {
78
- @include -font('OpenSans-normal', $size);
79
- }
80
- @mixin main-bolded-font($size: 14px) {
81
- @include -font('OpenSans-Bold', $size);
82
- }
83
- @mixin title-font($size: 20px) {
84
- @include -font('Montserrat-bold', $size);
85
64
  }
86
- */
@@ -0,0 +1,46 @@
1
+ /* stylelint-disable scss/no-duplicate-dollar-variables */
2
+ @use '@angular/material' as theming;
3
+ @use 'palette-generator';
4
+ @use 'typography-generator';
5
+ @use 'sass:map';
6
+ @use '../../typography/fonts';
7
+
8
+ /* stylelint-disable scss/function-no-unknown */
9
+ @mixin generate-from($entry-theme) {
10
+ @include theming.core();
11
+ $body-font: map.get($entry-theme, 'general', 'fonts', 'body', 'family');
12
+
13
+ @if $body-font == '' {
14
+ @include fonts.generate-default-font();
15
+ }
16
+
17
+ $primary-palette: theming.define-palette(-get-material-palette-for('primary', $entry-theme));
18
+ $accent-palette: theming.define-palette(-get-material-palette-for('accent', $entry-theme));
19
+ $warn-palette: theming.define-palette(theming.$red-palette);
20
+
21
+ $typography: typography-generator.generate-from($entry-theme);
22
+ @include theming.typography-hierarchy($typography);
23
+
24
+ $material-theme: theming.define-light-theme((
25
+ color: (
26
+ primary: $primary-palette,
27
+ accent: $accent-palette,
28
+ warn: $warn-palette,
29
+ ),
30
+ typography: $typography,
31
+ density: map.get($entry-theme, 'general', 'density')
32
+ ));
33
+
34
+ @include theming.all-component-themes($material-theme);
35
+ }
36
+
37
+ @function -get-material-palette-for($key, $theme) {
38
+ $palette: map.get($theme, 'general', 'colors', $key + '-theme');
39
+
40
+ @if $palette {
41
+ @return $palette;
42
+ }
43
+
44
+ $color: map.get($theme, 'general', 'colors', $key);
45
+ @return palette-generator.generate-from($color);
46
+ }
@@ -0,0 +1,32 @@
1
+ @use 'sass:color';
2
+ @use 'sass:map';
3
+
4
+ @function generate-from($color) {
5
+ $result: (
6
+ 50: color.adjust($color, $lightness: -30%),
7
+ contrast: (
8
+ 50: #212121,
9
+ 100: #212121,
10
+ 200: #212121,
11
+ 300: #212121,
12
+ 400: #212121,
13
+ 500: #FFF,
14
+ 600: #FFF,
15
+ 700: #FFF,
16
+ 800: #FFF,
17
+ 900: #FFF,
18
+ a100: #212121,
19
+ a200: #212121,
20
+ a400: #FFF,
21
+ a700: #FFF
22
+ )
23
+ );
24
+
25
+ @for $counter from 1 through 9 {
26
+ $blended-color: color.adjust($color, $lightness: -27 + $counter * 5%);
27
+ /* stylelint-disable-next-line scss/no-duplicate-dollar-variables */
28
+ $result: map.set($result, $counter * 100, $blended-color);
29
+ }
30
+
31
+ @return $result;
32
+ }
@@ -0,0 +1,101 @@
1
+ /* stylelint-disable scss/no-duplicate-dollar-variables, scss/function-no-unknown */
2
+ @use '@angular/material' as theming;
3
+ @use 'sass:map';
4
+
5
+ @function generate-from($theme) {
6
+ $theme-typography: map.get($theme, 'general', 'typography');
7
+
8
+ @if $theme-typography {
9
+ @return $theme-typography;
10
+ }
11
+
12
+ @return -generate-typography-from($theme);
13
+ }
14
+
15
+ @function -generate-typography-from($theme) {
16
+ $fonts: map.get($theme, 'general', 'fonts');
17
+ $typography: theming.define-typography-config();
18
+
19
+ $typography: -set-font-size-for('body', $typography, $fonts, ('body-1', 'body-2'));
20
+ $typography: -set-font-size-for('buttons', $typography, $fonts, ('button'));
21
+ $typography: -set-font-size-for('hero-titles',$typography,$fonts,('headline-1', 'headline-2',
22
+ 'headline-3', 'headline-4', 'headline-5', 'headline-6'));
23
+ $typography: -set-font-size-for('titles', $typography, $fonts, ('subtitle-1', 'subtitle-2'));
24
+ $typography: -set-font-family($typography, $fonts);
25
+
26
+ @return $typography;
27
+ }
28
+
29
+ @function -set-font-size-for($selector, $typography, $fonts, $desired-size-settings) {
30
+ $desired-size: map.get($fonts, $selector, 'size');
31
+
32
+ @if $desired-size != 0 {
33
+ @each $setting in $desired-size-settings {
34
+ $typography: map.set($typography, $setting, 'font-size', $desired-size);
35
+ }
36
+ }
37
+
38
+ @return $typography;
39
+ }
40
+
41
+ @function -set-font-family($typography, $fonts) {
42
+ $body-font: map.get($fonts, 'body', 'family');
43
+
44
+ @if $body-font == '' {
45
+ @return -generate-defaults-from($typography);
46
+ }
47
+
48
+ $typography: -set-typography-group($typography, ('body-1', 'body-2', 'caption'), $body-font);
49
+
50
+ $titles-font: map.get($fonts, 'titles', 'family');
51
+ $hero-titles-font: map.get($fonts, 'hero-titles', 'family');
52
+ $buttons-font: map.get($fonts, 'buttons', 'family');
53
+
54
+ // We fallback to body font if buttons font isn't provided.
55
+ @if $buttons-font == '' {
56
+ $buttons-font: $body-font;
57
+ }
58
+
59
+ // Both titles font fallback to body font unless main one's being set.
60
+ @if $hero-titles-font == '' and $titles-font == '' {
61
+ $hero-titles-font: $body-font;
62
+ $titles-font: $body-font;
63
+ }
64
+ @else if $hero-titles-font == '' and $titles-font != '' {
65
+ $hero-titles-font: $titles-font;
66
+ }
67
+
68
+ $typography: -set-text-groups-for($typography, $body-font, $buttons-font);
69
+ $typography: -set-typography-group($typography, ('headline-1', 'headline-2', 'headline-3', 'headline-4'), $hero-titles-font);
70
+ $typography: -set-typography-group($typography, ('headline-5', 'headline-6', 'subtitle-1', 'subtitle-2'), $titles-font);
71
+ $typography: map.set($typography, 'font-family', '"#{$buttons-font}"');
72
+
73
+ @return $typography;
74
+ }
75
+
76
+ @function -set-text-groups-for($typography, $body-font, $buttons-font) {
77
+ $typography: -set-typography-group($typography, ('body-1', 'body-2', 'caption'), $body-font);
78
+ $typography: -set-typography-group($typography, ('button'), $buttons-font);
79
+ @return $typography;
80
+ }
81
+
82
+ @function -generate-defaults-from($typography) {
83
+ // Return Roboto (default Angular Material's font (for now).
84
+ // $typography: -set-text-groups-for($typography, 'OpenSans-normal', 'OpenSans-bold');
85
+ // $typography: -set-typography-group($typography,('headline-1', 'headline-2', 'headline-3',
86
+ // 'headline-4', 'headline-5', 'headline-6', 'subtitle-1', 'subtitle-2'),'Montserrat-bold');
87
+ @return $typography;
88
+ }
89
+
90
+ @function -set-typography-group($typography, $desired-typography-group, $font) {
91
+ @each $setting in $desired-typography-group {
92
+ $typography: -set-typography-font($typography, $setting, $font);
93
+ }
94
+
95
+ @return $typography;
96
+ }
97
+
98
+ @function -set-typography-font($typography, $section, $font) {
99
+ $typography: map.set($typography, $section, 'font-family', '"#{$font}"');
100
+ @return $typography;
101
+ }
@@ -0,0 +1,4 @@
1
+ @use 'dialogs/general' as dialogs;
2
+ @use 'tables/general' as tables;
3
+ @use 'forms/general' as forms;
4
+ @use 'search-filter/general' as search-filter;
@@ -0,0 +1,23 @@
1
+ @use 'scss-foundation/src/modules/display/items';
2
+ @use 'scss-foundation/src/modules/text/modification' as text;
3
+
4
+ .entry-dialog {
5
+ .dialog-header {
6
+ @include items.fully-align(center, space-between, row, nowrap);
7
+
8
+ .title {
9
+ @include text.ellipsis();
10
+ }
11
+ }
12
+
13
+ .dialog-content {
14
+ display: inline-block;
15
+ width: 100%;
16
+ /* stylelint-disable-next-line unit-allowed-list */
17
+ max-height: 50vh;
18
+ }
19
+
20
+ .dialog-actions {
21
+ padding: 0 24px 14px;
22
+ }
23
+ }
@@ -0,0 +1,28 @@
1
+ @use '@enigmatry/scss-foundation/src/modules/display/items';
2
+
3
+ .entry-form {
4
+ .action-buttons .mdc-button:not(:first-child) {
5
+ margin-left: 10px;
6
+ }
7
+
8
+ .entry-checkbox {
9
+ display: block;
10
+ }
11
+
12
+ .mdc-form-field {
13
+ margin-bottom: 10px;
14
+ }
15
+ }
16
+
17
+ .datetimepicker {
18
+ .mat-form-field-appearance-outline .mat-form-field-infix {
19
+ padding: {
20
+ top: 8px;
21
+ bottom: 8px;
22
+ }
23
+ }
24
+ }
25
+
26
+ .entry-date-time-picker {
27
+ @include items.fully-align(baseline, space-between, row, nowrap);
28
+ }
@@ -0,0 +1,9 @@
1
+ @use '@enigmatry/scss-foundation/src/modules/display/items';
2
+
3
+ .search-form-container {
4
+ @include items.align-center();
5
+
6
+ .form-field {
7
+ width: 200px;
8
+ }
9
+ }
@@ -0,0 +1,17 @@
1
+ @use '@enigmatry/scss-foundation/src/modules/display/items';
2
+
3
+ .entry-table {
4
+ display: flex;
5
+ flex-direction: column;
6
+ overflow: auto;
7
+
8
+ .pagination {
9
+ margin-bottom: 10px;
10
+ }
11
+
12
+ .no-results {
13
+ @include items.align-absolute-center();
14
+ flex: 1;
15
+ min-height: 50px;
16
+ }
17
+ }
@@ -0,0 +1,29 @@
1
+ @use '../generator';
2
+
3
+ $custom-theme: (
4
+ general: (
5
+ colors: (
6
+ primary: #FAE3C1,
7
+ disabled: (
8
+ foreground: cyan,
9
+ background: magenta
10
+ )
11
+ ),
12
+ fonts: (
13
+ body: (
14
+ family: 'My-Font',
15
+ size: 41px
16
+ ),
17
+ buttons: (
18
+ size: 26px
19
+ )
20
+ )
21
+ ),
22
+ tables: (
23
+ cells: (
24
+ first-cell-padding-left: 11px
25
+ )
26
+ )
27
+ );
28
+
29
+ @include generator.generate-from($custom-theme);
@@ -0,0 +1 @@
1
+ @use 'core/components';
@@ -1,11 +0,0 @@
1
- @use 'sass:map';
2
-
3
- @use 'theming/default-theming' as default_theme;
4
- @use 'components/dialogs/general' as dialogs;
5
-
6
- $default-theme: default_theme.$theme;
7
-
8
- @mixin generate($custom-theme: ()) {
9
- $merged-theme: map.deep-merge($default-theme, $custom-theme);
10
- @include dialogs.generate-dialog-from($merged-theme);
11
- }
@@ -1,11 +0,0 @@
1
- @use '@enigmatry/scss-foundation/src/modules/map';
2
- @use 'headers/general' as headers;
3
- @use 'footers/general' as footers;
4
-
5
- @mixin generate-dialog-from($theme) {
6
- .entry-dialog {
7
- @include headers.generate-headers-from($theme);
8
- @include footers.generate-footers-from($theme);
9
- font-size: map.value-from($theme, 'default-font-size');
10
- }
11
- }
@@ -1,26 +0,0 @@
1
- @use '@enigmatry/scss-foundation/src/modules/map';
2
- @use '../../../../../../styles/modules/states/hover';
3
-
4
- @mixin generate-footers-from($theme) {
5
- .button-confirm {
6
- @include hover.default(
7
- map.value-from($theme, 'button-confirm.default-font-color'),
8
- map.value-from($theme, 'button-confirm.hover-font-color'));
9
- background-color: map.value-from($theme, 'button-confirm.default-background');
10
-
11
- &:hover {
12
- background-color: map.value-from($theme, 'button-confirm.hover-background');
13
- }
14
- }
15
-
16
- .button-cancel {
17
- @include hover.default(
18
- map.value-from($theme, 'button-cancel.default-font-color'),
19
- map.value-from($theme, 'button-cancel.hover-font-color'));
20
- background-color: map.value-from($theme, 'button-cancel.default-background');
21
-
22
- &:hover {
23
- background-color: map.value-from($theme, 'button-cancel.hover-background');
24
- }
25
- }
26
- }
@@ -1,16 +0,0 @@
1
- @use '@enigmatry/scss-foundation/src/modules/map';
2
- @use '../../../../../../styles/modules/states/hover';
3
-
4
- @mixin generate-headers-from($theme) {
5
- .title {
6
- color: map.value-from($theme, 'header.title.color');
7
- font-size: map.value-from($theme, 'header.title.size');
8
- }
9
-
10
- .close-button {
11
- @include hover.default(
12
- map.value-from($theme, 'header.close-icon.default-color'),
13
- map.value-from($theme, 'header.close-icon.hover-color'));
14
- font-size: map.value-from($theme, 'header.close-icon.size');
15
- }
16
- }
@@ -1,29 +0,0 @@
1
- @use '../../../../styles/modules/variables' as vars;
2
-
3
- $theme: (
4
- header: (
5
- title: (
6
- size: 20px,
7
- color: vars.$font-color-default,
8
- ),
9
- close-icon: (
10
- size: 12px,
11
- default-color: vars.$font-color-default,
12
- hover-color: vars.$primary,
13
- )
14
- ),
15
- content-color: vars.$font-color-default,
16
- default-font-size: 14px,
17
- button-confirm: (
18
- default-background: vars.$primary,
19
- default-font-color: vars.$font-color-light,
20
- hover-background: vars.$accent,
21
- hover-font-color: vars.$font-color-light,
22
- ),
23
- button-cancel: (
24
- default-background: transparent,
25
- default-font-color: vars.$primary,
26
- hover-background: transparent,
27
- hover-font-color: vars.$accent,
28
- )
29
- );
@@ -1,3 +0,0 @@
1
- @use 'components';
2
- @use 'elements';
3
- @use 'layouts';