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.
- package/README.md +38 -0
- package/package.json +25 -0
- package/src/collection.json +10 -0
- package/src/fam-archetype-app/files/.editorconfig +16 -0
- package/src/fam-archetype-app/files/.prettierignore +15 -0
- package/src/fam-archetype-app/files/.prettierrc.json +29 -0
- package/src/fam-archetype-app/files/LICENSE.md +21 -0
- package/src/fam-archetype-app/files/README.md +59 -0
- package/src/fam-archetype-app/files/angular.json.template +178 -0
- package/src/fam-archetype-app/files/cli +361 -0
- package/src/fam-archetype-app/files/eslint.config.js +89 -0
- package/src/fam-archetype-app/files/package-lock.json.template +18812 -0
- package/src/fam-archetype-app/files/package.json.template +62 -0
- package/src/fam-archetype-app/files/src/assets/fonts/DiBaScreen-Regular.woff2 +0 -0
- package/src/fam-archetype-app/files/src/assets/translations/translations-ca.json +284 -0
- package/src/fam-archetype-app/files/src/assets/translations/translations-en.json +28 -0
- package/src/fam-archetype-app/files/src/assets/translations/translations-es.json +28 -0
- package/src/fam-archetype-app/files/src/core/layout/component/footer/footer.component.html.template +3 -0
- package/src/fam-archetype-app/files/src/core/layout/component/footer/footer.component.scss +8 -0
- package/src/fam-archetype-app/files/src/core/layout/component/layout/layout.component.html +19 -0
- package/src/fam-archetype-app/files/src/core/layout/component/layout/layout.component.scss +28 -0
- package/src/fam-archetype-app/files/src/core/layout/component/main-info-popup/main-info-popup.component.html +33 -0
- package/src/fam-archetype-app/files/src/core/layout/component/main-info-popup/main-info-popup.component.scss +3 -0
- package/src/fam-archetype-app/files/src/core/layout/component/menu/menu.component.html +3 -0
- package/src/fam-archetype-app/files/src/core/layout/component/menu/menu.component.scss +163 -0
- package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.html +39 -0
- package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.scss +44 -0
- package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.html +12 -0
- package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.scss +17 -0
- package/src/fam-archetype-app/files/src/core/layout/component/sidebar/sidebar.component.html +13 -0
- package/src/fam-archetype-app/files/src/core/layout/component/sidebar/sidebar.component.scss +33 -0
- package/src/fam-archetype-app/files/src/core/layout/component/top-menu/top-menu.component.html +12 -0
- package/src/fam-archetype-app/files/src/core/layout/component/top-menu/top-menu.component.scss +9 -0
- package/src/fam-archetype-app/files/src/core/layout/component/topbar/_mixins.scss +8 -0
- package/src/fam-archetype-app/files/src/core/layout/component/topbar/topbar.component.html.template +45 -0
- package/src/fam-archetype-app/files/src/core/layout/component/topbar/topbar.component.scss +77 -0
- package/src/fam-archetype-app/files/src/environments/environment.dev.ts.template +12 -0
- package/src/fam-archetype-app/files/src/environments/environment.int.ts.template +12 -0
- package/src/fam-archetype-app/files/src/environments/environment.pre.ts.template +12 -0
- package/src/fam-archetype-app/files/src/environments/environment.ts.template +12 -0
- package/src/fam-archetype-app/files/src/index.html.template +18 -0
- package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.html +69 -0
- package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.scss +0 -0
- package/src/fam-archetype-app/files/src/shared/styles/_movements.scss +19 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/_core.scss +20 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/_icons.scss +37 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/_tooltips.scss +14 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/_typography.scss +68 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/_utils.scss +24 -0
- package/src/fam-archetype-app/files/src/shared/styles/global/layout.scss +5 -0
- package/src/fam-archetype-app/files/src/shared/table/column-visibility-selector/column-visibility-selector.component.html +10 -0
- package/src/fam-archetype-app/files/src/shared/table/column-visibility-selector/column-visibility-selector.component.scss +0 -0
- package/src/fam-archetype-app/files/src/shared/table/diba-table/diba-table.component.html +136 -0
- package/src/fam-archetype-app/files/src/shared/table/diba-table/diba-table.component.scss +0 -0
- package/src/fam-archetype-app/files/src/styles.scss +109 -0
- package/src/fam-archetype-app/files/src/tailwind.css +3 -0
- package/src/fam-archetype-app/files/tailwind.config.js +36 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/commands.txt +1 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/db_to_entities.txt +1 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/commands/test_db_connection.txt +1 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/databases.yaml +188 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/downloads/.keep +0 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/lib/.keep +0 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamActivitat.entity +26 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamActivitatsUbicacio.entity +40 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamAlumne.entity +76 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamArea.entity +33 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamComanda.entity +37 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamCurs.entity +50 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamDocument.entity +53 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamDocumentTipus.entity +26 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamEntitatBase.entity +84 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedient.entity +71 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientDocument.entity +51 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientEstat.entity +26 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamExpedientTipus.entity +26 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamJerarquia.entity +33 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamLinia.entity +56 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamMatricula.entity +63 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamTipusArticle.entity +26 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamUbicacio.entity +35 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FamZona.entity +27 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/Funcionalitat.entity +65 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/FuncionalitatGrupFunc.entity +58 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/GrupFuncionalitat.entity +54 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/PerfilGrupFuncionalitat.entity +50 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/VusPerfil.entity +31 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/models/app/model.yaml +4 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/telosys-tools.cfg +31 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/telosys.env +5 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/README.md +12 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/database.properties +23 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/include/init_var_entity.vm +169 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/include/macros.vm +218 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/app_config_ts.vm +56 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/app_routes_ts.vm +21 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/domain/Xxx_entity_ts.vm +36 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/modules/domain/Xxx_repository_interface_ts.vm +27 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/main-angular/test_code.vm +3 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/templates.cfg +52 -0
- package/src/fam-archetype-app/files/tools/cli/TelosysTools/templates/fam-app-templates/tools-test/test-api_Xxx_rest.vm +181 -0
- package/src/fam-archetype-app/files/tools/cli/telosys +5 -0
- package/src/fam-archetype-app/files/tools/cli/telosys-cli-4.2.0-001.jar +0 -0
- package/src/fam-archetype-app/files/tools/cli/telosys-cli.cfg +55 -0
- package/src/fam-archetype-app/files/tools/cli/telosys-term.sh +30 -0
- package/src/fam-archetype-app/files/tools/cli/telosys.bat +4 -0
- package/src/fam-archetype-app/files/tools/cli/telosys.ico +0 -0
- package/src/fam-archetype-app/files/tools/db/develop/data/.keep +0 -0
- package/src/fam-archetype-app/files/tools/db/production/data/.keep +0 -0
- package/src/fam-archetype-app/files/tools/db/production/migrations/.keep +0 -0
- package/src/fam-archetype-app/files/tools/docs/.keep +0 -0
- package/src/fam-archetype-app/files/tools/test/test-api.rest +80 -0
- package/src/fam-archetype-app/files/tsconfig.app.json +15 -0
- package/src/fam-archetype-app/files/tsconfig.json +42 -0
- package/src/fam-archetype-app/files/tsconfig.spec.json +15 -0
- package/src/fam-archetype-app/files/vercel.json +9 -0
- package/src/fam-archetype-app/index.d.ts +2 -0
- package/src/fam-archetype-app/index.js +18 -0
- package/src/fam-archetype-app/index.js.map +1 -0
- package/src/fam-archetype-app/index_spec.d.ts +1 -0
- package/src/fam-archetype-app/index_spec.js +23 -0
- package/src/fam-archetype-app/index_spec.js.map +1 -0
- package/src/fam-archetype-app/schema.json +21 -0
- 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
|
+
}
|
package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.html
ADDED
|
@@ -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
|
+
|
package/src/fam-archetype-app/files/src/core/layout/component/menuitem/menuitem.component.scss
ADDED
|
@@ -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
|
+
}
|
package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.html
ADDED
|
@@ -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>
|
package/src/fam-archetype-app/files/src/core/layout/component/not-found/not-found.component.scss
ADDED
|
@@ -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
|
+
}
|
package/src/fam-archetype-app/files/src/core/layout/component/top-menu/top-menu.component.html
ADDED
|
@@ -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,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
|
+
}
|
package/src/fam-archetype-app/files/src/core/layout/component/topbar/topbar.component.html.template
ADDED
|
@@ -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,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>
|
package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.html
ADDED
|
@@ -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>
|
package/src/fam-archetype-app/files/src/shared/filters/diba-filters/diba-filters.component.scss
ADDED
|
File without changes
|
|
@@ -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
|
+
}
|