@net7/boilerplate-arianna 3.4.2 → 3.5.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 (36) hide show
  1. package/esm2020/lib/components/extended-tree/extended-tree.mjs +29 -0
  2. package/esm2020/lib/components/index.mjs +2 -1
  3. package/esm2020/lib/config/apollo.config.mjs +31 -3
  4. package/esm2020/lib/config-types/arianna/layouts.mjs +1 -1
  5. package/esm2020/lib/data-sources/extended-tree.ds.mjs +136 -0
  6. package/esm2020/lib/data-sources/index.mjs +2 -1
  7. package/esm2020/lib/data-sources/tree.ds.mjs +1 -1
  8. package/esm2020/lib/event-handlers/extended-tree.eh.mjs +15 -0
  9. package/esm2020/lib/event-handlers/index.mjs +2 -1
  10. package/esm2020/lib/event-handlers/tree.eh.mjs +7 -1
  11. package/esm2020/lib/helpers/node.helper.mjs +14 -0
  12. package/esm2020/lib/layouts/scheda-layout/scheda-layout.config.mjs +2 -1
  13. package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +120 -5
  14. package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +113 -6
  15. package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +5 -4
  16. package/esm2020/lib/n7-boilerplate-arianna.module.mjs +7 -3
  17. package/fesm2015/net7-boilerplate-arianna.mjs +455 -15
  18. package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -1
  19. package/fesm2020/net7-boilerplate-arianna.mjs +462 -15
  20. package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -1
  21. package/lib/components/extended-tree/extended-tree.d.ts +24 -0
  22. package/lib/components/index.d.ts +1 -0
  23. package/lib/config/apollo.config.d.ts +4 -0
  24. package/lib/config-types/arianna/layouts.d.ts +15 -0
  25. package/lib/data-sources/extended-tree.ds.d.ts +25 -0
  26. package/lib/data-sources/index.d.ts +1 -0
  27. package/lib/event-handlers/extended-tree.eh.d.ts +6 -0
  28. package/lib/event-handlers/index.d.ts +1 -0
  29. package/lib/event-handlers/tree.eh.d.ts +2 -0
  30. package/lib/helpers/node.helper.d.ts +8 -0
  31. package/lib/layouts/scheda-layout/scheda-layout.ds.d.ts +30 -1
  32. package/lib/layouts/scheda-layout/scheda-layout.eh.d.ts +9 -0
  33. package/lib/n7-boilerplate-arianna.module.d.ts +7 -6
  34. package/package.json +1 -1
  35. package/src/lib/styles/arianna/components/_extended-tree.scss +115 -0
  36. package/src/lib/styles/arianna/layouts/_scheda-layout.scss +87 -12
