@esfaenza/core 15.2.0

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 (180) hide show
  1. package/README.md +24 -0
  2. package/components/back-top/back-top.component.d.ts +12 -0
  3. package/components/breadcrumb/breadcrumb.component.d.ts +15 -0
  4. package/components/components.module.d.ts +25 -0
  5. package/components/error/404/pagenotfound.component.d.ts +13 -0
  6. package/components/error/500/servererror.component.d.ts +17 -0
  7. package/components/error/Angular/angularerror.component.d.ts +24 -0
  8. package/components/external-page/external_pages.component.d.ts +21 -0
  9. package/components/index.d.ts +5 -0
  10. package/components/jace-login/jace-login.component.d.ts +7 -0
  11. package/components/navbar/modules-board/jace-modules-board.component.d.ts +13 -0
  12. package/components/navbar/navbar.component.d.ts +60 -0
  13. package/components/navbar/navbar.component.loc.d.ts +8 -0
  14. package/components/page/pages.component.d.ts +23 -0
  15. package/components/public-api.d.ts +13 -0
  16. package/components/redirecter/redirecter.component.d.ts +19 -0
  17. package/components/sidebar/sidebar.component.d.ts +39 -0
  18. package/components/sidebar/sidebar.component.service.d.ts +27 -0
  19. package/directives/directives.module.d.ts +9 -0
  20. package/directives/draggable/draggable.directive.d.ts +13 -0
  21. package/directives/index.d.ts +5 -0
  22. package/directives/public-api.d.ts +4 -0
  23. package/directives/slim-scroll/slim-scroll.directive.d.ts +15 -0
  24. package/directives/widget/widget.directive.d.ts +9 -0
  25. package/domain/index.d.ts +5 -0
  26. package/domain/models/core/classes/ApplicationMenu.d.ts +16 -0
  27. package/domain/models/core/classes/EnvOptions.d.ts +14 -0
  28. package/domain/models/jace/classes/AccountScope.d.ts +9 -0
  29. package/domain/models/jace/classes/ActiveModuleView.d.ts +15 -0
  30. package/domain/models/jace/classes/JaceAccount.d.ts +26 -0
  31. package/domain/models/jace/classes/JaceIdentity.d.ts +17 -0
  32. package/domain/models/jace/classes/JaceModule.d.ts +6 -0
  33. package/domain/models/jace/classes/JacePermission.d.ts +9 -0
  34. package/domain/models/jace/classes/JaceRole.d.ts +11 -0
  35. package/domain/models/jace/classes/User.d.ts +4 -0
  36. package/domain/public-api.d.ts +11 -0
  37. package/domain/tokens.d.ts +16 -0
  38. package/esm2020/components/back-top/back-top.component.mjs +43 -0
  39. package/esm2020/components/breadcrumb/breadcrumb.component.mjs +55 -0
  40. package/esm2020/components/components.module.mjs +74 -0
  41. package/esm2020/components/error/404/pagenotfound.component.mjs +27 -0
  42. package/esm2020/components/error/500/servererror.component.mjs +35 -0
  43. package/esm2020/components/error/Angular/angularerror.component.mjs +50 -0
  44. package/esm2020/components/esfaenza-core-components.mjs +5 -0
  45. package/esm2020/components/external-page/external_pages.component.mjs +46 -0
  46. package/esm2020/components/jace-login/jace-login.component.mjs +17 -0
  47. package/esm2020/components/navbar/modules-board/jace-modules-board.component.mjs +40 -0
  48. package/esm2020/components/navbar/navbar.component.loc.mjs +36 -0
  49. package/esm2020/components/navbar/navbar.component.mjs +179 -0
  50. package/esm2020/components/page/pages.component.mjs +57 -0
  51. package/esm2020/components/public-api.mjs +14 -0
  52. package/esm2020/components/redirecter/redirecter.component.mjs +53 -0
  53. package/esm2020/components/sidebar/sidebar.component.mjs +179 -0
  54. package/esm2020/components/sidebar/sidebar.component.service.mjs +58 -0
  55. package/esm2020/directives/directives.module.mjs +18 -0
  56. package/esm2020/directives/draggable/draggable.directive.mjs +48 -0
  57. package/esm2020/directives/esfaenza-core-directives.mjs +5 -0
  58. package/esm2020/directives/public-api.mjs +5 -0
  59. package/esm2020/directives/slim-scroll/slim-scroll.directive.mjs +40 -0
  60. package/esm2020/directives/widget/widget.directive.mjs +36 -0
  61. package/esm2020/domain/esfaenza-core-domain.mjs +5 -0
  62. package/esm2020/domain/models/core/classes/ApplicationMenu.mjs +26 -0
  63. package/esm2020/domain/models/core/classes/EnvOptions.mjs +4 -0
  64. package/esm2020/domain/models/jace/classes/AccountScope.mjs +8 -0
  65. package/esm2020/domain/models/jace/classes/ActiveModuleView.mjs +9 -0
  66. package/esm2020/domain/models/jace/classes/JaceAccount.mjs +5 -0
  67. package/esm2020/domain/models/jace/classes/JaceIdentity.mjs +16 -0
  68. package/esm2020/domain/models/jace/classes/JaceModule.mjs +3 -0
  69. package/esm2020/domain/models/jace/classes/JacePermission.mjs +3 -0
  70. package/esm2020/domain/models/jace/classes/JaceRole.mjs +3 -0
  71. package/esm2020/domain/models/jace/classes/User.mjs +3 -0
  72. package/esm2020/domain/public-api.mjs +12 -0
  73. package/esm2020/domain/tokens.mjs +11 -0
  74. package/esm2020/esfaenza-core.mjs +5 -0
  75. package/esm2020/helpers/classes/ResizeListener.mjs +38 -0
  76. package/esm2020/helpers/esfaenza-core-helpers.mjs +5 -0
  77. package/esm2020/helpers/public-api.mjs +2 -0
  78. package/esm2020/lib/app.component.mjs +26 -0
  79. package/esm2020/lib/core.module.mjs +227 -0
  80. package/esm2020/modules/classes/_base.module.mjs +27 -0
  81. package/esm2020/modules/classes/t_c.module.mjs +85 -0
  82. package/esm2020/modules/esfaenza-core-modules.mjs +5 -0
  83. package/esm2020/modules/public-api.mjs +3 -0
  84. package/esm2020/pipes/esfaenza-core-pipes.mjs +5 -0
  85. package/esm2020/pipes/included_in/included_in.pipe.mjs +17 -0
  86. package/esm2020/pipes/pipes.module.mjs +20 -0
  87. package/esm2020/pipes/public-api.mjs +7 -0
  88. package/esm2020/pipes/safe_html/safe_html.pipe.mjs +18 -0
  89. package/esm2020/pipes/safe_script/safe_script.pipe.mjs +18 -0
  90. package/esm2020/pipes/safe_style/safe_style.pipe.mjs +18 -0
  91. package/esm2020/pipes/safe_url/safe_url.pipe.mjs +18 -0
  92. package/esm2020/public-api.mjs +4 -0
  93. package/esm2020/services/classes/app.accesstoken.mjs +51 -0
  94. package/esm2020/services/classes/app.errorhandler.mjs +41 -0
  95. package/esm2020/services/classes/app.event.mjs +27 -0
  96. package/esm2020/services/classes/app.httpextensions.loc.mjs +15 -0
  97. package/esm2020/services/classes/app.httpextensions.mjs +90 -0
  98. package/esm2020/services/classes/app.routeguard.mjs +22 -0
  99. package/esm2020/services/classes/app.session.mjs +33 -0
  100. package/esm2020/services/classes/app.state.mjs +172 -0
  101. package/esm2020/services/classes/preferences/app.cache.persistor.mjs +94 -0
  102. package/esm2020/services/classes/preferences/app.preference.persistor.mjs +94 -0
  103. package/esm2020/services/esfaenza-core-services.mjs +5 -0
  104. package/esm2020/services/public-api.mjs +10 -0
  105. package/fesm2015/esfaenza-core-components.mjs +870 -0
  106. package/fesm2015/esfaenza-core-components.mjs.map +1 -0
  107. package/fesm2015/esfaenza-core-directives.mjs +138 -0
  108. package/fesm2015/esfaenza-core-directives.mjs.map +1 -0
  109. package/fesm2015/esfaenza-core-domain.mjs +99 -0
  110. package/fesm2015/esfaenza-core-domain.mjs.map +1 -0
  111. package/fesm2015/esfaenza-core-helpers.mjs +44 -0
  112. package/fesm2015/esfaenza-core-helpers.mjs.map +1 -0
  113. package/fesm2015/esfaenza-core-modules.mjs +112 -0
  114. package/fesm2015/esfaenza-core-modules.mjs.map +1 -0
  115. package/fesm2015/esfaenza-core-pipes.mjs +97 -0
  116. package/fesm2015/esfaenza-core-pipes.mjs.map +1 -0
  117. package/fesm2015/esfaenza-core-services.mjs +598 -0
  118. package/fesm2015/esfaenza-core-services.mjs.map +1 -0
  119. package/fesm2015/esfaenza-core.mjs +251 -0
  120. package/fesm2015/esfaenza-core.mjs.map +1 -0
  121. package/fesm2020/esfaenza-core-components.mjs +863 -0
  122. package/fesm2020/esfaenza-core-components.mjs.map +1 -0
  123. package/fesm2020/esfaenza-core-directives.mjs +138 -0
  124. package/fesm2020/esfaenza-core-directives.mjs.map +1 -0
  125. package/fesm2020/esfaenza-core-domain.mjs +98 -0
  126. package/fesm2020/esfaenza-core-domain.mjs.map +1 -0
  127. package/fesm2020/esfaenza-core-helpers.mjs +44 -0
  128. package/fesm2020/esfaenza-core-helpers.mjs.map +1 -0
  129. package/fesm2020/esfaenza-core-modules.mjs +112 -0
  130. package/fesm2020/esfaenza-core-modules.mjs.map +1 -0
  131. package/fesm2020/esfaenza-core-pipes.mjs +97 -0
  132. package/fesm2020/esfaenza-core-pipes.mjs.map +1 -0
  133. package/fesm2020/esfaenza-core-services.mjs +595 -0
  134. package/fesm2020/esfaenza-core-services.mjs.map +1 -0
  135. package/fesm2020/esfaenza-core.mjs +251 -0
  136. package/fesm2020/esfaenza-core.mjs.map +1 -0
  137. package/helpers/classes/ResizeListener.d.ts +12 -0
  138. package/helpers/index.d.ts +5 -0
  139. package/helpers/public-api.d.ts +1 -0
  140. package/index.d.ts +5 -0
  141. package/lib/app.component.d.ts +12 -0
  142. package/lib/core.module.d.ts +82 -0
  143. package/modules/classes/_base.module.d.ts +4 -0
  144. package/modules/classes/t_c.module.d.ts +19 -0
  145. package/modules/index.d.ts +5 -0
  146. package/modules/public-api.d.ts +2 -0
  147. package/package.json +115 -0
  148. package/pipes/included_in/included_in.pipe.d.ts +7 -0
  149. package/pipes/index.d.ts +5 -0
  150. package/pipes/pipes.module.d.ts +11 -0
  151. package/pipes/public-api.d.ts +6 -0
  152. package/pipes/safe_html/safe_html.pipe.d.ts +10 -0
  153. package/pipes/safe_script/safe_script.pipe.d.ts +10 -0
  154. package/pipes/safe_style/safe_style.pipe.d.ts +10 -0
  155. package/pipes/safe_url/safe_url.pipe.d.ts +10 -0
  156. package/public-api.d.ts +3 -0
  157. package/services/classes/app.accesstoken.d.ts +15 -0
  158. package/services/classes/app.errorhandler.d.ts +11 -0
  159. package/services/classes/app.event.d.ts +10 -0
  160. package/services/classes/app.httpextensions.d.ts +34 -0
  161. package/services/classes/app.httpextensions.loc.d.ts +8 -0
  162. package/services/classes/app.routeguard.d.ts +10 -0
  163. package/services/classes/app.session.d.ts +14 -0
  164. package/services/classes/app.state.d.ts +59 -0
  165. package/services/classes/preferences/app.cache.persistor.d.ts +25 -0
  166. package/services/classes/preferences/app.preference.persistor.d.ts +25 -0
  167. package/services/index.d.ts +5 -0
  168. package/services/public-api.d.ts +9 -0
  169. package/theme/initial.scss +48 -0
  170. package/theme/styles/_base.scss +257 -0
  171. package/theme/styles/_bootstrap-override.scss +1624 -0
  172. package/theme/styles/_font.scss +86 -0
  173. package/theme/styles/_fullcalendar-override.scss +86 -0
  174. package/theme/styles/_libs-override.scss +97 -0
  175. package/theme/styles/_material-override.scss +231 -0
  176. package/theme/styles/_mixins.scss +50 -0
  177. package/theme/styles/_preloader.scss +119 -0
  178. package/theme/styles/_project-override.scss +2383 -0
  179. package/theme/styles/_variables.scss +52 -0
  180. package/theme/styles/skins/_blue.scss +16 -0
