fam-archetype-app 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +38 -0
  2. package/package.json +25 -0
  3. package/src/collection.json +10 -0
  4. package/src/fam-archetype-app/files/.editorconfig +16 -0
  5. package/src/fam-archetype-app/files/.prettierignore +15 -0
  6. package/src/fam-archetype-app/files/.prettierrc.json +29 -0
  7. package/src/fam-archetype-app/files/LICENSE.md +21 -0
  8. package/src/fam-archetype-app/files/README.md +59 -0
  9. package/src/fam-archetype-app/files/angular.json.template +178 -0
  10. package/src/fam-archetype-app/files/cli +361 -0
  11. package/src/fam-archetype-app/files/eslint.config.js +89 -0
  12. package/src/fam-archetype-app/files/package-lock.json.template +18812 -0
  13. package/src/fam-archetype-app/files/package.json.template +62 -0
  14. package/src/fam-archetype-app/files/src/assets/fonts/DiBaScreen-Regular.woff2 +0 -0
  15. package/src/fam-archetype-app/files/src/assets/translations/translations-ca.json +284 -0
  16. package/src/fam-archetype-app/files/src/assets/translations/translations-en.json +28 -0
  17. package/src/fam-archetype-app/files/src/assets/translations/translations-es.json +28 -0
  18. package/src/fam-archetype-app/files/src/core/layout/component/footer/footer.component.html.template +3 -0
  19. package/src/fam-archetype-app/files/src/core/layout/component/footer/footer.component.scss +8 -0
  20. package/src/fam-archetype-app/files/src/core/layout/component/layout/layout.component.html +19 -0
  21. package/src/fam-archetype-app/files/src/core/layout/component/layout/layout.component.scss +28 -0
  22. package/src/fam-archetype-app/files/src/core/layout/component/main-info-popup/main-info-popup.component.html +33 -0
  23. package/src/fam-archetype-app/files/src/core/layout/component/main-info-popup/main-info-popup.component.scss +3 -0
  24. package/src/fam-archetype-app/files/src/core/layout/component/menu/menu.component.html +3 -0
  25. package/src/fam-archetype-app/files/src/core/layout/component/menu/menu.component.scss +163 -0
  26. package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.html +39 -0
  27. package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.scss +44 -0
  28. package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.html +12 -0
  29. package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.scss +17 -0
  30. package/src/fam-archetype-app/files/src/core/layout/component/sidebar/sidebar.component.html +13 -0
  31. package/src/fam-archetype-app/files/src/core/layout/component/sidebar/sidebar.component.scss +33 -0
  32. package/src/fam-archetype-app/files/src/core/layout/component/top-menu/top-menu.component.html +12 -0
  33. package/src/fam-archetype-app/files/src/core/layout/component/top-menu/top-menu.component.scss +9 -0
  34. package/src/fam-archetype-app/files/src/core/layout/component/topbar/_mixins.scss +8 -0
  35. package/src/fam-archetype-app/files/src/core/layout/component/topbar/topbar.component.html.template +45 -0
  36. package/src/fam-archetype-app/files/src/core/layout/component/topbar/topbar.component.scss +77 -0
  37. package/src/fam-archetype-app/files/src/environments/environment.dev.ts.template +12 -0
  38. package/src/fam-archetype-app/files/src/environments/environment.int.ts.template +12 -0
  39. package/src/fam-archetype-app/files/src/environments/environment.pre.ts.template +12 -0
  40. package/src/fam-archetype-app/files/src/environments/environment.ts.template +12 -0
  41. package/src/fam-archetype-app/files/src/index.html.template +18 -0
  42. package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.html +69 -0
  43. package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.scss +0 -0
  44. package/src/fam-archetype-app/files/src/shared/styles/_movements.scss +19 -0
  45. package/src/fam-archetype-app/files/src/shared/styles/global/_core.scss +20 -0
  46. package/src/fam-archetype-app/files/src/shared/styles/global/_icons.scss +37 -0
  47. package/src/fam-archetype-app/files/src/shared/styles/global/_tooltips.scss +14 -0
  48. package/src/fam-archetype-app/files/src/shared/styles/global/_typography.scss +68 -0
  49. package/src/fam-archetype-app/files/src/shared/styles/global/_utils.scss +24 -0
  50. package/src/fam-archetype-app/files/src/shared/styles/global/layout.scss +5 -0
  51. package/src/fam-archetype-app/files/src/shared/table/column-visibility-selector/column-visibility-selector.component.html +10 -0
  52. package/src/fam-archetype-app/files/src/shared/table/column-visibility-selector/column-visibility-selector.component.scss +0 -0
  53. package/src/fam-archetype-app/files/src/shared/table/diba-table/diba-table.component.html +136 -0
  54. package/src/fam-archetype-app/files/src/shared/table/diba-table/diba-table.component.scss +0 -0
  55. package/src/fam-archetype-app/files/src/styles.scss +109 -0
  56. package/src/fam-archetype-app/files/src/tailwind.css +3 -0
  57. package/src/fam-archetype-app/files/tailwind.config.js +36 -0
  58. package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/commands.txt +1 -0
  59. package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/db_to_entities.txt +1 -0
  60. package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/test_db_connection.txt +1 -0
  61. package/src/fam-archetype-app/files/tools/cli/TelosysTools/databases.yaml +188 -0
  62. package/src/fam-archetype-app/files/tools/cli/TelosysTools/downloads/.keep +0 -0
  63. package/src/fam-archetype-app/files/tools/cli/TelosysTools/lib/.keep +0 -0
  64. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamActivitat.entity +26 -0
  65. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamActivitatsUbicacio.entity +40 -0
  66. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamAlumne.entity +76 -0
  67. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamArea.entity +33 -0
  68. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamComanda.entity +37 -0
  69. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamCurs.entity +50 -0
  70. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamDocument.entity +53 -0
  71. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamDocumentTipus.entity +26 -0
  72. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamEntitatBase.entity +84 -0
  73. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedient.entity +71 -0
  74. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientDocument.entity +51 -0
  75. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientEstat.entity +26 -0
  76. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientTipus.entity +26 -0
  77. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamJerarquia.entity +33 -0
  78. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamLinia.entity +56 -0
  79. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamMatricula.entity +63 -0
  80. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamTipusArticle.entity +26 -0
  81. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamUbicacio.entity +35 -0
  82. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamZona.entity +27 -0
  83. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/Funcionalitat.entity +65 -0
  84. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FuncionalitatGrupFunc.entity +58 -0
  85. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/GrupFuncionalitat.entity +54 -0
  86. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/PerfilGrupFuncionalitat.entity +50 -0
  87. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/VusPerfil.entity +31 -0
  88. package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/model.yaml +4 -0
  89. package/src/fam-archetype-app/files/tools/cli/TelosysTools/telosys-tools.cfg +31 -0
  90. package/src/fam-archetype-app/files/tools/cli/TelosysTools/telosys.env +5 -0
  91. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/README.md +12 -0
  92. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/database.properties +23 -0
  93. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/include/init_var_entity.vm +169 -0
  94. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/include/macros.vm +218 -0
  95. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/app_config_ts.vm +56 -0
  96. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/app_routes_ts.vm +21 -0
  97. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/core/layout/component/menu/menu_component_ts.vm +30 -0
  98. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/core/layout/component/top-menu/top-menu_component_ts.vm +36 -0
  99. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/core/layout/service/menu_model_service_ts.vm +49 -0
  100. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/create-Xxx_use-case_ts.vm +18 -0
  101. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/create-file-Xxx_use-case_ts.vm +17 -0
  102. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/delete-Xxx_use-case_ts.vm +17 -0
  103. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/download-Xxx-file_use-case_ts.vm +24 -0
  104. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/find-Xxx_use-case_ts.vm +18 -0
  105. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/search-Xxx_use-case_ts.vm +25 -0
  106. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/application/update-Xxx_use-case_ts.vm +18 -0
  107. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/domain/Xxx_entity_ts.vm +36 -0
  108. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/domain/Xxx_repository_interface_ts.vm +27 -0
  109. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/mappers/Xxx_jsona_mapper_ts.vm +52 -0
  110. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/mappers/Xxx_mapper_ts.vm +36 -0
  111. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/Xxx_routes_ts.vm +15 -0
  112. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/detail/Xxx_detail_html.vm +178 -0
  113. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/detail/Xxx_detail_scss.vm +0 -0
  114. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/detail/Xxx_detail_spec_ts.vm +29 -0
  115. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/detail/Xxx_detail_ts.vm +382 -0
  116. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/list/Xxx_list_html.vm +37 -0
  117. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/list/Xxx_list_scss.vm +10 -0
  118. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/list/Xxx_list_spec_ts.vm +29 -0
  119. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/pages/list/Xxx_list_ts.vm +430 -0
  120. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/inbound/resources/Xxx_resource_ts.vm +43 -0
  121. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/infrastructure/outbound/Xxx_repository_impl_ts.vm +162 -0
  122. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/test_code.vm +3 -0
  123. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/templates.cfg +52 -0
  124. package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/tools-test/test-api_Xxx_rest.vm +181 -0
  125. package/src/fam-archetype-app/files/tools/cli/telosys +5 -0
  126. package/src/fam-archetype-app/files/tools/cli/telosys-cli-4.2.0-001.jar +0 -0
  127. package/src/fam-archetype-app/files/tools/cli/telosys-cli.cfg +55 -0
  128. package/src/fam-archetype-app/files/tools/cli/telosys-term.sh +30 -0
  129. package/src/fam-archetype-app/files/tools/cli/telosys.bat +4 -0
  130. package/src/fam-archetype-app/files/tools/cli/telosys.ico +0 -0
  131. package/src/fam-archetype-app/files/tools/db/develop/data/.keep +0 -0
  132. package/src/fam-archetype-app/files/tools/db/production/data/.keep +0 -0
  133. package/src/fam-archetype-app/files/tools/db/production/migrations/.keep +0 -0
  134. package/src/fam-archetype-app/files/tools/docs/.keep +0 -0
  135. package/src/fam-archetype-app/files/tools/test/test-api.rest +80 -0
  136. package/src/fam-archetype-app/files/tsconfig.app.json +15 -0
  137. package/src/fam-archetype-app/files/tsconfig.json +42 -0
  138. package/src/fam-archetype-app/files/tsconfig.spec.json +15 -0
  139. package/src/fam-archetype-app/files/vercel.json +9 -0
  140. package/src/fam-archetype-app/index.d.ts +2 -0
  141. package/src/fam-archetype-app/index.js +18 -0
  142. package/src/fam-archetype-app/index.js.map +1 -0
  143. package/src/fam-archetype-app/index_spec.d.ts +1 -0
  144. package/src/fam-archetype-app/index_spec.js +23 -0
  145. package/src/fam-archetype-app/index_spec.js.map +1 -0
  146. package/src/fam-archetype-app/schema.json +21 -0
  147. package/tsconfig.json +24 -0