@@ -11,10 +11,10 @@ import { helpers, AbstractLayout, SmartPaginationDS, SmartPaginationEH, N7Boiler
11
11
  import * as i2 from 'ngx-extended-pdf-viewer';
12
12
  import { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';
13
13
  import { DataSource, EventHandler, LayoutDataSource } from '@net7/core';
14
- import { get, merge, max, min, isEmpty, cloneDeep, isNull } from 'lodash';
14
+ import { get, merge, max, min, isEmpty, cloneDeep, clone, isNumber, isNull } from 'lodash';
15
15
  import tippy from 'tippy.js';
16
- import { interval, Subject, merge as merge$1, fromEvent, ReplaySubject, BehaviorSubject, of, forkJoin, from } from 'rxjs';
17
- import { filter, first, mapTo, debounceTime, switchMap, withLatestFrom, map, catchError, tap, takeUntil } from 'rxjs/operators';
16
+ import { interval, Subject, merge as merge$1, fromEvent, ReplaySubject, BehaviorSubject, of, forkJoin, timer, from } from 'rxjs';
17
+ import { filter, first, mapTo, debounceTime, switchMap, withLatestFrom, map, catchError, tap, takeUntil, debounce } from 'rxjs/operators';
18
18
  import * as Leaflet from 'leaflet';
19
19
  import dayjs from 'dayjs';
20
20
  import slugify from 'slugify';
@@ -1259,6 +1259,153 @@ class AwTreeDS extends DataSource {
1259
1259
  }
1260
1260
  AwTreeDS.dataCache = {};
1261
1261
 
1262
+ const getNodeIcon = (configKeys, item) => {
1263
+ const { document_type: type, document_classification: classification } = item;
1264
+ let icon = configKeys[type] ? configKeys[type].icon : null;
1265
+ const lastSegment = /.*\.(\w+)$/;
1266
+ if (classification && lastSegment.test(classification)) {
1267
+ const classID = classification
1268
+ .match(lastSegment)[1] // get classification characters
1269
+ .toUpperCase(); // normalize
1270
+ icon = configKeys[type].classifications[classID].icon;
1271
+ }
1272
+ return icon;
1273
+ };
1274
+ var nodeHelper = { getNodeIcon };
1275
+
1276
+ const PAGE_LIMIT = 5;
1277
+ class AwExtendedTreeDS extends DataSource {
1278
+ constructor() {
1279
+ super(...arguments);
1280
+ this.transform = ({ parent, nodes }) => {
1281
+ const { totalCount } = nodes;
1282
+ const { title, params, basePath, lite, configKeys } = this.options;
1283
+ const page = params.page ? +params.page : 1;
1284
+ const limit = params.limit ? +params.limit : 10;
1285
+ // header
1286
+ const header = {
1287
+ title: {
1288
+ main: {
1289
+ text: `${title} <span class="aw-extended-tree__total">(${totalCount})</span>`,
1290
+ },
1291
+ secondary: {
1292
+ text: `In: "${parent.label}"`
1293
+ }
1294
+ },
1295
+ actions: {
1296
+ search: {
1297
+ placeholder: 'Cerca negli oggetti culturali',
1298
+ payload: 'search-input',
1299
+ button: null
1300
+ },
1301
+ }
1302
+ };
1303
+ // items
1304
+ const items = (nodes.items || []).map((item) => ({
1305
+ icon: nodeHelper.getNodeIcon(configKeys, item),
1306
+ thumbnail: lite ? null : item.img,
1307
+ label: item.label,
1308
+ anchor: {
1309
+ href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`
1310
+ }
1311
+ }));
1312
+ // pagination
1313
+ const pagination = this.getPagination(page, totalCount, limit);
1314
+ // page input
1315
+ const pageInput = {
1316
+ id: 'page-input',
1317
+ type: 'number',
1318
+ // value: page,
1319
+ placeholder: 'pag',
1320
+ inputPayload: 'page-input-change',
1321
+ enterPayload: 'page-input-enter',
1322
+ };
1323
+ // results limit select
1324
+ const limitSelect = {
1325
+ id: 'limit-select',
1326
+ label: 'Numero di risultati',
1327
+ options: [10, 25, 50].map((size) => ({
1328
+ label: `${size}`,
1329
+ value: size,
1330
+ selected: size === limit
1331
+ })),
1332
+ payload: 'limit-select',
1333
+ };
1334
+ return {
1335
+ header,
1336
+ items,
1337
+ pagination,
1338
+ pageInput,
1339
+ limitSelect,
1340
+ loading: false,
1341
+ };
1342
+ };
1343
+ }
1344
+ setLoading(loading) {
1345
+ this.output.loading = loading;
1346
+ }
1347
+ getPagination(page, totalCount, limit) {
1348
+ const pages = Math.ceil(totalCount / limit);
1349
+ return {
1350
+ links: this.getPaginationLinks(page, pages),
1351
+ first: {
1352
+ anchor: {
1353
+ payload: 1,
1354
+ },
1355
+ classes: page === 1 ? 'is-disabled' : '',
1356
+ },
1357
+ prev: {
1358
+ anchor: {
1359
+ payload: page === 1 ? 1 : page - 1,
1360
+ },
1361
+ classes: page === 1 ? 'is-disabled' : ''
1362
+ },
1363
+ next: {
1364
+ anchor: {
1365
+ payload: page === pages ? pages : page + 1,
1366
+ },
1367
+ classes: page === pages ? 'is-disabled' : '',
1368
+ },
1369
+ last: {
1370
+ anchor: {
1371
+ payload: pages,
1372
+ },
1373
+ classes: page === pages ? 'is-disabled' : '',
1374
+ }
1375
+ };
1376
+ }
1377
+ getPaginationLinks(page, pages) {
1378
+ let firstItem = 1;
1379
+ const links = [];
1380
+ const limit = PAGE_LIMIT;
1381
+ let last = limit;
1382
+ if (pages > limit) {
1383
+ const steps = Math.floor(limit / 2);
1384
+ if (page > steps) {
1385
+ firstItem = page - steps;
1386
+ }
1387
+ if ((page + steps) > pages) {
1388
+ firstItem = (pages - limit) + 1;
1389
+ }
1390
+ }
1391
+ else {
1392
+ last = pages;
1393
+ }
1394
+ let i;
1395
+ for (i = 0; i < last; i += 1) {
1396
+ const itemPage = firstItem + i;
1397
+ links.push({
1398
+ text: itemPage,
1399
+ classes: itemPage === page ? 'is-disabled' : '',
1400
+ anchor: {
1401
+ payload: itemPage,
1402
+ }
1403
+ });
1404
+ }
1405
+ return links;
1406
+ }
1407
+ }
1408
+
1262
1409
  class AwSearchLayoutTabsDS extends DataSource {
1263
1410
  constructor() {
1264
1411
  super(...arguments);
@@ -1885,6 +2032,7 @@ var DS = /*#__PURE__*/Object.freeze({
1885
2032
  AwSchedaMetadataDS: AwSchedaMetadataDS,
1886
2033
  AwSchedaPdfDS: AwSchedaPdfDS,
1887
2034
  AwTreeDS: AwTreeDS,
2035
+ AwExtendedTreeDS: AwExtendedTreeDS,
1888
2036
  AwSearchLayoutTabsDS: AwSearchLayoutTabsDS,
1889
2037
  AwFacetsWrapperDS: AwFacetsWrapperDS,
1890
2038
  AwGalleryResultsDS: AwGalleryResultsDS,
@@ -2220,6 +2368,12 @@ class AwTreeEH extends EventHandler {
2220
2368
  this.targetOffset.next(targetRect.top);
2221
2369
  }
2222
2370
  break;
2371
+ case 'aw-scheda-layout.selectParent':
2372
+ this.dataSource.build(payload);
2373
+ this.dataSource.setActive(payload);
2374
+ this.dataSource.highlightActive();
2375
+ this.scrollLeafIntoView();
2376
+ break;
2223
2377
  default:
2224
2378
  break;
2225
2379
  }
@@ -2256,6 +2410,20 @@ class AwSchedaPdfEH extends EventHandler {
2256
2410
  }
2257
2411
  }
2258
2412
 
2413
+ class AwExtendedTreeEH extends EventHandler {
2414
+ listen() {
2415
+ this.innerEvents$.subscribe(({ type, payload }) => {
2416
+ // redirect event
2417
+ this.emitOuter(type.split('.')[1], payload);
2418
+ });
2419
+ this.outerEvents$.subscribe(({ type }) => {
2420
+ if (type === 'aw-scheda-layout.extendedtreerequest') {
2421
+ this.dataSource.setLoading(true);
2422
+ }
2423
+ });
2424
+ }
2425
+ }
2426
+
2259
2427
  class AwSearchLayoutTabsEH extends EventHandler {
2260
2428
  listen() {
2261
2429
  // TODO
@@ -2714,6 +2882,7 @@ var EH = /*#__PURE__*/Object.freeze({
2714
2882
  AwTreeEH: AwTreeEH,
2715
2883
  AwSchedaDropdownEH: AwSchedaDropdownEH,
2716
2884
  AwSchedaPdfEH: AwSchedaPdfEH,
2885
+ AwExtendedTreeEH: AwExtendedTreeEH,
2717
2886
  AwSearchLayoutTabsEH: AwSearchLayoutTabsEH,
2718
2887
  AwFacetsWrapperEH: AwFacetsWrapperEH,
2719
2888
  AwGalleryResultsEH: AwGalleryResultsEH,
@@ -5892,6 +6061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
5892
6061
  args: [{ selector: 'aw-map-layout', template: "<div class=\"aw-multimedia\" id=\"map-layout\" *ngIf=\"lb.dataSource\">\n <n7-inner-title [data]=\"{\n title: {\n main: {\n text: 'I luoghi dell\\'archivio'\n }\n }\n }\">\n </n7-inner-title>\n\n <!-- Map -->\n <div class=\"aw-multimedia__map\">\n <n7-map [data]=\"lb.widgets['aw-map'].ds.out$ | async\"></n7-map>\n </div>\n <!-- END // Map -->\n\n <!-- RESULTS -->\n <div class=\"aw-multimedia__results\">\n <div class=\"aw-multimedia__loader\" *ngIf=\"(lb.dataSource.state$ | async) === 'LOADING'\">\n <ng-container>\n <n7-loader></n7-loader>\n </ng-container>\n </div>\n\n <div class=\"aw-multimedia__empty\" *ngIf=\"(lb.dataSource.state$ | async) === 'EMPTY'\">\n <ng-container>\n <p class=\"aw-multimedia__empty-text\">Clicca su un luogo della mappa per vedere tutti gli oggetti collegati.</p>\n </ng-container>\n </div>\n \n <ng-container *ngIf=\"(lb.dataSource.state$ | async) === 'SUCCESS'\">\n <div class=\"aw-multimedia__results-title\">\n <n7-inner-title \n [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div class=\"aw-multimedia__results-wrapper\">\n <div>\n <div class=\"aw-item-preview-wrapper\" *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <n7-smart-breadcrumbs \n [data]=\"preview.breadcrumbs\">\n </n7-smart-breadcrumbs>\n <n7-item-preview \n [data]=\"preview\" \n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div>\n </div>\n <n7-smart-pagination *ngIf=\"lb.dataSource.total > 0\"\n [data]=\"lb.widgets['n7-smart-pagination'].ds.out$ | async\"\n [emit]=\"lb.widgets['n7-smart-pagination'].emit\">\n </n7-smart-pagination>\n </div>\n </ng-container>\n </div>\n</div>" }]
5893
6062
  }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i1.LayoutsConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i3$1.Title }]; } });
5894
6063
 
6064
+ const LOCAL_STORAGE_PREFIX = 'aw.scheda';
5895
6065
  class AwSchedaLayoutDS extends LayoutDataSource {
5896
6066
  constructor() {
5897
6067
  super(...arguments);
@@ -5904,8 +6074,17 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5904
6074
  this.currentId = null;
5905
6075
  /** Switch loaded-content and loaded-empty states */
5906
6076
  this.hasContent = true;
6077
+ this.extendedTreeParams = {};
5907
6078
  /** Name of query that should be used (chosen in config) */
5908
6079
  this.getTreeQuery = 'getTree';
6080
+ this.titleNavigation = null;
6081
+ this.sectionCollapseState = {
6082
+ metadata: false,
6083
+ 'extended-tree': false,
6084
+ 'similar-items': false,
6085
+ 'related-entities': false
6086
+ };
6087
+ this.documentType = null;
5909
6088
  this.getTree = () => AwSchedaLayoutDS.tree;
5910
6089
  }
5911
6090
  onInit({ configuration, mainState, router, options, titleService, communication, }) {
@@ -5944,6 +6123,12 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5944
6123
  this.hasContextMenu = () => !!imageViewerConfig['context-menu'];
5945
6124
  // pdf viewer options
5946
6125
  this.one('aw-scheda-pdf').updateOptions(this.configuration.get('scheda-layout')['pdf-viewer'] || {});
6126
+ // check section collapse state
6127
+ Object.keys(this.sectionCollapseState).forEach((key) => {
6128
+ const storageKey = `${LOCAL_STORAGE_PREFIX}.${key}`;
6129
+ const storageValue = localStorage.getItem(storageKey);
6130
+ this.sectionCollapseState[key] = storageValue ? JSON.parse(storageValue) : false;
6131
+ });
5947
6132
  // sidebar sticky control
5948
6133
  this._sidebarStickyControl();
5949
6134
  }
@@ -5955,13 +6140,15 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5955
6140
  const metadataConfig = layoutConfig.metadata || {};
5956
6141
  return metadataConfig.title || null;
5957
6142
  }
5958
- getNavigation(id) {
6143
+ getNavigation() {
5959
6144
  if (AwSchedaLayoutDS.tree) {
5960
6145
  return of(AwSchedaLayoutDS.tree);
5961
6146
  }
5962
6147
  return this.communication.request$(this.getTreeQuery, {
5963
6148
  onError: (error) => console.error(error),
5964
- params: { treeId: id },
6149
+ params: {
6150
+ onlyAl: !!this.layoutConfig['extended-tree']
6151
+ },
5965
6152
  });
5966
6153
  }
5967
6154
  setTree(tree) {
@@ -5982,13 +6169,16 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5982
6169
  * @param response http response for the tree item
5983
6170
  */
5984
6171
  loadContent(response) {
6172
+ this.lastResponse = response;
5985
6173
  if (response) {
5986
6174
  // reset
5987
6175
  this.currentDigitalObject = null;
5988
6176
  this.currentDigitalObjectIndex = null;
5989
6177
  const metadataFields = this.getFields(response);
5990
6178
  this.hasMetadata = !!(Array.isArray(metadataFields) && metadataFields.length);
5991
- this.hasSimilarItems = Array.isArray(response.relatedItems) && response.relatedItems.length;
6179
+ this.hasSimilarItems = (!this.layoutConfig['extended-tree']
6180
+ && Array.isArray(response.relatedItems)
6181
+ && response.relatedItems.length);
5992
6182
  this.hasBreadcrumb = Array.isArray(response.breadcrumbs) && response.breadcrumbs.length;
5993
6183
  this.hasDigitalObjects = (Array.isArray(response.digitalObjects)
5994
6184
  && response.digitalObjects.length);
@@ -6044,6 +6234,10 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6044
6234
  });
6045
6235
  this.one('aw-scheda-breadcrumbs').update(breadcrumbs);
6046
6236
  }
6237
+ // title prev / next navigation
6238
+ this.loadTitleNavigation();
6239
+ // document title type (icon, label)
6240
+ this.loadDocumentType();
6047
6241
  // update head title
6048
6242
  this.mainState.update('headTitle', `Arianna4View - Patrimonio - ${response.title || response.label}`);
6049
6243
  }
@@ -6068,6 +6262,89 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6068
6262
  this.stickyControlTrigger$.next();
6069
6263
  });
6070
6264
  }
6265
+ loadExtendedTree() {
6266
+ const parentResponse = this.lastResponse;
6267
+ if (this.layoutConfig['extended-tree']) {
6268
+ const configKeys = this.configuration.get('config-keys');
6269
+ const widgetOptions = this.layoutConfig['extended-tree'];
6270
+ const params = {
6271
+ id: parentResponse.id,
6272
+ page: 1,
6273
+ limit: 10,
6274
+ query: null,
6275
+ ...this.extendedTreeParams,
6276
+ };
6277
+ const widgetParams = clone(params);
6278
+ // normalize params
6279
+ params.offset = (params.page - 1) * params.limit;
6280
+ delete params.page;
6281
+ const basePath = this.configuration.get('paths').schedaBasePath;
6282
+ const request$ = this.communication.request$('getNodeChildren', {
6283
+ params,
6284
+ onError: (error) => console.error(error),
6285
+ });
6286
+ request$.subscribe((nodesResponse) => {
6287
+ this.hasExtendedTree = (params.query
6288
+ || widgetParams.page > 1
6289
+ || !!nodesResponse?.items?.length);
6290
+ if (this.hasExtendedTree) {
6291
+ this.one('aw-extended-tree').updateOptions({
6292
+ basePath,
6293
+ configKeys,
6294
+ params: widgetParams,
6295
+ ...widgetOptions,
6296
+ });
6297
+ this.one('aw-extended-tree').update({
6298
+ parent: parentResponse,
6299
+ nodes: nodesResponse
6300
+ });
6301
+ // fix query input update
6302
+ if (params.query) {
6303
+ setTimeout(() => {
6304
+ const queryInput = document
6305
+ .querySelector('.aw-extended-tree__header .n7-inner-title__search-bar');
6306
+ queryInput.value = params.query || '';
6307
+ });
6308
+ }
6309
+ }
6310
+ });
6311
+ }
6312
+ else {
6313
+ this.hasExtendedTree = false;
6314
+ }
6315
+ }
6316
+ loadTitleNavigation() {
6317
+ // reset
6318
+ this.titleNavigation = null;
6319
+ const hasTitleNav = (!!this.layoutConfig['title-nav']?.enabled
6320
+ && this.lastResponse.document_type === 'oggetto-culturale');
6321
+ if (!hasTitleNav)
6322
+ return;
6323
+ this.titleNavigation = { prev: null, next: null };
6324
+ const basePath = this.configuration.get('paths').schedaBasePath;
6325
+ ['prev', 'next'].forEach((key) => {
6326
+ const item = this.lastResponse[key];
6327
+ this.titleNavigation[key] = item
6328
+ ? {
6329
+ href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`,
6330
+ label: item.label,
6331
+ } : null;
6332
+ });
6333
+ }
6334
+ loadDocumentType() {
6335
+ const configKeys = this.configuration.get('config-keys');
6336
+ const { document_type: type } = this.lastResponse;
6337
+ const icon = nodeHelper.getNodeIcon(configKeys, this.lastResponse);
6338
+ if (configKeys[type]) {
6339
+ this.documentType = {
6340
+ icon,
6341
+ label: configKeys[type]['singular-label']
6342
+ };
6343
+ }
6344
+ else {
6345
+ this.documentType = null;
6346
+ }
6347
+ }
6071
6348
  /**
6072
6349
  * Toggle between the tree's collapsed or expanded state.
6073
6350
  */
@@ -6077,6 +6354,12 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6077
6354
  this.sidebarCollapsed = !this.sidebarCollapsed;
6078
6355
  this.getWidgetDataSource('aw-sidebar-header').toggleSidebar();
6079
6356
  }
6357
+ onSectionCollapse(id) {
6358
+ this.sectionCollapseState[id] = !this.sectionCollapseState[id];
6359
+ // update storage
6360
+ const storageKey = `${LOCAL_STORAGE_PREFIX}.${id}`;
6361
+ localStorage.setItem(storageKey, this.sectionCollapseState[id]);
6362
+ }
6080
6363
  _sidebarStickyControl() {
6081
6364
  // no sticky for Internet Explorer
6082
6365
  if (helpers.browserIsIE()) {
@@ -6172,6 +6455,8 @@ class AwSchedaLayoutEH extends EventHandler {
6172
6455
  constructor() {
6173
6456
  super(...arguments);
6174
6457
  this.destroyed$ = new Subject();
6458
+ this.treeLoaded$ = new ReplaySubject();
6459
+ this.extendedTreeChanged$ = new Subject();
6175
6460
  }
6176
6461
  listen() {
6177
6462
  this.innerEvents$.subscribe(({ type, payload }) => {
@@ -6181,11 +6466,14 @@ class AwSchedaLayoutEH extends EventHandler {
6181
6466
  this.dataSource.onInit(payload);
6182
6467
  this.configuration = payload.configuration;
6183
6468
  this.route = payload.route;
6469
+ this.router = payload.router;
6184
6470
  const paramId = this.route.snapshot.params.id || '';
6185
6471
  if (paramId) {
6186
6472
  this.dataSource.currentId = paramId;
6187
6473
  }
6188
6474
  this.listenRoute();
6475
+ this.listenRouteQueryParams();
6476
+ this.listenExtendedTree();
6189
6477
  this.loadNavigation(paramId);
6190
6478
  this.emitOuter('viewleaf');
6191
6479
  // scroll top
@@ -6212,6 +6500,52 @@ class AwSchedaLayoutEH extends EventHandler {
6212
6500
  case 'aw-scheda-dropdown.click':
6213
6501
  this.dataSource.changeDigitalObject(payload);
6214
6502
  break;
6503
+ case 'aw-extended-tree.change':
6504
+ {
6505
+ let key;
6506
+ let delay;
6507
+ if (payload.inputPayload === 'search-input') {
6508
+ key = 'query';
6509
+ delay = 1000;
6510
+ }
6511
+ else if (payload.inputPayload === 'limit-select') {
6512
+ key = 'limit';
6513
+ }
6514
+ else if (payload.inputPayload === 'page-input-change') {
6515
+ this.pageInputValue = payload.value;
6516
+ }
6517
+ else if (payload.inputPayload === 'page-input-enter') {
6518
+ key = 'page';
6519
+ }
6520
+ if (key) {
6521
+ this.extendedTreeChanged$.next({
6522
+ key,
6523
+ delay,
6524
+ value: payload.value,
6525
+ });
6526
+ }
6527
+ }
6528
+ break;
6529
+ case 'aw-extended-tree.search':
6530
+ this.extendedTreeChanged$.next({
6531
+ key: 'query',
6532
+ value: payload.value
6533
+ });
6534
+ break;
6535
+ case 'aw-extended-tree.click':
6536
+ this.extendedTreeChanged$.next({
6537
+ key: 'page',
6538
+ value: payload
6539
+ });
6540
+ break;
6541
+ case 'aw-extended-tree.pageinputsubmit':
6542
+ if (isNumber(this.pageInputValue)) {
6543
+ this.extendedTreeChanged$.next({
6544
+ key: 'page',
6545
+ value: this.pageInputValue
6546
+ });
6547
+ }
6548
+ break;
6215
6549
  default:
6216
6550
  break;
6217
6551
  }
@@ -6228,17 +6562,62 @@ class AwSchedaLayoutEH extends EventHandler {
6228
6562
  this.dataSource.contentIsLoading = true;
6229
6563
  this.dataSource.loadItem(paramId).pipe(switchMap((response) => this.parseDigitalObjects$(response))).subscribe((response) => {
6230
6564
  this.dataSource.contentIsLoading = false;
6231
- if (response)
6565
+ if (response) {
6232
6566
  this.dataSource.loadContent(response);
6567
+ this.dataSource.loadExtendedTree();
6568
+ this.checkTreeItems(response);
6569
+ }
6233
6570
  });
6234
6571
  }
6235
6572
  // scroll top
6236
6573
  window.scrollTo(0, 0);
6237
6574
  });
6238
6575
  }
6576
+ listenExtendedTree() {
6577
+ this.extendedTreeChanged$.pipe(filter(({ key, value }) => !(key === 'page' && (!isNumber(+value) || +value < 1))), debounce(({ delay }) => timer(delay || 1))).subscribe(({ key, value }) => {
6578
+ const queryParams = {};
6579
+ if (typeof value === 'string') {
6580
+ queryParams[key] = value.trim().length ? value : null;
6581
+ }
6582
+ else {
6583
+ queryParams[key] = `${value}`;
6584
+ }
6585
+ // page check
6586
+ if (key !== 'page') {
6587
+ queryParams.page = '1';
6588
+ }
6589
+ // reset pageInput value
6590
+ this.pageInputValue = null;
6591
+ // update url
6592
+ this.router.navigate([], {
6593
+ queryParams,
6594
+ queryParamsHandling: 'merge'
6595
+ });
6596
+ });
6597
+ }
6598
+ listenRouteQueryParams() {
6599
+ this.route.queryParams.subscribe((params) => {
6600
+ const extendedTreeParams = clone(params);
6601
+ // force numeric
6602
+ ['page', 'limit'].forEach((key) => {
6603
+ if (params[key] && isNumber(+params[key])) {
6604
+ extendedTreeParams[key] = +params[key];
6605
+ }
6606
+ else {
6607
+ delete extendedTreeParams[key];
6608
+ }
6609
+ });
6610
+ this.dataSource.extendedTreeParams = extendedTreeParams;
6611
+ // has node response
6612
+ if (this.dataSource.lastResponse) {
6613
+ this.emitOuter('extendedtreerequest');
6614
+ this.dataSource.loadExtendedTree();
6615
+ }
6616
+ });
6617
+ }
6239
6618
  loadNavigation(selectedItem) {
6240
6619
  this.dataSource.updateNavigation('Caricamento in corso...');
6241
- this.dataSource.getNavigation('patrimonio').subscribe((response) => {
6620
+ this.dataSource.getNavigation().subscribe((response) => {
6242
6621
  if (response) {
6243
6622
  this.dataSource.setTree(response);
6244
6623
  this.dataSource.updateNavigation(this.dataSource.getTree().label);
@@ -6247,6 +6626,8 @@ class AwSchedaLayoutEH extends EventHandler {
6247
6626
  currentItem: selectedItem,
6248
6627
  basePath: this.configuration.get('paths').schedaBasePath,
6249
6628
  });
6629
+ // emit signal
6630
+ this.treeLoaded$.next();
6250
6631
  }
6251
6632
  });
6252
6633
  }
@@ -6312,6 +6693,15 @@ class AwSchedaLayoutEH extends EventHandler {
6312
6693
  }
6313
6694
  return iiifImages;
6314
6695
  }
6696
+ checkTreeItems(response) {
6697
+ this.treeLoaded$.pipe(first()).subscribe(() => {
6698
+ const treeDS = this.dataSource.getWidgetDataSource('aw-tree');
6699
+ const { items } = treeDS.output;
6700
+ if (!items.length && response.lastAl?.id) {
6701
+ this.emitOuter('selectParent', response.lastAl.id);
6702
+ }
6703
+ });
6704
+ }
6315
6705
  }
6316
6706
 
6317
6707
  const AwPatrimonioLayoutConfig = {
@@ -6332,6 +6722,7 @@ const AwPatrimonioLayoutConfig = {
6332
6722
  { id: 'aw-related-entities' },
6333
6723
  { id: 'aw-chart-tippy' },
6334
6724
  { id: 'aw-linked-objects' },
6725
+ { id: 'aw-extended-tree' },
6335
6726
  ],
6336
6727
  layoutDS: AwSchedaLayoutDS,
6337
6728
  layoutEH: AwSchedaLayoutEH,
@@ -6386,6 +6777,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
6386
6777
  type: Input
6387
6778
  }] } });
6388
6779
 
6780
+ class ExtendedTreeComponent {
6781
+ onPageInputSubmit() {
6782
+ if (!this.emit)
6783
+ return;
6784
+ this.emit('pageinputsubmit');
6785
+ }
6786
+ onCollapseClick(type) {
6787
+ if (type === 'text')
6788
+ return;
6789
+ this.lb.dataSource.onSectionCollapse('extended-tree');
6790
+ }
6791
+ }
6792
+ ExtendedTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ExtendedTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6793
+ ExtendedTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ExtendedTreeComponent, selector: "aw-extended-tree", inputs: { data: "data", emit: "emit", lb: "lb" }, ngImport: i0, template: "<div *ngIf=\"data\" class=\"aw-extended-tree\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"onCollapseClick($event.target?.type)\">\n <ng-content></ng-content>\n <div *ngIf=\"data.header as header\" class=\"aw-scheda__inner-title aw-extended-tree__header\">\n <n7-inner-title \n [data]=\"header\"\n [emit]=\"this.emit\"></n7-inner-title>\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['extended-tree']\">\n <ng-container *ngIf=\"data.loading\">\n <div class=\"aw-extended-tree__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.loading\">\n <div *ngIf=\"data.items as items\" class=\"aw-extended-tree__content\">\n <div *ngFor=\"let item of data.items\" class=\"aw-extended-tree__item\">\n <n7-anchor-wrapper [classes]=\"'aw-extended-tree__item-link'\" [data]=\"item.anchor\">\n <div *ngIf=\"item.icon\" class=\"aw-extended-tree__item-icon\">\n <span class=\"{{ item.icon }}\"></span>\n </div>\n <div *ngIf=\"item.thumbnail\" class=\"aw-extended-tree__item-image\">\n <img src=\"{{ item.thumbnail }}\" alt=\"{{ item.label }}\">\n </div>\n <div *ngIf=\"item.label\" class=\"aw-extended-tree__item-label\">{{ item.label }}</div>\n </n7-anchor-wrapper>\n </div>\n </div>\n <div *ngIf=\"data.pagination as pagination\" class=\"aw-extended-tree__footer\">\n <div *ngIf=\"data.pagination as pagination\" class=\"aw-extended-tree__pagination\">\n <n7-pagination \n [data]=\"pagination\"\n [emit]=\"this.emit\"></n7-pagination>\n </div>\n <div *ngIf=\"data.pageInput as pageInput\" class=\"aw-extended-tree__page-input\">\n <n7-input-text \n [data]=\"pageInput\"\n [emit]=\"this.emit\"></n7-input-text>\n <button class=\"n7-btn\"\n (click)=\"onPageInputSubmit()\">Vai</button>\n </div>\n <div *ngIf=\"data.limitSelect as limitSelect\" class=\"aw-extended-tree__limit-select\">\n <n7-input-select \n [data]=\"limitSelect\"\n [emit]=\"this.emit\"></n7-input-select>\n </div>\n </div>\n </ng-container>\n </div>\n</div>", components: [{ type: i3.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { type: i3.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { type: i3.AnchorWrapperComponent, selector: "n7-anchor-wrapper", inputs: ["data", "classes"], outputs: ["clicked"] }, { type: i3.PaginationComponent, selector: "n7-pagination", inputs: ["data", "emit"] }, { type: i3.InputTextComponent, selector: "n7-input-text", inputs: ["data", "emit"] }, { type: i3.InputSelectComponent, selector: "n7-input-select", inputs: ["data", "emit"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
6794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ExtendedTreeComponent, decorators: [{
6795
+ type: Component,
6796
+ args: [{ selector: 'aw-extended-tree', template: "<div *ngIf=\"data\" class=\"aw-extended-tree\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"onCollapseClick($event.target?.type)\">\n <ng-content></ng-content>\n <div *ngIf=\"data.header as header\" class=\"aw-scheda__inner-title aw-extended-tree__header\">\n <n7-inner-title \n [data]=\"header\"\n [emit]=\"this.emit\"></n7-inner-title>\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['extended-tree']\">\n <ng-container *ngIf=\"data.loading\">\n <div class=\"aw-extended-tree__loader\">\n <n7-loader></n7-loader>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!data.loading\">\n <div *ngIf=\"data.items as items\" class=\"aw-extended-tree__content\">\n <div *ngFor=\"let item of data.items\" class=\"aw-extended-tree__item\">\n <n7-anchor-wrapper [classes]=\"'aw-extended-tree__item-link'\" [data]=\"item.anchor\">\n <div *ngIf=\"item.icon\" class=\"aw-extended-tree__item-icon\">\n <span class=\"{{ item.icon }}\"></span>\n </div>\n <div *ngIf=\"item.thumbnail\" class=\"aw-extended-tree__item-image\">\n <img src=\"{{ item.thumbnail }}\" alt=\"{{ item.label }}\">\n </div>\n <div *ngIf=\"item.label\" class=\"aw-extended-tree__item-label\">{{ item.label }}</div>\n </n7-anchor-wrapper>\n </div>\n </div>\n <div *ngIf=\"data.pagination as pagination\" class=\"aw-extended-tree__footer\">\n <div *ngIf=\"data.pagination as pagination\" class=\"aw-extended-tree__pagination\">\n <n7-pagination \n [data]=\"pagination\"\n [emit]=\"this.emit\"></n7-pagination>\n </div>\n <div *ngIf=\"data.pageInput as pageInput\" class=\"aw-extended-tree__page-input\">\n <n7-input-text \n [data]=\"pageInput\"\n [emit]=\"this.emit\"></n7-input-text>\n <button class=\"n7-btn\"\n (click)=\"onPageInputSubmit()\">Vai</button>\n </div>\n <div *ngIf=\"data.limitSelect as limitSelect\" class=\"aw-extended-tree__limit-select\">\n <n7-input-select \n [data]=\"limitSelect\"\n [emit]=\"this.emit\"></n7-input-select>\n </div>\n </div>\n </ng-container>\n </div>\n</div>" }]
6797
+ }], propDecorators: { data: [{
6798
+ type: Input
6799
+ }], emit: [{
6800
+ type: Input
6801
+ }], lb: [{
6802
+ type: Input
6803
+ }] } });
6804
+
6389
6805
  class AwSchedaLayoutComponent extends AbstractLayout {
6390
6806
  constructor(router, route, configuration, layoutsConfiguration, mainState, titleService, communication) {
6391
6807
  super(layoutsConfiguration.get('AwPatrimonioLayoutConfig') || AwPatrimonioLayoutConfig);
@@ -6421,10 +6837,10 @@ class AwSchedaLayoutComponent extends AbstractLayout {
6421
6837
  }
6422
6838
  }
6423
6839
  AwSchedaLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AwSchedaLayoutComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i1.ConfigurationService }, { token: i1.LayoutsConfigurationService }, { token: i1.MainStateService }, { token: i3$1.Title }, { token: i1.CommunicationService }], target: i0.ɵɵFactoryTarget.Component });
6424
- AwSchedaLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AwSchedaLayoutComponent, selector: "aw-scheda-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n </div>\n\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !$do.hasNavigation\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section class=\"aw-scheda__section aw-scheda__description\"\n *ngIf=\"lb.dataSource.contentParts.content\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section class=\"aw-scheda__section aw-scheda__metadata\"\n *ngIf=\"lb.dataSource.hasMetadata\">\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n <div class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n <div class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n", components: [{ type: SmartBreadcrumbsComponent, selector: "n7-smart-breadcrumbs", inputs: ["data", "emit"] }, { type: i3.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { type: i3.SidebarHeaderComponent, selector: "n7-sidebar-header", inputs: ["data", "emit"] }, { type: i3.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { type: i3.TreeComponent, selector: "n7-tree", inputs: ["data", "emit"] }, { type: SchedaDropdownComponent, selector: "aw-scheda-dropdown", inputs: ["data", "emit"] }, { type: i3.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { type: PdfViewerComponent, selector: "aw-pdf-viewer", inputs: ["data", "emit"] }, { type: i3.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { type: i3.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i7.AsyncPipe } });
6840
+ AwSchedaLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: AwSchedaLayoutComponent, selector: "aw-scheda-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n </div>\n\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !$do.hasNavigation\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>", components: [{ type: SmartBreadcrumbsComponent, selector: "n7-smart-breadcrumbs", inputs: ["data", "emit"] }, { type: i3.InnerTitleComponent, selector: "n7-inner-title", inputs: ["data", "emit"] }, { type: i3.SidebarHeaderComponent, selector: "n7-sidebar-header", inputs: ["data", "emit"] }, { type: i3.ContentPlaceholderComponent, selector: "n7-content-placeholder", inputs: ["data"] }, { type: i3.TreeComponent, selector: "n7-tree", inputs: ["data", "emit"] }, { type: SchedaDropdownComponent, selector: "aw-scheda-dropdown", inputs: ["data", "emit"] }, { type: i3.ImageViewerComponent, selector: "n7-image-viewer", inputs: ["data", "emit"] }, { type: PdfViewerComponent, selector: "aw-pdf-viewer", inputs: ["data", "emit"] }, { type: i3.MetadataViewerComponent, selector: "n7-metadata-viewer", inputs: ["data", "emit"] }, { type: i3.ItemPreviewComponent, selector: "n7-item-preview", inputs: ["data", "emit"] }, { type: i3.LoaderComponent, selector: "n7-loader", inputs: ["data"] }, { type: ExtendedTreeComponent, selector: "aw-extended-tree", inputs: ["data", "emit", "lb"] }], directives: [{ type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i7.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "async": i7.AsyncPipe } });
6425
6841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AwSchedaLayoutComponent, decorators: [{
6426
6842
  type: Component,
6427
- args: [{ selector: 'aw-scheda-layout', template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n </div>\n\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !$do.hasNavigation\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section class=\"aw-scheda__section aw-scheda__description\"\n *ngIf=\"lb.dataSource.contentParts.content\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section class=\"aw-scheda__section aw-scheda__metadata\"\n *ngIf=\"lb.dataSource.hasMetadata\">\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n <div class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n <div class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n</ng-template>\n" }]
6843
+ args: [{ selector: 'aw-scheda-layout', template: "<div class=\"aw-scheda\"\n id=\"scheda-layout\">\n <div class=\"aw-scheda__content n7-side-auto-padding sticky-parent\"\n [ngClass]=\"{ 'is-collapsed' : lb.dataSource.sidebarCollapsed }\">\n\n <ng-container *ngTemplateOutlet=\"tree\"></ng-container>\n\n <div class=\"aw-scheda__scheda-wrapper\"\n [hidden]=\"lb.dataSource.contentIsLoading\">\n\n <n7-smart-breadcrumbs *ngIf=\"lb.dataSource.hasBreadcrumb\"\n [data]=\"lb.widgets['aw-scheda-breadcrumbs'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-breadcrumbs'].emit\">\n </n7-smart-breadcrumbs>\n\n <div *ngIf=\"!lb.dataSource.hasBreadcrumb\"\n class=\"aw-scheda__fake-breadcrumbs\"\n (click)=\"lb.eventHandler.emitInner('togglesidebar', {})\">\n <p class=\"aw-scheda__fake-breadcrumbs-open\" \n *ngIf=\"lb.dataSource.sidebarCollapsed\">\n Consulta il patrimonio\n </p>\n </div>\n\n <div *ngIf=\"!lb.dataSource.currentId\"\n class=\"aw-scheda__intro-text\"\n [innerHTML]=\"lb.dataSource.emptyLabel\">\n </div>\n\n <div class=\"aw-scheda__title-wrapper\">\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__prev\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.prev?.href ? [titleNav.prev.href] : null\"\n [title]=\"titleNav.prev?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.prev?.href }\">\n <span class=\"n7-icon-angle-left\"></span>\n </a>\n </div>\n <div class=\"aw-scheda__title\">\n <div *ngIf=\"lb.dataSource.documentType as documentType\" class=\"aw-scheda__document-type\">\n <span *ngIf=\"documentType.icon\" class=\"aw-scheda__document-type-icon {{ documentType.icon }}\"></span>\n <span class=\"aw-scheda__document-type-label\">{{ documentType.label }}</span>\n </div>\n <n7-inner-title [data]=\"lb.widgets['aw-scheda-inner-title'].ds.out$ | async\">\n </n7-inner-title>\n </div>\n <div *ngIf=\"lb.dataSource.titleNavigation as titleNav\" class=\"aw-scheda__next\">\n <a class=\"n7-btn n7-btn-light\" [routerLink]=\"titleNav.next?.href ? [titleNav.next.href] : null\"\n [title]=\"titleNav.next?.label || ''\"\n [ngClass]=\"{ 'is-disabled': !titleNav.next?.href }\">\n <span class=\"n7-icon-angle-right\"></span>\n </a>\n </div>\n </div>\n\n <!-- Empty state -->\n <ng-container *ngIf=\"!lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"empty\"></ng-container>\n </ng-container>\n\n <!-- Content sections -->\n <ng-container *ngIf=\"lb.dataSource.hasContent\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n\n </div>\n\n </div>\n</div>\n\n<ng-template #tree>\n <div class=\"aw-scheda__tree sticky-target\"\n [ngClass]=\"{ 'is-sticky': lb.dataSource.sidebarIsSticky }\">\n <n7-sidebar-header [data]=\"lb.widgets['aw-sidebar-header'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-sidebar-header'].emit\"></n7-sidebar-header>\n <div class=\"aw-scheda__tree-content-loading\"\n *ngIf=\"!(lb.widgets['aw-tree'].ds.out$ | async)\">\n <n7-content-placeholder *ngFor=\"let n of [0,1,2,3]\"\n [data]=\"{\n blocks: [{\n classes: 'tree-placeholder-item'\n }]\n }\"></n7-content-placeholder>\n </div>\n <div class=\"aw-scheda__tree-content\"\n (click)=\"lb.eventHandler.emitOuter('treeposition', $event)\"\n [ngStyle]=\"{\n 'max-height': lb.dataSource.treeMaxHeight,\n 'overflow': 'auto'\n }\">\n <n7-tree [data]=\"lb.widgets['aw-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-tree'].emit\"\n *ngIf=\"!lb.dataSource.sidebarCollapsed\">\n </n7-tree>\n </div>\n </div>\n</ng-template>\n\n<ng-template #empty>\n <section class=\"aw-scheda__section aw-scheda__empty\"\n [innerHTML]=\"lb.dataSource.emptyStateString\">\n </section>\n</ng-template>\n\n<ng-template #content>\n <!-- Digital Object selection dropdown -->\n <section class=\"aw-scheda__digital-object-dropdown\"\n *ngIf=\"(\n lb.dataSource.hasDigitalObjects \n && lb.dataSource.digitalObjects.length > 1\n )\">\n <p class=\"aw-scheda__digital-object-dropdown-label\">\n Seleziona l'oggetto digitale da visualizzare:\n </p>\n <aw-scheda-dropdown \n [data]=\"lb.widgets['aw-scheda-dropdown'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-dropdown'].emit\">\n </aw-scheda-dropdown>\n </section>\n <!-- END // Digital Object selection dropdown -->\n\n <!-- Digital Objects: images, IIP, PDFs, external links -->\n <section *ngIf=\"lb.dataSource.currentDigitalObject as $do\" \n class=\"aw-scheda__media aw-scheda__{{ $do.type }}\"\n [ngClass]=\"{ \n 'navigation-hidden': !$do.hasNavigation\n }\">\n <ng-container [ngSwitch]=\"$do.type\">\n <!-- IMAGE VIEWER (IIP) -->\n <ng-container *ngSwitchCase=\"'images-iip'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (IIIF) -->\n <ng-container *ngSwitchCase=\"'images-iiif'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\" \n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n\n <!-- IMAGE VIEWER (Simple: jpg, png) -->\n <ng-container *ngSwitchCase=\"'images-simple'\">\n <n7-image-viewer \n (contextmenu)=\"lb.dataSource.hasContextMenu()\"\n [data]=\"lb.widgets['aw-scheda-image'].ds.out$ | async\">\n </n7-image-viewer>\n </ng-container>\n \n <!-- PDF -->\n <ng-container *ngSwitchCase=\"'pdf'\">\n <aw-pdf-viewer \n [data]=\"lb.widgets['aw-scheda-pdf'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-scheda-pdf'].emit\">\n </aw-pdf-viewer>\n </ng-container>\n \n <!-- EXTERNAL URL -->\n <ng-container *ngSwitchCase=\"'external'\">\n <div class=\"aw-scheda__external-url\">\n <a class=\"aw-scheda__external-url-link\" href=\"{{ $do.url }}\" target=\"_blank\">\n {{ $do.label || lb.dataSource.externalUrlText }}\n <span class=\"n7-icon-external-link\"></span>\n </a>\n </div>\n </ng-container>\n </ng-container>\n </section>\n <!-- END // Digital Objects -->\n\n <section *ngIf=\"lb.dataSource.contentParts.content\" class=\"aw-scheda__section aw-scheda__description\">\n <div *ngFor=\"let part of lb.dataSource.contentParts\">\n <div [innerHTML]=\"part.content\"></div>\n </div>\n </section>\n\n <!-- Metadata -->\n <section *ngIf=\"lb.dataSource.hasMetadata\" class=\"aw-scheda__section aw-scheda__metadata\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('metadata')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'metadata' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\"\n *ngIf=\"lb.dataSource.metadataSectionTitle\">\n {{lb.dataSource.metadataSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['metadata']\" \n class=\"aw-scheda__section-content-wrapper\">\n <n7-metadata-viewer [data]=\"lb.widgets['aw-scheda-metadata'].ds.out$ | async\">\n </n7-metadata-viewer>\n </div>\n </section>\n <!-- END // Metadata -->\n\n <!-- Related entities -->\n <section *ngIf=\"lb.dataSource.hasRelatedEntities\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('related-entities')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'related-entities' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.relatedEntitiesHeader}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['related-entities']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-related-entities'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-related-entities'].emit\">\n </n7-item-preview>\n <!-- Relation -->\n <div class=\"aw-item-preview-relation\"\n *ngIf=\"preview.relation?.value\">\n <p class=\"aw-item-preview-relation__description\">Tipo di relazione\n <!-- <span class=\"aw-item-preview-relation__key\">{{preview.relation.key}}</span>: -->\n <span class=\"aw-item-preview-relation__value\">{{preview.relation.value}}</span>\n </p>\n </div>\n </div>\n </ng-container>\n </div>\n </section>\n <!-- END // Related entities -->\n\n <!-- Similar Objects -->\n <section *ngIf=\"lb.dataSource.hasSimilarItems\"\n id=\"related-item-container\"\n class=\"aw-scheda__section aw-scheda__related\">\n <div class=\"aw-scheda__section-title-wrapper\" (click)=\"lb.dataSource.onSectionCollapse('similar-items')\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'similar-items' }\"></ng-container>\n <div class=\"aw-scheda__inner-title\">\n {{lb.dataSource.similarItemsSectionTitle}}\n </div>\n </div>\n <div [hidden]=\"!!lb.dataSource.sectionCollapseState['similar-items']\" \n class=\"aw-scheda__related-items aw-item-preview-list n7-grid-2\">\n <ng-container *ngFor=\"let preview of (lb.widgets['aw-linked-objects'].ds.out$ | async)?.previews\">\n <div class=\"aw-item-preview-wrapper\">\n <n7-item-preview [data]=\"preview\"\n [emit]=\"lb.widgets['aw-linked-objects'].emit\">\n </n7-item-preview>\n </div> \n </ng-container>\n </div>\n </section>\n <!-- END // Similar Objects -->\n\n <!-- Extended Tree -->\n <section *ngIf=\"lb.dataSource.hasExtendedTree\" id=\"extended-tree-container\" class=\"aw-scheda__section\">\n <div class=\"aw-scheda__section-extended-tree-loader\" *ngIf=\"!(lb.widgets['aw-extended-tree'].ds.out$ | async)\">\n <n7-loader></n7-loader>\n </div>\n <aw-extended-tree\n [data]=\"lb.widgets['aw-extended-tree'].ds.out$ | async\"\n [emit]=\"lb.widgets['aw-extended-tree'].emit\"\n [lb]=\"lb\">\n <ng-container *ngTemplateOutlet=\"collapse; context: { $implicit: 'extended-tree' }\"></ng-container>\n </aw-extended-tree>\n </section>\n <!-- END // Extended Tree -->\n</ng-template>\n\n<ng-template #collapse let-id>\n <div class=\"aw-scheda__collapse\">\n <button class=\"n7-btn n7-btn-light\">\n <span class=\"n7-icon-angle-right\"\n [ngClass]=\"{\n 'n7-icon-angle-right': !!lb.dataSource.sectionCollapseState[id],\n 'n7-icon-angle-down': !lb.dataSource.sectionCollapseState[id]\n }\"></span>\n </button>\n </div>\n</ng-template>" }]
6428
6844
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i1.ConfigurationService }, { type: i1.LayoutsConfigurationService }, { type: i1.MainStateService }, { type: i3$1.Title }, { type: i1.CommunicationService }]; } });
6429
6845
 
6430
6846
  const AwSearchLayoutConfig = {
@@ -6784,7 +7200,7 @@ var apolloConfig = (treeDepth) => ({
6784
7200
  queryName: 'getTreeOfItems',
6785
7201
  queryBody: `
6786
7202
  {
6787
- getTreeOfItems{
7203
+ getTreeOfItems(__PARAMS__){
6788
7204
  ${getTreeBranches(treeDepth, false)}
6789
7205
  }
6790
7206
  }
@@ -6794,7 +7210,7 @@ var apolloConfig = (treeDepth) => ({
6794
7210
  queryName: 'getTreeOfItems',
6795
7211
  queryBody: `
6796
7212
  {
6797
- getTreeOfItems{
7213
+ getTreeOfItems(__PARAMS__){
6798
7214
  ${getTreeBranches(treeDepth)}
6799
7215
  }
6800
7216
  }
@@ -7023,6 +7439,22 @@ var apolloConfig = (treeDepth) => ({
7023
7439
  }
7024
7440
  }`,
7025
7441
  },
7442
+ getNodeChildren: {
7443
+ queryName: 'getNodeChildren',
7444
+ queryBody: `{
7445
+ getNodeChildren(__PARAMS__) {
7446
+ items {
7447
+ id
7448
+ label
7449
+ icon
7450
+ img
7451
+ document_type
7452
+ document_classification
7453
+ }
7454
+ totalCount
7455
+ }
7456
+ }`
7457
+ },
7026
7458
  getNode: {
7027
7459
  queryName: 'getNode',
7028
7460
  queryBody: `{
@@ -7033,6 +7465,18 @@ var apolloConfig = (treeDepth) => ({
7033
7465
  title
7034
7466
  subTitle
7035
7467
  image
7468
+ prev {
7469
+ id
7470
+ label
7471
+ }
7472
+ next {
7473
+ id
7474
+ label
7475
+ }
7476
+ lastAl {
7477
+ id
7478
+ label
7479
+ }
7036
7480
  digitalObjects {
7037
7481
  label
7038
7482
  type
@@ -7439,6 +7883,7 @@ const COMPONENTS = [
7439
7883
  PdfViewerComponent,
7440
7884
  SchedaDropdownComponent,
7441
7885
  SmartBreadcrumbsComponent,
7886
+ ExtendedTreeComponent,
7442
7887
  ];
7443
7888
  class N7BoilerplateAriannaModule {
7444
7889
  constructor(initStatus, config) {
@@ -7466,7 +7911,8 @@ N7BoilerplateAriannaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
7466
7911
  ChartTippyComponent,
7467
7912
  PdfViewerComponent,
7468
7913
  SchedaDropdownComponent,
7469
- SmartBreadcrumbsComponent], imports: [CommonModule,
7914
+ SmartBreadcrumbsComponent,
7915
+ ExtendedTreeComponent], imports: [CommonModule,
7470
7916
  RouterModule,
7471
7917
  DvComponentsLibModule,
7472
7918
  N7BoilerplateCommonModule,
@@ -7483,7 +7929,8 @@ N7BoilerplateAriannaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
7483
7929
  ChartTippyComponent,
7484
7930
  PdfViewerComponent,
7485
7931
  SchedaDropdownComponent,
7486
- SmartBreadcrumbsComponent] });
7932
+ SmartBreadcrumbsComponent,
7933
+ ExtendedTreeComponent] });
7487
7934
  N7BoilerplateAriannaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: N7BoilerplateAriannaModule, imports: [[
7488
7935
  CommonModule,
7489
7936
  RouterModule,
@@ -7516,5 +7963,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
7516
7963
  * Generated bundle index. Do not edit.
7517
7964
  */
7518
7965
 
7519
- export { AwAutocompleteWrapperDS, AwAutocompleteWrapperEH, AwBubbleChartDS, AwBubbleChartEH, AwCarouselDS, AwChartTippyDS, AwChartTippyEH, AwCollectionLayoutComponent, AwCollectionLayoutConfig, AwCollectionLayoutDS, AwCollectionLayoutEH, AwEntitaLayoutComponent, AwEntitaLayoutConfig, AwEntitaLayoutDS, AwEntitaLayoutEH, AwEntitaMetadataViewerDS, AwEntitaNavDS, AwEntitaNavEH, AwFacetsWrapperComponent, AwFacetsWrapperDS, AwFacetsWrapperEH, AwGalleryLayoutComponent, AwGalleryLayoutConfig, AwGalleryLayoutDS, AwGalleryLayoutEH, AwGalleryResultsDS, AwGalleryResultsEH, AwHeroDS, AwHeroEH, AwHomeAutocompleteDS, AwHomeAutocompleteEH, AwHomeFacetsWrapperDS, AwHomeFacetsWrapperEH, AwHomeHeroPatrimonioDS, AwHomeHeroPatrimonioEH, AwHomeItemTagsWrapperDS, AwHomeItemTagsWrapperEH, AwHomeLayoutComponent, AwHomeLayoutConfig, AwHomeLayoutDS, AwHomeLayoutEH, AwLinkedObjectsDS, AwLinkedObjectsEH, AwMapDS, AwMapEH, AwMapLayoutComponent, AwMapLayoutConfig, AwMapLayoutDS, AwMapLayoutEH, AwPatrimonioLayoutConfig, AwRelatedEntitiesDS, AwSchedaBreadcrumbsDS, AwSchedaDropdownDS, AwSchedaDropdownEH, AwSchedaImageDS, AwSchedaInnerTitleDS, AwSchedaLayoutComponent, AwSchedaLayoutDS, AwSchedaLayoutEH, AwSchedaMetadataDS, AwSchedaPdfDS, AwSchedaPdfEH, AwSchedaSidebarEH, AwSearchLayoutComponent, AwSearchLayoutConfig, AwSearchLayoutDS, AwSearchLayoutEH, AwSearchLayoutTabsDS, AwSearchLayoutTabsEH, AwSidebarHeaderDS, AwSidebarHeaderEH, AwTableDS, AwTableEH, AwTimelineDS, AwTimelineEH, AwTimelineLayoutComponent, AwTimelineLayoutConfig, AwTimelineLayoutDS, AwTimelineLayoutEH, AwTreeDS, AwTreeEH, BubbleChartWrapperComponent, ChartTippyComponent, N7BoilerplateAriannaModule, PdfViewerComponent, SchedaDropdownComponent, SmartBreadcrumbsComponent };
7966
+ export { AwAutocompleteWrapperDS, AwAutocompleteWrapperEH, AwBubbleChartDS, AwBubbleChartEH, AwCarouselDS, AwChartTippyDS, AwChartTippyEH, AwCollectionLayoutComponent, AwCollectionLayoutConfig, AwCollectionLayoutDS, AwCollectionLayoutEH, AwEntitaLayoutComponent, AwEntitaLayoutConfig, AwEntitaLayoutDS, AwEntitaLayoutEH, AwEntitaMetadataViewerDS, AwEntitaNavDS, AwEntitaNavEH, AwExtendedTreeDS, AwExtendedTreeEH, AwFacetsWrapperComponent, AwFacetsWrapperDS, AwFacetsWrapperEH, AwGalleryLayoutComponent, AwGalleryLayoutConfig, AwGalleryLayoutDS, AwGalleryLayoutEH, AwGalleryResultsDS, AwGalleryResultsEH, AwHeroDS, AwHeroEH, AwHomeAutocompleteDS, AwHomeAutocompleteEH, AwHomeFacetsWrapperDS, AwHomeFacetsWrapperEH, AwHomeHeroPatrimonioDS, AwHomeHeroPatrimonioEH, AwHomeItemTagsWrapperDS, AwHomeItemTagsWrapperEH, AwHomeLayoutComponent, AwHomeLayoutConfig, AwHomeLayoutDS, AwHomeLayoutEH, AwLinkedObjectsDS, AwLinkedObjectsEH, AwMapDS, AwMapEH, AwMapLayoutComponent, AwMapLayoutConfig, AwMapLayoutDS, AwMapLayoutEH, AwPatrimonioLayoutConfig, AwRelatedEntitiesDS, AwSchedaBreadcrumbsDS, AwSchedaDropdownDS, AwSchedaDropdownEH, AwSchedaImageDS, AwSchedaInnerTitleDS, AwSchedaLayoutComponent, AwSchedaLayoutDS, AwSchedaLayoutEH, AwSchedaMetadataDS, AwSchedaPdfDS, AwSchedaPdfEH, AwSchedaSidebarEH, AwSearchLayoutComponent, AwSearchLayoutConfig, AwSearchLayoutDS, AwSearchLayoutEH, AwSearchLayoutTabsDS, AwSearchLayoutTabsEH, AwSidebarHeaderDS, AwSidebarHeaderEH, AwTableDS, AwTableEH, AwTimelineDS, AwTimelineEH, AwTimelineLayoutComponent, AwTimelineLayoutConfig, AwTimelineLayoutDS, AwTimelineLayoutEH, AwTreeDS, AwTreeEH, BubbleChartWrapperComponent, ChartTippyComponent, ExtendedTreeComponent, N7BoilerplateAriannaModule, PdfViewerComponent, SchedaDropdownComponent, SmartBreadcrumbsComponent };
7520
7967
  //# sourceMappingURL=net7-boilerplate-arianna.mjs.map