@@ -0,0 +1,86 @@
1
+ /***************************/
2
+ /* Roboto */
3
+ /***************************/
4
+ @font-face {
5
+ font-family: 'Roboto';
6
+ font-style: normal;
7
+ font-weight: 100;
8
+ src: local('Roboto Thin'), local('Roboto-Thin'), url(#{$fonts-root}google/Roboto/Roboto-Thin.ttf) format('truetype');
9
+ }
10
+
11
+ @font-face {
12
+ font-family: 'Roboto';
13
+ font-style: italic;
14
+ font-weight: 100;
15
+ src: local('Roboto Thin Italic'), local('Roboto-ThinItalic'), url(#{$fonts-root}google/Roboto/Roboto-ThinItalic.ttf) format('truetype');
16
+ }
17
+
18
+ @font-face {
19
+ font-family: 'Roboto';
20
+ font-style: normal;
21
+ font-weight: 300;
22
+ src: local('Roboto Light'), local('Roboto-Light'), url(#{$fonts-root}google/Roboto/Roboto-Light.ttf) format('truetype');
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'Roboto';
27
+ font-style: italic;
28
+ font-weight: 300;
29
+ src: local('Roboto Light Italic'), local('Roboto-LightItalic'), url(#{$fonts-root}google/Roboto/Roboto-LightItalic.ttf) format('truetype');
30
+ }
31
+
32
+ @font-face {
33
+ font-family: 'Roboto';
34
+ font-style: normal;
35
+ font-weight: 400;
36
+ src: local('Roboto Regular'), local('Roboto-Regular'), url(#{$fonts-root}google/Roboto/Roboto-Regular.ttf) format('truetype');
37
+ }
38
+
39
+ @font-face {
40
+ font-family: 'Roboto';
41
+ font-style: italic;
42
+ font-weight: 400;
43
+ src: local('Roboto Italic'), local('Roboto-Italic'), url(#{$fonts-root}google/Roboto/Roboto-Italic.ttf) format('truetype');
44
+ }
45
+
46
+ @font-face {
47
+ font-family: 'Roboto';
48
+ font-style: normal;
49
+ font-weight: 500;
50
+ src: local('Roboto Medium'), local('Roboto-Medium'), url(#{$fonts-root}google/Roboto/Roboto-Medium.ttf) format('truetype');
51
+ }
52
+
53
+ @font-face {
54
+ font-family: 'Roboto';
55
+ font-style: italic;
56
+ font-weight: 500;
57
+ src: local('Roboto Medium Italic'), local('Roboto-MediumItalic'), url(#{$fonts-root}google/Roboto/Roboto-MediumItalic.ttf) format('truetype');
58
+ }
59
+
60
+ @font-face {
61
+ font-family: 'Roboto';
62
+ font-style: normal;
63
+ font-weight: 700;
64
+ src: local('Roboto Bold'), local('Roboto-Bold'), url(#{$fonts-root}google/Roboto/Roboto-Bold.ttf) format('truetype');
65
+ }
66
+
67
+ @font-face {
68
+ font-family: 'Roboto';
69
+ font-style: italic;
70
+ font-weight: 700;
71
+ src: local('Roboto Bold Italic'), local('Roboto-BoldItalic'), url(#{$fonts-root}google/Roboto/Roboto-BoldItalic.ttf) format('truetype');
72
+ }
73
+
74
+ @font-face {
75
+ font-family: 'Roboto';
76
+ font-style: normal;
77
+ font-weight: 900;
78
+ src: local('Roboto Black'), local('Roboto-Black'), url(#{$fonts-root}google/Roboto/Roboto-Black.ttf) format('truetype');
79
+ }
80
+
81
+ @font-face {
82
+ font-family: 'Roboto';
83
+ font-style: italic;
84
+ font-weight: 900;
85
+ src: local('Roboto Black Italic'), local('Roboto-BlackItalic'), url(#{$fonts-root}google/Roboto/Roboto-BlackItalic.ttf) format('truetype');
86
+ }
@@ -0,0 +1,86 @@
1
+ .fc-daygrid-day-number,
2
+ .fc-col-header-cell-cushion {
3
+ color: black;
4
+
5
+ &:hover {
6
+ color: black;
7
+ }
8
+ }
9
+
10
+ .fc-col-header-cell-cushion {
11
+ text-transform: uppercase;
12
+ }
13
+
14
+ .fc-toolbar-title {
15
+ text-transform: capitalize;
16
+ padding-left: 9px;
17
+ }
18
+
19
+ //-----------------------
20
+
21
+ /*Questo insieme ai 2 CSS qui sotto permette di nascondere il bordo senza ucciderlo, dato che ucciderlo sembra fuckuppare tutta la grafica su chrome*/
22
+ .fc-scroller fc-scroller-liquid-absolute {
23
+ overflow: hidden !important;
24
+ }
25
+ /*Rimuove il bordo a destra del calendario nell'header*/
26
+ .fc-scrollgrid-section.fc-scrollgrid-section-header > td {
27
+ border: 1px solid white;
28
+ }
29
+ /*Riumuove il bordo a destra e in basso dell'header*/
30
+ .fc-scrollgrid-section.fc-scrollgrid-section-body.fc-scrollgrid-section-liquid > td {
31
+ border: 1px solid white;
32
+ }
33
+
34
+
35
+ /*Restyling pulsanti*/
36
+ .fc-button {
37
+ border-width: 1px;
38
+ background-color: transparent;
39
+ }
40
+
41
+ .fc-day-today .fc-daygrid-day-number {
42
+ font-weight: bold;
43
+ }
44
+
45
+ /*Rimuove filter bordo sopra e a sinistra del calendario*/
46
+ .fc-theme-standard .fc-scrollgrid {
47
+ border: none !important;
48
+ }
49
+
50
+ .fc .fc-button-primary:focus {
51
+ box-shadow: none !important;
52
+ }
53
+
54
+ .fc-button-primary {
55
+ background-color: white !important;
56
+ color: #2c3e50 !important;
57
+
58
+ &:hover {
59
+ background-color: #2c3e50 !important;
60
+ color: white !important;
61
+ }
62
+ }
63
+
64
+ .fc-button-primary[disabled]:hover {
65
+ background-color: white !important;
66
+ color: #2c3e50 !important;
67
+ }
68
+
69
+ .fc-button .fc-icon {
70
+ position: relative;
71
+ top: -.05em;
72
+ margin: 0 .2em;
73
+ vertical-align: middle
74
+ }
75
+
76
+
77
+
78
+ .fc-event-title-container {
79
+ font-size: 13px;
80
+ }
81
+
82
+ /*Wrappa il titolo in modo da non nascondere pezzi di testo*/
83
+ .fc-event-time, .fc-event-title {
84
+ padding: 0 1px;
85
+ white-space: normal;
86
+ }
@@ -0,0 +1,97 @@
1
+ .pace {
2
+ .pace-progress {
3
+ background: $sidebar-item-active-bg-color;
4
+ position: absolute;
5
+ height: 3px;
6
+ z-index: 0;
7
+ }
8
+
9
+ .pace-progress-inner {
10
+ display: none;
11
+ }
12
+
13
+ .pace-activity {
14
+ position: absolute;
15
+ top: 10px;
16
+ left: 10px;
17
+ border-width: 1px;
18
+ right: auto;
19
+ width: 18px;
20
+ height: 18px;
21
+ border-top-color: $main-color;
22
+ border-left-color: $main-color;
23
+ }
24
+ }
25
+
26
+ /*** Slim-scroll ***/
27
+ .slimScrollBar, .slimScrollRail {
28
+ border-radius: 0px !important;
29
+ width: 4px !important;
30
+ }
31
+
32
+ // Small devices (landscape phones, 544px and up)
33
+ @media (min-width: 544px) and (max-width: 767px) {
34
+ }
35
+
36
+ // Medium devices (tablets, 768px and up)
37
+ @media (min-width: 768px) and (max-width: 991px) {
38
+ }
39
+
40
+ // Large devices (desktops, 992px and up)
41
+ @media (min-width: 992px) and (max-width: 1199px) {
42
+ }
43
+
44
+ // Extra large devices (large desktops, 1200px and up)
45
+ @media (min-width: 1200px) {
46
+ }
47
+
48
+ //Dragula
49
+ /* in-flight clone */
50
+ .gu-mirror {
51
+ position: fixed !important;
52
+ margin: 0 !important;
53
+ z-index: 9999 !important;
54
+ opacity: 0.8;
55
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
56
+ filter: alpha(opacity=80);
57
+ pointer-events: none;
58
+ }
59
+ /* high-performance display:none; helper */
60
+ .gu-hide {
61
+ left: -9999px !important;
62
+ }
63
+ /* added to mirrorContainer (default = body) while dragging */
64
+ .gu-unselectable {
65
+ -webkit-user-select: none !important;
66
+ -moz-user-select: none !important;
67
+ -ms-user-select: none !important;
68
+ user-select: none !important;
69
+ }
70
+ /* added to the source element while its mirror is dragged */
71
+ .gu-transit {
72
+ opacity: 0.2;
73
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
74
+ filter: alpha(opacity=20);
75
+ }
76
+
77
+ //Guppy
78
+ .guppy_help {
79
+ max-height: 400px;
80
+ overflow-y: scroll;
81
+ }
82
+
83
+ //Toastr
84
+ .toast-container {
85
+ margin-top: 55px;
86
+ }
87
+
88
+ // Ngx json viewer
89
+ // Via quel background orribile
90
+ .ngx-json-viewer .segment-type-null > .segment-main > .segment-value {
91
+ background-color: inherit !important;
92
+ }
93
+
94
+ // SweetAlert2: via il problema che ogni tanto scrolla
95
+ .swal2-html-container {
96
+ overflow: hidden;
97
+ }
@@ -0,0 +1,231 @@
1
+ //******************************************* Piccoli aggiustamenti agli stili material per adattarli al mio template*******************************************
2
+
3
+ //Colore per indicare un field disabilitato
4
+ .mat-form-field-disabled .mat-form-field-wrapper {
5
+ background-color: #ddd;
6
+ }
7
+
8
+ //Per rimuovere il bordo della label quando la label non è presente
9
+ .mat-no-border-top .mat-form-field-infix {
10
+ border-top: none !important;
11
+ }
12
+
13
+ //Stile da usare negli ibridi material-input vecchi
14
+ .mat-dflt-margin {
15
+ margin-top: .125em !important;
16
+ margin-bottom: .125em !important;
17
+ }
18
+
19
+ .mat-form-field-appearance-outline .mat-form-field-wrapper {
20
+ margin-top: .125em !important;
21
+ margin-bottom: .125em !important;
22
+ }
23
+
24
+ //I padding sono già gestiti dal mio form control quindi ignoro quelli di Material
25
+ .mat-form-field-wrapper {
26
+ padding-bottom: 0;
27
+ //Questi due stili però mi servono per fare gli stiling corretti quando gli input son disabilitati e non DOVREBBERO rompere le palle ai form control
28
+ height: 35px;
29
+ min-height: 35px !important;
30
+ margin-bottom: -7px !important;
31
+ }
32
+ //Stile di default per permettergli di vivere bene dentro i col-md
33
+ .mat-full-width {
34
+ width: 100%;
35
+ }
36
+
37
+ //Stile per permettere di avere il field wrapper che ricopra per bene l'input
38
+ .mat-full-height .mat-form-field-wrapper {
39
+ height: 100% !important;
40
+ }
41
+
42
+ //I padding di default sono troppo grandi ed espressi con em, cosa che il mio template supporta per modo di dire (Perché la gente non usa i pixel?!)
43
+ .mat-form-field-appearance-outline .mat-form-field-infix {
44
+ padding-top: 5px;
45
+ padding-bottom: 0;
46
+ height: 36px;
47
+ }
48
+
49
+ //Aggiustamenti di size vari per la select
50
+ .mat-form-field-appearance-outline .mat-form-field-infix select.mat-input-element {
51
+ background-color: transparent;
52
+ margin-bottom: -11px !important;
53
+ margin-top: -2px !important;
54
+ padding-top: 0 !important;
55
+ top: 0 !important;
56
+ }
57
+
58
+ //Aggiustamenti di size vari per gli input
59
+ .mat-form-field-appearance-outline .mat-form-field-infix input {
60
+ display: inline-flex;
61
+ margin-top: -8px;
62
+ margin-bottom: -5px;
63
+ padding-top: 8px;
64
+ }
65
+
66
+ //Sistemo sti cosi pixel perfect dato che con gli em e whatever su firefox fa banane mentre su chrome si vede da Dio... io fucking Boh
67
+ .mat-form-field-appearance-outline .mat-form-field-suffix {
68
+ height: 25px !important;
69
+ top: -2px !important;
70
+ }
71
+
72
+ //Qualche sistemazione per i suffix aggiunti a mano
73
+ .mat-form-field-appearance-outline .mat-form-field-suffix .form-input-suffix {
74
+ margin-right: 5px !important;
75
+ position: absolute !important;
76
+ top: 7px !important;
77
+ right: 4px !important;
78
+ }
79
+
80
+ //Qualche sistemazione per i suffix aggiunti a mano
81
+ .mat-form-field-appearance-outline .mat-form-field-infix .form-input-suffix {
82
+ position: relative !important;
83
+ //Non modificare!! In dev sembra che le posizioni siano sfanculate leggermente ma in realtà in AOT tutto è perfetto
84
+ top: -4px !important;
85
+ }
86
+
87
+ //Aggiusto la grandezza delle icone tipo il calendarietto per la data. In realtà questo stile è un default di bootstrap ma viene overridato da uno stile successivo, non meglio sepcificato
88
+ .mat-form-field-prefix .mat-icon-button, .mat-form-field-suffix .mat-icon-button {
89
+ height: 32px !important;
90
+ //Non modificare!! In dev sembra che le posizioni siano sfanculate leggermente ma in realtà in AOT tutto è perfetto
91
+ //top: -4px !important;
92
+ }
93
+
94
+ //Per far apparire la label/placeholder un po' meglio
95
+ .mat-form-field-label-wrapper {
96
+ top: -8px;
97
+ }
98
+
99
+ //Per spostare la freccettina in giù che fa molto select... peccato sia troppo in alto somehow
100
+ .mat-form-field-type-mat-native-select .mat-form-field-infix::after {
101
+ top: 60% !important;
102
+ }
103
+
104
+ //Sposto il suffix a destra di 10 pixel... i miei input sono più stretti dei material standard
105
+ .mat-form-field-suffix {
106
+ margin-right: -10px !important;
107
+ }
108
+
109
+ //Ho disfato un po' gli z-index in questo progetto... material non se l'aspetta ed è impossibile creare un popup per le date nella dialog. TEHE
110
+ .cdk-overlay-container {
111
+ z-index: 99999999 !important;
112
+ }
113
+
114
+ //Mi assicuro che tutti gli import abbiano la stessa identica altezza
115
+ .mat-height-fixed .mat-form-field-flex {
116
+ height: 38px !important
117
+ }
118
+
119
+ //Tranne la textarea che si deve adattare alla dimensione dell'input interno (per le rows)
120
+ .mat-height-auto .mat-form-field-flex {
121
+ height: auto !important;
122
+ padding-bottom: 5px !important;
123
+ padding-top: 5px !important;
124
+ padding-right: 2px !important;
125
+ }
126
+
127
+ .mat-height-auto .mat-form-field-infix {
128
+ height: auto !important;
129
+ }
130
+
131
+ //Aggiustamenti per supportare gli infix/suffix un po' meglio
132
+ .mat-icon-button-override {
133
+ width: 25px !important;
134
+ top: 0px !important;
135
+ color: rgba(0, 0, 0, 0.64) !important;
136
+ position: absolute !important;
137
+ }
138
+
139
+ .mat-icon-button-override-suffix {
140
+ right: -5px !important;
141
+ }
142
+
143
+ .mat-icon-button-override-prefix {
144
+ left: -5px !important;
145
+ }
146
+
147
+ //Le option di default sono completamente non in linea con il template a dimensione, risistemo
148
+ .mat-option {
149
+ height: 25px !important;
150
+ font-size: 14px !important;
151
+ }
152
+
153
+ //per @esfaenza/forms-and-validations, controller datetimepicker, negli slider della parte "time" tenere questo border rompe il layout
154
+ .ngx-mat-timepicker .mat-form-field-infix {
155
+ border-top: none !important;
156
+ }
157
+
158
+ //*******************************************Fix per permettere al form-control di coesistere con material, all'interno dei tag material*******************************************
159
+
160
+ //Le impostazioni sulle dimenisoni sono gestite dal mat-field-wrapper, quelle del form control non devono disturbare
161
+ .mat-form-field-wrapper .form-control {
162
+ width: 100%;
163
+ border: none;
164
+ padding: 0;
165
+ line-height: 1;
166
+ padding-top: 0;
167
+ }
168
+
169
+ //Bootstrap 4 fix (in B4A non è manco supportato xD). Evito di tirare fuori sto box shadow che mi romperebbe il layout di tutte le pagine
170
+ .mat-form-field-wrapper .form-control:focus {
171
+ box-shadow: none !important;
172
+ }
173
+
174
+ //Sposto un po' in Giù il simbolino rosso/verde di validaizone e sistemo il padding dove fare apparire il checkino
175
+ .mat-form-field-wrapper .form-control.checking-field.ng-touched {
176
+ padding-right: 0px;
177
+ background-position-y: 14px !important;
178
+ background-position-x: right;
179
+ padding-top: 8px;
180
+ padding-bottom: 0px;
181
+ }
182
+
183
+ //Sposto un po' in Giù il simbolino rosso/verde di validaizone e sistemo il padding dove fare apparire il checkino
184
+ .mat-height-auto .form-control.checking-field.ng-touched {
185
+ padding-right: 25px;
186
+ background-position: center right 0.625rem !important;
187
+ }
188
+
189
+ //aggiusto il simbolino rosso/verde di validaizone per input piccoli
190
+ .mat-form-field-wrapper .form-control.input-small.checking-field.ng-touched {
191
+ background-position-y: 9px !important;
192
+ padding-right: 25px;
193
+ }
194
+ //Il colore di sfondo mi serve transparent perché:
195
+ //1) in modalità disabled è già definito nella classe ".mat-form-field-disabled .mat-form-field-wrapper"
196
+ //2) in modalità non transparent ho un paio di pixel che vanno sopra al border e me lo mangiano. Mettendo transparent si vede il border correttamente
197
+ .mat-form-field-wrapper .form-control {
198
+ background-color: transparent !important;
199
+ }
200
+
201
+ //Sistemo i padding per le select checking
202
+ .mat-form-field-wrapper .form-control.checking-combo.ng-touched {
203
+ padding-right: 45px;
204
+ background-position-y: 8px !important;
205
+ padding-top: 4px !important;
206
+ }
207
+
208
+ .mat-form-field-wrapper .form-control.checking-combo.ng-untouched {
209
+ padding-right: 20px;
210
+ background-position-y: 8px !important;
211
+ padding-top: 4px !important;
212
+ }
213
+
214
+ //Se l'input ha un suffix ho bisogno di impostargli questo stile in modo da avere un po' di spazio dove fare apparire l'infix
215
+ .mat-input-with-suffix {
216
+ width: calc(100% - 35px) !important;
217
+ display: inline-block !important;
218
+ margin-right: 10px !important;
219
+ }
220
+
221
+ //Per gestire i form group addon
222
+ .mat-input-group-addon .mat-form-field-appearance-outline .mat-form-field-wrapper {
223
+ background-color: #eceeef;
224
+ border: 1px solid rgba(0,0,0,0.15);
225
+ border-radius: .25rem;
226
+ }
227
+
228
+ //Leggero padding top per text area su material
229
+ .mat-form-field-appearance-outline textarea {
230
+ padding: 5px 0 !important;
231
+ }
@@ -0,0 +1,50 @@
1
+ @import "variables";
2
+
3
+ @mixin theme-bg($bg-gradient-color-1, $bg-gradient-color-2) {
4
+ /* Old browsers */
5
+ background: $bg-gradient-color-2;
6
+ /* FF3.6-15 */
7
+ background: url(data:image/png;base64,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), -moz-linear-gradient(left, $bg-gradient-color-1 0%, $bg-gradient-color-2 100%);
8
+ /* Chrome10-25,Safari5.1-6 */
9
+ background: url(data:image/png;base64,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), -webkit-linear-gradient(left, $bg-gradient-color-1 0%, $bg-gradient-color-2 100%);
10
+ /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
11
+ background: url(data:image/png;base64,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), linear-gradient(to right, $bg-gradient-color-1 0%, $bg-gradient-color-2 100%);
12
+ /* IE6-9 */
13
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7db9e8', endColorstr='#1e5799',GradientType=0 );
14
+ }
15
+
16
+ @mixin progress-variant($color) {
17
+ &[value]::-webkit-progress-value {
18
+ background-color: $color;
19
+ }
20
+
21
+ &[value]::-moz-progress-bar {
22
+ background-color: $color;
23
+ }
24
+ // IE10+, Microsoft Edge
25
+ &[value]::-ms-fill {
26
+ background-color: $color;
27
+ }
28
+ // IE9
29
+ @media screen and (min-width:0\0) {
30
+ .progress-bar {
31
+ background-color: $color;
32
+ }
33
+ }
34
+ }
35
+
36
+ @mixin tab-focus() {
37
+ // WebKit-specific. Other browsers will keep their default outline style.
38
+ // (Initially tried to also force default via `outline: initial`,
39
+ // but that seems to erroneously remove the outline in Firefox altogether.)
40
+ outline: 5px auto -webkit-focus-ring-color;
41
+ outline-offset: -2px;
42
+ }
43
+
44
+ @mixin progress-height($height) {
45
+ height: $height;
46
+ }
47
+
48
+ @mixin bg-image($relativeUrl) {
49
+ background-image: url($images-root + $relativeUrl);
50
+ }
@@ -0,0 +1,119 @@
1
+ @-webkit-keyframes spin-cubeGridScaleDelay {
2
+ 0%, 70%, 100% {
3
+ -webkit-transform: scale3D(1, 1, 1);
4
+ }
5
+
6
+ 35% {
7
+ -webkit-transform: scale3D(0, 0, 1);
8
+ }
9
+ }
10
+
11
+ @-moz-keyframes spin-cubeGridScaleDelay {
12
+ 0%, 70%, 100% {
13
+ -moz-transform: scale3D(1, 1, 1);
14
+ }
15
+
16
+ 35% {
17
+ -moz-transform: scale3D(0, 0, 1);
18
+ }
19
+ }
20
+
21
+ @keyframes spin-cubeGridScaleDelay {
22
+ 0%, 70%, 100% {
23
+ transform: scale3D(1, 1, 1);
24
+ }
25
+
26
+ 35% {
27
+ transform: scale3D(0, 0, 1);
28
+ }
29
+ }
30
+
31
+ .spin-outher {
32
+ position: absolute;
33
+ top: 0;
34
+ left: 0;
35
+ width: 100%;
36
+ height: 100%;
37
+ }
38
+
39
+ .spin-container {
40
+ height: 100%;
41
+ width: 100%;
42
+ display: table;
43
+ }
44
+
45
+ .spin-inner {
46
+ vertical-align: middle;
47
+ height: 100%;
48
+ display: table-cell;
49
+ }
50
+
51
+ .spin-cube-grid {
52
+ width: 100px;
53
+ height: 100px;
54
+ margin: 0 auto;
55
+
56
+ .spin-cube {
57
+ width: 33%;
58
+ height: 33%;
59
+ background-color: #fff;
60
+ float: left;
61
+ -webkit-animation: spin-cubeGridScaleDelay 1.3s infinite ease-in-out;
62
+ -moz-animation: spin-cubeGridScaleDelay 1.3s infinite ease-in-out;
63
+ animation: spin-cubeGridScaleDelay 1.3s infinite ease-in-out;
64
+ }
65
+
66
+ .spin-cube1 {
67
+ -webkit-animation-delay: 0.2s;
68
+ -moz-animation-delay: 0.2s;
69
+ animation-delay: 0.2s;
70
+ }
71
+
72
+ .spin-cube2 {
73
+ -webkit-animation-delay: 0.3s;
74
+ -moz-animation-delay: 0.3s;
75
+ animation-delay: 0.3s;
76
+ }
77
+
78
+ .spin-cube3 {
79
+ -webkit-animation-delay: 0.4s;
80
+ -moz-animation-delay: 0.4s;
81
+ animation-delay: 0.4s;
82
+ }
83
+
84
+ .spin-cube4 {
85
+ -webkit-animation-delay: 0.1s;
86
+ -moz-animation-delay: 0.1s;
87
+ animation-delay: 0.1s;
88
+ }
89
+
90
+ .spin-cube5 {
91
+ -webkit-animation-delay: 0.2s;
92
+ -moz-animation-delay: 0.2s;
93
+ animation-delay: 0.2s;
94
+ }
95
+
96
+ .spin-cube6 {
97
+ -webkit-animation-delay: 0.3s;
98
+ -moz-animation-delay: 0.3s;
99
+ animation-delay: 0.3s;
100
+ }
101
+
102
+ .spin-cube7 {
103
+ -webkit-animation-delay: 0s;
104
+ -moz-animation-delay: 0s;
105
+ animation-delay: 0s;
106
+ }
107
+
108
+ .spin-cube8 {
109
+ -webkit-animation-delay: 0.1s;
110
+ -moz-animation-delay: 0.1s;
111
+ animation-delay: 0.1s;
112
+ }
113
+
114
+ .spin-cube9 {
115
+ -webkit-animation-delay: 0.2s;
116
+ -moz-animation-delay: 0.2s;
117
+ animation-delay: 0.2s;
118
+ }
119
+ }