@@ -0,0 +1,163 @@
1
+ //.layout-sidebar {
2
+ // position: fixed;
3
+ // width: 20rem;
4
+ // height: calc(100vh - 8rem);
5
+ // z-index: 999;
6
+ // overflow-y: auto;
7
+ // user-select: none;
8
+ // top: 6rem;
9
+ // left: 2rem;
10
+ // transition:
11
+ // transform 0.2s,
12
+ // left 0.2s;
13
+ // background-color: var(--p-overlay-popover-background);
14
+ // border-radius: var(--p-content-border-radius);
15
+ // padding: 0.5rem 1.5rem;
16
+ //}
17
+
18
+ .layout-menu {
19
+ margin: 0;
20
+ padding: 0;
21
+ list-style-type: none;
22
+
23
+ .layout-root-menuitem {
24
+ > .layout-menuitem-root-text {
25
+ font-size: 0.857rem;
26
+ text-transform: uppercase;
27
+ font-weight: 700;
28
+ color: var(--p-text-color);
29
+ margin: 0.75rem 0;
30
+ }
31
+
32
+ > a {
33
+ display: none;
34
+ }
35
+ }
36
+
37
+ a {
38
+ user-select: none;
39
+
40
+ &.active-menuitem {
41
+ > .layout-submenu-toggler {
42
+ transform: rotate(-180deg);
43
+ }
44
+ }
45
+ }
46
+
47
+ li.active-menuitem {
48
+ > a {
49
+ .layout-submenu-toggler {
50
+ transform: rotate(-180deg);
51
+ }
52
+ }
53
+ }
54
+
55
+ ul {
56
+ margin: 0;
57
+ padding: 0;
58
+ list-style-type: none;
59
+
60
+ a {
61
+ display: flex;
62
+ align-items: center;
63
+ position: relative;
64
+ outline: 0 none;
65
+ color: var(--p-text-color);
66
+ cursor: pointer;
67
+ padding: 0.75rem 1rem;
68
+ border-radius: var(--p-content-border-radius);
69
+ transition:
70
+ background-color var(--p-transition-duration),
71
+ box-shadow var(--p-transition-duration);
72
+
73
+ .layout-menuitem-icon {
74
+ margin-right: 0.5rem;
75
+ }
76
+
77
+ .layout-submenu-toggler {
78
+ font-size: 75%;
79
+ margin-left: auto;
80
+ transition: transform var(--p-transition-duration);
81
+ }
82
+
83
+ &.active-route {
84
+ font-weight: 700;
85
+ color: var(--p-primary-color);
86
+ }
87
+
88
+ &:hover {
89
+ background-color: var(--p-content-hover-background);
90
+ }
91
+
92
+ &:focus {
93
+ outline-offset: -1px;
94
+ box-shadow: inset var(--p-focus-ring-shadow);
95
+ }
96
+ }
97
+
98
+ ul {
99
+ overflow: hidden;
100
+ border-radius: var(--p-content-border-radius);
101
+
102
+ li {
103
+ a {
104
+ margin-left: 1rem;
105
+ }
106
+
107
+ li {
108
+ a {
109
+ margin-left: 2rem;
110
+ }
111
+
112
+ li {
113
+ a {
114
+ margin-left: 2.5rem;
115
+ }
116
+
117
+ li {
118
+ a {
119
+ margin-left: 3rem;
120
+ }
121
+
122
+ li {
123
+ a {
124
+ margin-left: 3.5rem;
125
+ }
126
+
127
+ li {
128
+ a {
129
+ margin-left: 4rem;
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ ::ng-deep .p-panelmenu-panel {
141
+ border: none !important;
142
+ }
143
+ }
144
+
145
+ .layout-submenu-enter-from,
146
+ .layout-submenu-leave-to {
147
+ max-height: 0;
148
+ }
149
+
150
+ .layout-submenu-enter-to,
151
+ .layout-submenu-leave-from {
152
+ max-height: 1000px;
153
+ }
154
+
155
+ .layout-submenu-leave-active {
156
+ overflow: hidden;
157
+ transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);
158
+ }
159
+
160
+ .layout-submenu-enter-active {
161
+ overflow: hidden;
162
+ transition: max-height 1s ease-in-out;
163
+ }
@@ -0,0 +1,39 @@
1
+ <li>
2
+ <!-- <ng-container>-->
3
+ <!-- <div *ngIf="root" class="layout-menuitem-root-text">{{ item.label }}</div> -->
4
+ <!-- <a *ngIf="(!item.routerLink || item.items) && item.visible !== false" [attr.href]="item.url" (click)="itemClick($event)" [ngClass]="item.styleClass" [attr.target]="item.target" tabindex="0" pRipple>-->
5
+ <!-- <i [ngClass]="item.icon" class="layout-menuitem-icon"></i>-->
6
+ <!-- <span class="layout-menuitem-text">{{ item.label }}</span>-->
7
+ <!-- <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>-->
8
+ <!-- </a>-->
9
+ <a
10
+ *ngIf="item.routerLink && !item.items"
11
+ (click)="itemClick($event)"
12
+ [ngClass]="item.styleClass"
13
+ [routerLink]="item.routerLink"
14
+ routerLinkActive="active-route"
15
+ [routerLinkActiveOptions]="item.routerLinkActiveOptions || { paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' }"
16
+ [fragment]="item.fragment"
17
+ [queryParamsHandling]="item.queryParamsHandling"
18
+ [preserveFragment]="item.preserveFragment"
19
+ [skipLocationChange]="item.skipLocationChange"
20
+ [replaceUrl]="item.replaceUrl"
21
+ [state]="item.state"
22
+ [queryParams]="item.queryParams"
23
+ [attr.target]="item.target"
24
+ tabindex="0"
25
+ pRipple
26
+ >
27
+ <i [ngClass]="item.icon" class="layout-menuitem-icon"></i>
28
+ <span class="layout-menuitem-text">{{ item.label }}</span>
29
+ <i class="pi pi-fw pi-angle-down layout-submenu-toggler" *ngIf="item.items"></i>
30
+ </a>
31
+
32
+ <ul *ngIf="item.items">
33
+ <ng-template ngFor let-child let-i="index" [ngForOf]="item.items">
34
+ <app-menuitem [item]="child" [index]="i" [parentKey]="key" [class]="child['badgeClass']"></app-menuitem>
35
+ </ng-template>
36
+ </ul>
37
+ <!-- </ng-container>-->
38
+ </li>
39
+
@@ -0,0 +1,44 @@
1
+ .layout-menuitem-root-text {
2
+ font-size: 0.857rem;
3
+ text-transform: uppercase;
4
+ font-weight: 700;
5
+ color: var(--p-text-color);
6
+ margin: 0.75rem 0;
7
+ }
8
+
9
+ a {
10
+ user-select: none;
11
+ }
12
+
13
+ ul {
14
+ margin: 0;
15
+ padding: 0;
16
+ list-style-type: none;
17
+
18
+ a {
19
+ display: flex;
20
+ align-items: center;
21
+ position: relative;
22
+ outline: 0 none;
23
+ color: var(--p-text-color);
24
+ cursor: pointer;
25
+ padding: 0.75rem 1rem;
26
+ border-radius: var(--p-content-border-radius);
27
+ transition:
28
+ background-color var(--p-transition-duration),
29
+ box-shadow var(--p-transition-duration);
30
+
31
+ .layout-menuitem-icon {
32
+ margin-right: 0.5rem;
33
+ }
34
+
35
+ &.active-route {
36
+ font-weight: 700;
37
+ color: var(--p-primary-color);
38
+ }
39
+
40
+ &:hover {
41
+ background-color: var(--p-content-hover-background);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,12 @@
1
+ <div class="flex items-center justify-center min-h-screen overflow-hidden">
2
+ <div class="flex flex-col items-center justify-center">
3
+ <div class="diba-error-container">
4
+ <div class="diba-rounded-border w-full bg-surface-0 dark:bg-surface-900 p-16 flex flex-col items-center">
5
+ <span class="text-primary font-bold text-3xl">404</span>
6
+ <h1 class="text-surface-900 dark:text-surface-0 font-bold text-5xl mb-4">Pàgina no trobada</h1>
7
+ <div class="text-surface-600 dark:text-surface-200 mb-16">La pàgina que cerqueu no es troba disponible.</div>
8
+ <p-button label="Retorneu a l'inici" routerLink="/" />
9
+ </div>
10
+ </div>
11
+ </div>
12
+ </div>
@@ -0,0 +1,17 @@
1
+ .diba-error-container {
2
+ border-radius: 56px;
3
+ padding: 0.3rem;
4
+ background: linear-gradient(
5
+ 180deg,
6
+ color-mix(
7
+ in srgb,
8
+ var(--p-primary-color),
9
+ transparent 60%
10
+ ) 10%,
11
+ var(--p-surface-100) 30%,
12
+ );
13
+ }
14
+
15
+ .diba-rounded-border {
16
+ border-radius: 53px;
17
+ }
@@ -0,0 +1,13 @@
1
+ <div #sidebar class="layout-sidebar {{ isActive() }}">
2
+ <app-menu></app-menu>
3
+ <div class="layout-sidebar-footer flex justify-end">
4
+ <button
5
+ pButton
6
+ type="button"
7
+ label="Toogle Menu"
8
+ class="text-base flex justify-end layout-topbar-action"
9
+ (click)="toggleMenu()">
10
+ <fa-icon [icon]="faArrowUp"></fa-icon>
11
+ </button>
12
+ </div>
13
+ </div>
@@ -0,0 +1,33 @@
1
+ .layout-sidebar {
2
+ z-index: 1;
3
+ overflow-y: auto;
4
+ user-select: none;
5
+ //top: 3.5rem;
6
+ left: 0;
7
+ background-color: var(--p-overlay-popover-background);
8
+ border-radius: 0;
9
+ padding: 0.5rem 1.5rem;
10
+ transform: translateX(-100%);
11
+ border-right: 1px solid var(--p-content-border-color);
12
+ transition:
13
+ transform 0.4s cubic-bezier(0.05, 0.74, 0.2, 0.99),
14
+ left 0.4s cubic-bezier(0.05, 0.74, 0.2, 0.99);
15
+ box-shadow:
16
+ 0 3px 5px rgba(0, 0, 0, 0.02),
17
+ 0 0 2px rgba(0, 0, 0, 0.05),
18
+ 0 1px 4px rgba(0, 0, 0, 0.08);
19
+ display: none;
20
+
21
+ &.active {
22
+ transform: translateX(0);
23
+ display: block;
24
+ padding: 0.5rem 0rem;
25
+ //min-height: calc(100vh - 7rem);
26
+ }
27
+ }
28
+
29
+ .layout-sidebar-footer {
30
+ border-top: 1px solid var(--p-content-border-color);
31
+ padding-right: .65rem;
32
+ padding-top: .25rem;
33
+ }
@@ -0,0 +1,12 @@
1
+ <p-menubar [model]="model">
2
+ <ng-template pTemplate="end">
3
+ <button
4
+ pButton
5
+ type="button"
6
+ label="Toogle Menu"
7
+ class="text-base mr-2 layout-topbar-action"
8
+ (click)="toggleMenu()">
9
+ <fa-icon [icon]="faArrowLeft"></fa-icon>
10
+ </button>
11
+ </ng-template>
12
+ </p-menubar>
@@ -0,0 +1,9 @@
1
+ ::ng-deep .p-menubar {
2
+ position: fixed;
3
+ top: 3.5rem;
4
+ width: 100%;
5
+ border: none;
6
+ --p-menubar-padding: 0;
7
+ --p-menubar-gap: 0;
8
+ z-index: 1100 !important;
9
+ }
@@ -0,0 +1,8 @@
1
+ @mixin focused() {
2
+ outline: var(--p-focus-ring-color) var(--p-focus-ring-style) var(--p-focus-ring-width);
3
+ outline-offset: var(--p-focus-ring-offset);
4
+ box-shadow: var(--p-focus-ring-shadow);
5
+ transition:
6
+ box-shadow var(--p-transition-duration),
7
+ outline-color var(--p-transition-duration);
8
+ }
@@ -0,0 +1,45 @@
1
+ <div class="layout-topbar diba-topbar">
2
+ <div class="layout-topbar-logo-container">
3
+ <!--button *ngIf="!topMenuService.showTopMenu()" class="layout-menu-button layout-topbar-action" (click)="layoutService.onMenuToggle()">
4
+ <i class="pi pi-bars"></i>
5
+ </button-->
6
+ <a class="layout-topbar-logo" routerLink="/">
7
+ <img class="brand-logo" ngSrc="https://media.diba.cat/diba/maqueta/logos/logodiba_header.svg" alt="Diputació de Barcelona" width="120" height="40" priority>
8
+ </a>
9
+ </div>
10
+
11
+ <div class="layout-topbar-title-container absolute left-1/2 -translate-x-1/2">
12
+ <h2 class="layout-topbar-title-text mb-0"><%= name %></h2>
13
+ </div>
14
+
15
+ <div class="layout-topbar-actions">
16
+ <button class="layout-topbar-menu-button layout-topbar-action" pStyleClass="@next" enterFromClass="hidden" enterActiveClass="animate-scalein" leaveToClass="hidden" leaveActiveClass="animate-fadeout" [hideOnOutsideClick]="true">
17
+ <i class="pi pi-ellipsis-v"></i>
18
+ </button>
19
+
20
+ <div class="layout-topbar-menu hidden lg:block">
21
+ <div class="layout-topbar-menu-content">
22
+ <button
23
+ type="button"
24
+ class="layout-topbar-action"
25
+ (click)="onProfileClick()">
26
+ <fa-icon [icon]="faUser"></fa-icon>
27
+ <span>{{ 'PROFILE' | primengTranslation }}</span>
28
+ </button>
29
+ <button type="button"
30
+ class="layout-topbar-action"
31
+ (click)="onEnvironmentClick()">
32
+ <fa-icon [icon]="faCompass"></fa-icon>
33
+ <span>{{ 'ENVIRONMENT' | primengTranslation }}</span>
34
+ </button>
35
+ <button
36
+ type="button"
37
+ class="layout-topbar-action"
38
+ (click)="onLogoutClick()">
39
+ <fa-icon [icon]="faArrowRightFromBracket"></fa-icon>
40
+ <span>{{ 'LOGOUT' | primengTranslation }}</span>
41
+ </button>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
@@ -0,0 +1,77 @@
1
+ @use 'mixins' as *;
2
+
3
+ .layout-topbar {
4
+ //position: fixed;
5
+ height: 3.5rem;
6
+ z-index: 997;
7
+ left: 0;
8
+ top: 0;
9
+ width: 100%;
10
+ padding: 0 1rem;
11
+ background-color: var(--p-content-background);
12
+ transition: left 0.2s;
13
+ display: flex;
14
+ align-items: center;
15
+
16
+ .layout-topbar-logo-container {
17
+ width: 20rem;
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+
22
+ .layout-topbar-logo {
23
+ display: inline-flex;
24
+ align-items: center;
25
+ font-size: 1.5rem;
26
+ border-radius: var(--p-content-border-radius);
27
+ color: var(--p-text-color);
28
+ font-weight: 500;
29
+ gap: 0.5rem;
30
+
31
+ svg {
32
+ width: 3rem;
33
+ }
34
+
35
+ &:focus-visible {
36
+ @include focused();
37
+ }
38
+ }
39
+
40
+ .layout-menu-button {
41
+ margin-right: 0.5rem;
42
+ }
43
+
44
+ .layout-topbar-menu-button {
45
+ display: none;
46
+ }
47
+
48
+ .layout-topbar-actions {
49
+ margin-left: auto;
50
+ display: flex;
51
+ gap: 1rem;
52
+ }
53
+
54
+ .layout-topbar-menu-content {
55
+ display: flex;
56
+ gap: 1rem;
57
+ }
58
+
59
+ .layout-config-menu {
60
+ display: flex;
61
+ gap: 1rem;
62
+ }
63
+ }
64
+
65
+ .brand-logo {
66
+ height: 40px;
67
+ }
68
+
69
+ .logo-separator {
70
+ width: 2px; /* Thickness of the vertical line */
71
+ height: 35px; /* Adjust height as needed */
72
+ background-color: var(--p-primary-color);
73
+ }
74
+
75
+ .diba-topbar {
76
+ box-shadow: 0 3px 5px rgba(0, 0, 0, 0.02), 0 0 2px rgba(0, 0, 0, 0.05), 0 1px 4px rgba(0, 0, 0, 0.08);
77
+ }
@@ -0,0 +1,12 @@
1
+ export const environment = {
2
+ apiBaseUrl: '<%= apiUrl %>',
3
+ auth: {
4
+ disable_auth: true,
5
+ apiBaseSAMLUrl: '<%= apiSaml %>',
6
+ endpoints: {
7
+ session: '/session',
8
+ samlLogin: '/saml/login',
9
+ logout: '/saml/logoutSAMLRequest'
10
+ }
11
+ }
12
+ };
@@ -0,0 +1,12 @@
1
+ export const environment = {
2
+ apiBaseUrl: '<%= apiUrl %>',
3
+ auth: {
4
+ disable_auth: true,
5
+ apiBaseSAMLUrl: '<%= apiSaml %>',
6
+ endpoints: {
7
+ session: '/session',
8
+ samlLogin: '/saml/login',
9
+ logout: '/saml/logoutSAMLRequest'
10
+ }
11
+ }
12
+ };
@@ -0,0 +1,12 @@
1
+ export const environment = {
2
+ apiBaseUrl: '<%= apiUrl %>',
3
+ auth: {
4
+ disable_auth: true,
5
+ apiBaseSAMLUrl: '<%= apiSaml %>',
6
+ endpoints: {
7
+ session: '/session',
8
+ samlLogin: '/saml/login',
9
+ logout: '/saml/logoutSAMLRequest'
10
+ }
11
+ }
12
+ };
@@ -0,0 +1,12 @@
1
+ export const environment = {
2
+ apiBaseUrl: '<%= apiUrl %>',
3
+ auth: {
4
+ disable_auth: true,
5
+ apiBaseSAMLUrl: '<%= apiSaml %>',
6
+ endpoints: {
7
+ session: '/session',
8
+ samlLogin: '/saml/login',
9
+ logout: '/saml/logoutSAMLRequest'
10
+ }
11
+ }
12
+ };
@@ -0,0 +1,18 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title><%= name %></title>
6
+ <base href="/" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.o" />
8
+ <link rel="preconnect" href="https://media.diba.cat">
9
+ <link rel="stylesheet" type="text/css" href="https://maqueta.diba.cat/v4/assets/dist/diba-maqueta.min.css" crossorigin="anonymous">
10
+ <link rel="icon" type="image/x-icon" href="https://maqueta.diba.cat/v3/assets/img/favicon.ico" />
11
+ <link href="https://fonts.cdnfonts.com/css/lato" rel="stylesheet" />
12
+ </head>
13
+
14
+ <body>
15
+ <script src="https://kit.fontawesome.com/5bd7159fa2.js" crossorigin="anonymous"></script>
16
+ <app-root></app-root>
17
+ </body>
18
+ </html>
@@ -0,0 +1,69 @@
1
+ <div class="border p-4 bg-gray-100 mb-4">
2
+ <div class="cursor-pointer flex justify-between" [class.pb-4]="expanded" (click)="expand()">
3
+ <span class="font-bold">{{ 'Filtres' || primengTranslation }}</span>
4
+ <span>
5
+ <div [class.hidden]="expanded"><i class="fa-solid fa-chevron-down text-xl text-primary-600"></i></div>
6
+ <div [class.hidden]="!expanded"><i class="fa-solid fa-chevron-up text-xl text-primary-600"></i></div>
7
+ </span>
8
+ </div>
9
+ <div [ngClass]="{
10
+ 'opacity-100 h-auto visible': expanded,
11
+ 'opacity-0 h-0 invisible': !expanded
12
+ }">
13
+ <div class="grid grid-cols-1 sm:grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4">
14
+
15
+ <div *ngFor="let filter of filters" class="self-center">
16
+ <div *ngIf="filter.type===FilterType.TEXT">
17
+ <label for="filter.label" class="block mb-1">{{ filter.label | primengTranslation }}</label>
18
+ <input pInputText id="filter.label" [(ngModel)]="filter.value" class="w-full" />
19
+ </div>
20
+ <div *ngIf="filter.type===FilterType.SELECT">
21
+ <label for="filter.label" class="block mb-1">{{ filter.label | primengTranslation }}</label>
22
+ <p-select
23
+ [options]="filter.selectValues"
24
+ [(ngModel)]="filter.value"
25
+ [filter]="true"
26
+ class="w-full" />
27
+ </div>
28
+ <div *ngIf="filter.type===FilterType.BOOLEAN">
29
+ <label for="filter.label" class="block mb-1">{{ filter.label | primengTranslation }}</label>
30
+ <p-select
31
+ [options]="filter.selectValues"
32
+ [(ngModel)]="filter.value"
33
+ class="w-full" />
34
+ </div>
35
+ <div *ngIf="filter.type===FilterType.DATE" class="">
36
+ <label for="filter.label" class="block mb-1">{{ filter.label | primengTranslation }}</label>
37
+ <p-datepicker
38
+ id="filter.label"
39
+ [(ngModel)]="filter.value"
40
+ [showIcon]="true"
41
+ dateFormat="dd/mm/yy"
42
+ (onSelect)="onDateSelect($event, filter.label)"
43
+ />
44
+ </div>
45
+ <div *ngIf="filter.type===FilterType.NUMBER" class="">
46
+ <label for="filter.label" class="block mb-1">{{ filter.label | primengTranslation }}</label>
47
+ <p-inputnumber
48
+ id="filter.label"
49
+ [(ngModel)]="filter.value"
50
+ />
51
+ </div>
52
+ </div>
53
+ <div class="flex justify-end mt-4 gap-2 col-start-4">
54
+ <p-button
55
+ class="btn-primary-diba"
56
+ label="{{ 'Filtra' | primengTranslation }}"
57
+ severity="success"
58
+ (onClick)="handleSearch()"
59
+ ><i class="fa-solid fa-magnifying-glass"></i></p-button>
60
+ <p-button
61
+ class="btn-secondary-diba"
62
+ label="{{ 'Neteja' | primengTranslation }}"
63
+ severity="success"
64
+ (onClick)="handleClean()"
65
+ ><i class="fa-solid fa-eraser"></i></p-button>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
@@ -0,0 +1,19 @@
1
+ .type-decret {
2
+ background-color: #fdcb6eb3;
3
+ }
4
+
5
+ .type-ado {
6
+ background-color: #55efc4b3;
7
+ }
8
+
9
+ .type-pressupostos-factures {
10
+ background-color: #fab1a0b3;
11
+ }
12
+
13
+ .type-modificacio-credit {
14
+ background-color: #74b9ffb3;
15
+ }
16
+
17
+ .type-romanents {
18
+ background-color: #a29bfe;
19
+ }
@@ -0,0 +1,20 @@
1
+ html {
2
+ height: 100%;
3
+ font-size: 15px;
4
+ }
5
+
6
+ body {
7
+ font-family: 'DiBa', 'Lato', sans-serif;
8
+ color: var(--p-text-color);
9
+ background-color: var(--p-surface-100);
10
+ margin: 0;
11
+ padding: 0;
12
+ min-height: 100%;
13
+ -webkit-font-smoothing: antialiased;
14
+ -moz-osx-font-smoothing: grayscale;
15
+ line-height: 1.2;
16
+ }
17
+
18
+ a {
19
+ text-decoration: none;
20
+ }