@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';
@@ -1245,6 +1245,153 @@ class AwTreeDS extends DataSource {
1245
1245
  }
1246
1246
  AwTreeDS.dataCache = {};
1247
1247
 
1248
+ const getNodeIcon = (configKeys, item) => {
1249
+ const { document_type: type, document_classification: classification } = item;
1250
+ let icon = configKeys[type] ? configKeys[type].icon : null;
1251
+ const lastSegment = /.*\.(\w+)$/;
1252
+ if (classification && lastSegment.test(classification)) {
1253
+ const classID = classification
1254
+ .match(lastSegment)[1] // get classification characters
1255
+ .toUpperCase(); // normalize
1256
+ icon = configKeys[type].classifications[classID].icon;
1257
+ }
1258
+ return icon;
1259
+ };
1260
+ var nodeHelper = { getNodeIcon };
1261
+
1262
+ const PAGE_LIMIT = 5;
1263
+ class AwExtendedTreeDS extends DataSource {
1264
+ constructor() {
1265
+ super(...arguments);
1266
+ this.transform = ({ parent, nodes }) => {
1267
+ const { totalCount } = nodes;
1268
+ const { title, params, basePath, lite, configKeys } = this.options;
1269
+ const page = params.page ? +params.page : 1;
1270
+ const limit = params.limit ? +params.limit : 10;
1271
+ // header
1272
+ const header = {
1273
+ title: {
1274
+ main: {
1275
+ text: `${title} <span class="aw-extended-tree__total">(${totalCount})</span>`,
1276
+ },
1277
+ secondary: {
1278
+ text: `In: "${parent.label}"`
1279
+ }
1280
+ },
1281
+ actions: {
1282
+ search: {
1283
+ placeholder: 'Cerca negli oggetti culturali',
1284
+ payload: 'search-input',
1285
+ button: null
1286
+ },
1287
+ }
1288
+ };
1289
+ // items
1290
+ const items = (nodes.items || []).map((item) => ({
1291
+ icon: nodeHelper.getNodeIcon(configKeys, item),
1292
+ thumbnail: lite ? null : item.img,
1293
+ label: item.label,
1294
+ anchor: {
1295
+ href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`
1296
+ }
1297
+ }));
1298
+ // pagination
1299
+ const pagination = this.getPagination(page, totalCount, limit);
1300
+ // page input
1301
+ const pageInput = {
1302
+ id: 'page-input',
1303
+ type: 'number',
1304
+ // value: page,
1305
+ placeholder: 'pag',
1306
+ inputPayload: 'page-input-change',
1307
+ enterPayload: 'page-input-enter',
1308
+ };
1309
+ // results limit select
1310
+ const limitSelect = {
1311
+ id: 'limit-select',
1312
+ label: 'Numero di risultati',
1313
+ options: [10, 25, 50].map((size) => ({
1314
+ label: `${size}`,
1315
+ value: size,
1316
+ selected: size === limit
1317
+ })),
1318
+ payload: 'limit-select',
1319
+ };
1320
+ return {
1321
+ header,
1322
+ items,
1323
+ pagination,
1324
+ pageInput,
1325
+ limitSelect,
1326
+ loading: false,
1327
+ };
1328
+ };
1329
+ }
1330
+ setLoading(loading) {
1331
+ this.output.loading = loading;
1332
+ }
1333
+ getPagination(page, totalCount, limit) {
1334
+ const pages = Math.ceil(totalCount / limit);
1335
+ return {
1336
+ links: this.getPaginationLinks(page, pages),
1337
+ first: {
1338
+ anchor: {
1339
+ payload: 1,
1340
+ },
1341
+ classes: page === 1 ? 'is-disabled' : '',
1342
+ },
1343
+ prev: {
1344
+ anchor: {
1345
+ payload: page === 1 ? 1 : page - 1,
1346
+ },
1347
+ classes: page === 1 ? 'is-disabled' : ''
1348
+ },
1349
+ next: {
1350
+ anchor: {
1351
+ payload: page === pages ? pages : page + 1,
1352
+ },
1353
+ classes: page === pages ? 'is-disabled' : '',
1354
+ },
1355
+ last: {
1356
+ anchor: {
1357
+ payload: pages,
1358
+ },
1359
+ classes: page === pages ? 'is-disabled' : '',
1360
+ }
1361
+ };
1362
+ }
1363
+ getPaginationLinks(page, pages) {
1364
+ let firstItem = 1;
1365
+ const links = [];
1366
+ const limit = PAGE_LIMIT;
1367
+ let last = limit;
1368
+ if (pages > limit) {
1369
+ const steps = Math.floor(limit / 2);
1370
+ if (page > steps) {
1371
+ firstItem = page - steps;
1372
+ }
1373
+ if ((page + steps) > pages) {
1374
+ firstItem = (pages - limit) + 1;
1375
+ }
1376
+ }
1377
+ else {
1378
+ last = pages;
1379
+ }
1380
+ let i;
1381
+ for (i = 0; i < last; i += 1) {
1382
+ const itemPage = firstItem + i;
1383
+ links.push({
1384
+ text: itemPage,
1385
+ classes: itemPage === page ? 'is-disabled' : '',
1386
+ anchor: {
1387
+ payload: itemPage,
1388
+ }
1389
+ });
1390
+ }
1391
+ return links;
1392
+ }
1393
+ }
1394
+
1248
1395
  class AwSearchLayoutTabsDS extends DataSource {
1249
1396
  constructor() {
1250
1397
  super(...arguments);
@@ -1862,6 +2009,7 @@ var DS = /*#__PURE__*/Object.freeze({
1862
2009
  AwSchedaMetadataDS: AwSchedaMetadataDS,
1863
2010
  AwSchedaPdfDS: AwSchedaPdfDS,
1864
2011
  AwTreeDS: AwTreeDS,
2012
+ AwExtendedTreeDS: AwExtendedTreeDS,
1865
2013
  AwSearchLayoutTabsDS: AwSearchLayoutTabsDS,
1866
2014
  AwFacetsWrapperDS: AwFacetsWrapperDS,
1867
2015
  AwGalleryResultsDS: AwGalleryResultsDS,
@@ -2197,6 +2345,12 @@ class AwTreeEH extends EventHandler {
2197
2345
  this.targetOffset.next(targetRect.top);
2198
2346
  }
2199
2347
  break;
2348
+ case 'aw-scheda-layout.selectParent':
2349
+ this.dataSource.build(payload);
2350
+ this.dataSource.setActive(payload);
2351
+ this.dataSource.highlightActive();
2352
+ this.scrollLeafIntoView();
2353
+ break;
2200
2354
  default:
2201
2355
  break;
2202
2356
  }
@@ -2233,6 +2387,20 @@ class AwSchedaPdfEH extends EventHandler {
2233
2387
  }
2234
2388
  }
2235
2389
 
2390
+ class AwExtendedTreeEH extends EventHandler {
2391
+ listen() {
2392
+ this.innerEvents$.subscribe(({ type, payload }) => {
2393
+ // redirect event
2394
+ this.emitOuter(type.split('.')[1], payload);
2395
+ });
2396
+ this.outerEvents$.subscribe(({ type }) => {
2397
+ if (type === 'aw-scheda-layout.extendedtreerequest') {
2398
+ this.dataSource.setLoading(true);
2399
+ }
2400
+ });
2401
+ }
2402
+ }
2403
+
2236
2404
  class AwSearchLayoutTabsEH extends EventHandler {
2237
2405
  listen() {
2238
2406
  // TODO
@@ -2693,6 +2861,7 @@ var EH = /*#__PURE__*/Object.freeze({
2693
2861
  AwTreeEH: AwTreeEH,
2694
2862
  AwSchedaDropdownEH: AwSchedaDropdownEH,
2695
2863
  AwSchedaPdfEH: AwSchedaPdfEH,
2864
+ AwExtendedTreeEH: AwExtendedTreeEH,
2696
2865
  AwSearchLayoutTabsEH: AwSearchLayoutTabsEH,
2697
2866
  AwFacetsWrapperEH: AwFacetsWrapperEH,
2698
2867
  AwGalleryResultsEH: AwGalleryResultsEH,
@@ -5852,6 +6021,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
5852
6021
  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>" }]
5853
6022
  }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i1.LayoutsConfigurationService }, { type: i1.CommunicationService }, { type: i1.MainStateService }, { type: i3$1.Title }]; } });
5854
6023
 
6024
+ const LOCAL_STORAGE_PREFIX = 'aw.scheda';
5855
6025
  class AwSchedaLayoutDS extends LayoutDataSource {
5856
6026
  constructor() {
5857
6027
  super(...arguments);
@@ -5864,8 +6034,17 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5864
6034
  this.currentId = null;
5865
6035
  /** Switch loaded-content and loaded-empty states */
5866
6036
  this.hasContent = true;
6037
+ this.extendedTreeParams = {};
5867
6038
  /** Name of query that should be used (chosen in config) */
5868
6039
  this.getTreeQuery = 'getTree';
6040
+ this.titleNavigation = null;
6041
+ this.sectionCollapseState = {
6042
+ metadata: false,
6043
+ 'extended-tree': false,
6044
+ 'similar-items': false,
6045
+ 'related-entities': false
6046
+ };
6047
+ this.documentType = null;
5869
6048
  this.getTree = () => AwSchedaLayoutDS.tree;
5870
6049
  }
5871
6050
  onInit({ configuration, mainState, router, options, titleService, communication, }) {
@@ -5905,6 +6084,12 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5905
6084
  this.hasContextMenu = () => !!imageViewerConfig['context-menu'];
5906
6085
  // pdf viewer options
5907
6086
  this.one('aw-scheda-pdf').updateOptions(this.configuration.get('scheda-layout')['pdf-viewer'] || {});
6087
+ // check section collapse state
6088
+ Object.keys(this.sectionCollapseState).forEach((key) => {
6089
+ const storageKey = `${LOCAL_STORAGE_PREFIX}.${key}`;
6090
+ const storageValue = localStorage.getItem(storageKey);
6091
+ this.sectionCollapseState[key] = storageValue ? JSON.parse(storageValue) : false;
6092
+ });
5908
6093
  // sidebar sticky control
5909
6094
  this._sidebarStickyControl();
5910
6095
  }
@@ -5916,13 +6101,15 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5916
6101
  const metadataConfig = layoutConfig.metadata || {};
5917
6102
  return metadataConfig.title || null;
5918
6103
  }
5919
- getNavigation(id) {
6104
+ getNavigation() {
5920
6105
  if (AwSchedaLayoutDS.tree) {
5921
6106
  return of(AwSchedaLayoutDS.tree);
5922
6107
  }
5923
6108
  return this.communication.request$(this.getTreeQuery, {
5924
6109
  onError: (error) => console.error(error),
5925
- params: { treeId: id },
6110
+ params: {
6111
+ onlyAl: !!this.layoutConfig['extended-tree']
6112
+ },
5926
6113
  });
5927
6114
  }
5928
6115
  setTree(tree) {
@@ -5943,13 +6130,16 @@ class AwSchedaLayoutDS extends LayoutDataSource {
5943
6130
  * @param response http response for the tree item
5944
6131
  */
5945
6132
  loadContent(response) {
6133
+ this.lastResponse = response;
5946
6134
  if (response) {
5947
6135
  // reset
5948
6136
  this.currentDigitalObject = null;
5949
6137
  this.currentDigitalObjectIndex = null;
5950
6138
  const metadataFields = this.getFields(response);
5951
6139
  this.hasMetadata = !!(Array.isArray(metadataFields) && metadataFields.length);
5952
- this.hasSimilarItems = Array.isArray(response.relatedItems) && response.relatedItems.length;
6140
+ this.hasSimilarItems = (!this.layoutConfig['extended-tree']
6141
+ && Array.isArray(response.relatedItems)
6142
+ && response.relatedItems.length);
5953
6143
  this.hasBreadcrumb = Array.isArray(response.breadcrumbs) && response.breadcrumbs.length;
5954
6144
  this.hasDigitalObjects = (Array.isArray(response.digitalObjects)
5955
6145
  && response.digitalObjects.length);
@@ -6005,6 +6195,10 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6005
6195
  });
6006
6196
  this.one('aw-scheda-breadcrumbs').update(breadcrumbs);
6007
6197
  }
6198
+ // title prev / next navigation
6199
+ this.loadTitleNavigation();
6200
+ // document title type (icon, label)
6201
+ this.loadDocumentType();
6008
6202
  // update head title
6009
6203
  this.mainState.update('headTitle', `Arianna4View - Patrimonio - ${response.title || response.label}`);
6010
6204
  }
@@ -6029,6 +6223,81 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6029
6223
  this.stickyControlTrigger$.next();
6030
6224
  });
6031
6225
  }
6226
+ loadExtendedTree() {
6227
+ const parentResponse = this.lastResponse;
6228
+ if (this.layoutConfig['extended-tree']) {
6229
+ const configKeys = this.configuration.get('config-keys');
6230
+ const widgetOptions = this.layoutConfig['extended-tree'];
6231
+ const params = Object.assign({ id: parentResponse.id, page: 1, limit: 10, query: null }, this.extendedTreeParams);
6232
+ const widgetParams = clone(params);
6233
+ // normalize params
6234
+ params.offset = (params.page - 1) * params.limit;
6235
+ delete params.page;
6236
+ const basePath = this.configuration.get('paths').schedaBasePath;
6237
+ const request$ = this.communication.request$('getNodeChildren', {
6238
+ params,
6239
+ onError: (error) => console.error(error),
6240
+ });
6241
+ request$.subscribe((nodesResponse) => {
6242
+ var _a;
6243
+ this.hasExtendedTree = (params.query
6244
+ || widgetParams.page > 1
6245
+ || !!((_a = nodesResponse === null || nodesResponse === void 0 ? void 0 : nodesResponse.items) === null || _a === void 0 ? void 0 : _a.length));
6246
+ if (this.hasExtendedTree) {
6247
+ this.one('aw-extended-tree').updateOptions(Object.assign({ basePath,
6248
+ configKeys, params: widgetParams }, widgetOptions));
6249
+ this.one('aw-extended-tree').update({
6250
+ parent: parentResponse,
6251
+ nodes: nodesResponse
6252
+ });
6253
+ // fix query input update
6254
+ if (params.query) {
6255
+ setTimeout(() => {
6256
+ const queryInput = document
6257
+ .querySelector('.aw-extended-tree__header .n7-inner-title__search-bar');
6258
+ queryInput.value = params.query || '';
6259
+ });
6260
+ }
6261
+ }
6262
+ });
6263
+ }
6264
+ else {
6265
+ this.hasExtendedTree = false;
6266
+ }
6267
+ }
6268
+ loadTitleNavigation() {
6269
+ var _a;
6270
+ // reset
6271
+ this.titleNavigation = null;
6272
+ const hasTitleNav = (!!((_a = this.layoutConfig['title-nav']) === null || _a === void 0 ? void 0 : _a.enabled)
6273
+ && this.lastResponse.document_type === 'oggetto-culturale');
6274
+ if (!hasTitleNav)
6275
+ return;
6276
+ this.titleNavigation = { prev: null, next: null };
6277
+ const basePath = this.configuration.get('paths').schedaBasePath;
6278
+ ['prev', 'next'].forEach((key) => {
6279
+ const item = this.lastResponse[key];
6280
+ this.titleNavigation[key] = item
6281
+ ? {
6282
+ href: `${basePath}/${item.id}/${helpers.slugify(item.label)}`,
6283
+ label: item.label,
6284
+ } : null;
6285
+ });
6286
+ }
6287
+ loadDocumentType() {
6288
+ const configKeys = this.configuration.get('config-keys');
6289
+ const { document_type: type } = this.lastResponse;
6290
+ const icon = nodeHelper.getNodeIcon(configKeys, this.lastResponse);
6291
+ if (configKeys[type]) {
6292
+ this.documentType = {
6293
+ icon,
6294
+ label: configKeys[type]['singular-label']
6295
+ };
6296
+ }
6297
+ else {
6298
+ this.documentType = null;
6299
+ }
6300
+ }
6032
6301
  /**
6033
6302
  * Toggle between the tree's collapsed or expanded state.
6034
6303
  */
@@ -6038,6 +6307,12 @@ class AwSchedaLayoutDS extends LayoutDataSource {
6038
6307
  this.sidebarCollapsed = !this.sidebarCollapsed;
6039
6308
  this.getWidgetDataSource('aw-sidebar-header').toggleSidebar();
6040
6309
  }
6310
+ onSectionCollapse(id) {
6311
+ this.sectionCollapseState[id] = !this.sectionCollapseState[id];
6312
+ // update storage
6313
+ const storageKey = `${LOCAL_STORAGE_PREFIX}.${id}`;
6314
+ localStorage.setItem(storageKey, this.sectionCollapseState[id]);
6315
+ }
6041
6316
  _sidebarStickyControl() {
6042
6317
  // no sticky for Internet Explorer
6043
6318
  if (helpers.browserIsIE()) {
@@ -6133,6 +6408,8 @@ class AwSchedaLayoutEH extends EventHandler {
6133
6408
  constructor() {
6134
6409
  super(...arguments);
6135
6410
  this.destroyed$ = new Subject();
6411
+ this.treeLoaded$ = new ReplaySubject();
6412
+ this.extendedTreeChanged$ = new Subject();
6136
6413
  }
6137
6414
  listen() {
6138
6415
  this.innerEvents$.subscribe(({ type, payload }) => {
@@ -6142,11 +6419,14 @@ class AwSchedaLayoutEH extends EventHandler {
6142
6419
  this.dataSource.onInit(payload);
6143
6420
  this.configuration = payload.configuration;
6144
6421
  this.route = payload.route;
6422
+ this.router = payload.router;
6145
6423
  const paramId = this.route.snapshot.params.id || '';
6146
6424
  if (paramId) {
6147
6425
  this.dataSource.currentId = paramId;
6148
6426
  }
6149
6427
  this.listenRoute();
6428
+ this.listenRouteQueryParams();
6429
+ this.listenExtendedTree();
6150
6430
  this.loadNavigation(paramId);
6151
6431
  this.emitOuter('viewleaf');
6152
6432
  // scroll top
@@ -6173,6 +6453,52 @@ class AwSchedaLayoutEH extends EventHandler {
6173
6453
  case 'aw-scheda-dropdown.click':
6174
6454
  this.dataSource.changeDigitalObject(payload);
6175
6455
  break;
6456
+ case 'aw-extended-tree.change':
6457
+ {
6458
+ let key;
6459
+ let delay;
6460
+ if (payload.inputPayload === 'search-input') {
6461
+ key = 'query';
6462
+ delay = 1000;
6463
+ }
6464
+ else if (payload.inputPayload === 'limit-select') {
6465
+ key = 'limit';
6466
+ }
6467
+ else if (payload.inputPayload === 'page-input-change') {
6468
+ this.pageInputValue = payload.value;
6469
+ }
6470
+ else if (payload.inputPayload === 'page-input-enter') {
6471
+ key = 'page';
6472
+ }
6473
+ if (key) {
6474
+ this.extendedTreeChanged$.next({
6475
+ key,
6476
+ delay,
6477
+ value: payload.value,
6478
+ });
6479
+ }
6480
+ }
6481
+ break;
6482
+ case 'aw-extended-tree.search':
6483
+ this.extendedTreeChanged$.next({
6484
+ key: 'query',
6485
+ value: payload.value
6486
+ });
6487
+ break;
6488
+ case 'aw-extended-tree.click':
6489
+ this.extendedTreeChanged$.next({
6490
+ key: 'page',
6491
+ value: payload
6492
+ });
6493
+ break;
6494
+ case 'aw-extended-tree.pageinputsubmit':
6495
+ if (isNumber(this.pageInputValue)) {
6496
+ this.extendedTreeChanged$.next({
6497
+ key: 'page',
6498
+ value: this.pageInputValue
6499
+ });
6500
+ }
6501
+ break;
6176
6502
  default:
6177
6503
  break;
6178
6504
  }
@@ -6189,17 +6515,62 @@ class AwSchedaLayoutEH extends EventHandler {
6189
6515
  this.dataSource.contentIsLoading = true;
6190
6516
  this.dataSource.loadItem(paramId).pipe(switchMap((response) => this.parseDigitalObjects$(response))).subscribe((response) => {
6191
6517
  this.dataSource.contentIsLoading = false;
6192
- if (response)
6518
+ if (response) {
6193
6519
  this.dataSource.loadContent(response);
6520
+ this.dataSource.loadExtendedTree();
6521
+ this.checkTreeItems(response);
6522
+ }
6194
6523
  });
6195
6524
  }
6196
6525
  // scroll top
6197
6526
  window.scrollTo(0, 0);
6198
6527
  });
6199
6528
  }
6529
+ listenExtendedTree() {
6530
+ this.extendedTreeChanged$.pipe(filter(({ key, value }) => !(key === 'page' && (!isNumber(+value) || +value < 1))), debounce(({ delay }) => timer(delay || 1))).subscribe(({ key, value }) => {
6531
+ const queryParams = {};
6532
+ if (typeof value === 'string') {
6533
+ queryParams[key] = value.trim().length ? value : null;
6534
+ }
6535
+ else {
6536
+ queryParams[key] = `${value}`;
6537
+ }
6538
+ // page check
6539
+ if (key !== 'page') {
6540
+ queryParams.page = '1';
6541
+ }
6542
+ // reset pageInput value
6543
+ this.pageInputValue = null;
6544
+ // update url
6545
+ this.router.navigate([], {
6546
+ queryParams,
6547
+ queryParamsHandling: 'merge'
6548
+ });
6549
+ });
6550
+ }
6551
+ listenRouteQueryParams() {
6552
+ this.route.queryParams.subscribe((params) => {
6553
+ const extendedTreeParams = clone(params);
6554
+ // force numeric
6555
+ ['page', 'limit'].forEach((key) => {
6556
+ if (params[key] && isNumber(+params[key])) {
6557
+ extendedTreeParams[key] = +params[key];
6558
+ }
6559
+ else {
6560
+ delete extendedTreeParams[key];
6561
+ }
6562
+ });
6563
+ this.dataSource.extendedTreeParams = extendedTreeParams;
6564
+ // has node response
6565
+ if (this.dataSource.lastResponse) {
6566
+ this.emitOuter('extendedtreerequest');
6567
+ this.dataSource.loadExtendedTree();
6568
+ }
6569
+ });
6570
+ }
6200
6571
  loadNavigation(selectedItem) {
6201
6572
  this.dataSource.updateNavigation('Caricamento in corso...');
6202
- this.dataSource.getNavigation('patrimonio').subscribe((response) => {
6573
+ this.dataSource.getNavigation().subscribe((response) => {
6203
6574
  if (response) {
6204
6575
  this.dataSource.setTree(response);
6205
6576
  this.dataSource.updateNavigation(this.dataSource.getTree().label);
@@ -6208,6 +6579,8 @@ class AwSchedaLayoutEH extends EventHandler {
6208
6579
  currentItem: selectedItem,
6209
6580
  basePath: this.configuration.get('paths').schedaBasePath,
6210
6581
  });
6582
+ // emit signal
6583
+ this.treeLoaded$.next();
6211
6584
  }
6212
6585
  });
6213
6586
  }
@@ -6273,6 +6646,16 @@ class AwSchedaLayoutEH extends EventHandler {
6273
6646
  }
6274
6647
  return iiifImages;
6275
6648
  }
6649
+ checkTreeItems(response) {
6650
+ this.treeLoaded$.pipe(first()).subscribe(() => {
6651
+ var _a;
6652
+ const treeDS = this.dataSource.getWidgetDataSource('aw-tree');
6653
+ const { items } = treeDS.output;
6654
+ if (!items.length && ((_a = response.lastAl) === null || _a === void 0 ? void 0 : _a.id)) {
6655
+ this.emitOuter('selectParent', response.lastAl.id);
6656
+ }
6657
+ });
6658
+ }
6276
6659
  }
6277
6660
 
6278
6661
  const AwPatrimonioLayoutConfig = {
@@ -6293,6 +6676,7 @@ const AwPatrimonioLayoutConfig = {
6293
6676
  { id: 'aw-related-entities' },
6294
6677
  { id: 'aw-chart-tippy' },
6295
6678
  { id: 'aw-linked-objects' },
6679
+ { id: 'aw-extended-tree' },
6296
6680
  ],
6297
6681
  layoutDS: AwSchedaLayoutDS,
6298
6682
  layoutEH: AwSchedaLayoutEH,
@@ -6347,6 +6731,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
6347
6731
  type: Input
6348
6732
  }] } });
6349
6733
 
6734
+ class ExtendedTreeComponent {
6735
+ onPageInputSubmit() {
6736
+ if (!this.emit)
6737
+ return;
6738
+ this.emit('pageinputsubmit');
6739
+ }
6740
+ onCollapseClick(type) {
6741
+ if (type === 'text')
6742
+ return;
6743
+ this.lb.dataSource.onSectionCollapse('extended-tree');
6744
+ }
6745
+ }
6746
+ ExtendedTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ExtendedTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6747
+ 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"] }] });
6748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ExtendedTreeComponent, decorators: [{
6749
+ type: Component,
6750
+ 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>" }]
6751
+ }], propDecorators: { data: [{
6752
+ type: Input
6753
+ }], emit: [{
6754
+ type: Input
6755
+ }], lb: [{
6756
+ type: Input
6757
+ }] } });
6758
+
6350
6759
  class AwSchedaLayoutComponent extends AbstractLayout {
6351
6760
  constructor(router, route, configuration, layoutsConfiguration, mainState, titleService, communication) {
6352
6761
  super(layoutsConfiguration.get('AwPatrimonioLayoutConfig') || AwPatrimonioLayoutConfig);
@@ -6382,10 +6791,10 @@ class AwSchedaLayoutComponent extends AbstractLayout {
6382
6791
  }
6383
6792
  }
6384
6793
  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 });
6385
- 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 } });
6794
+ 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 } });
6386
6795
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: AwSchedaLayoutComponent, decorators: [{
6387
6796
  type: Component,
6388
- 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" }]
6797
+ 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>" }]
6389
6798
  }], 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 }]; } });
6390
6799
 
6391
6800
  const AwSearchLayoutConfig = {
@@ -6746,7 +7155,7 @@ var apolloConfig = (treeDepth) => ({
6746
7155
  queryName: 'getTreeOfItems',
6747
7156
  queryBody: `
6748
7157
  {
6749
- getTreeOfItems{
7158
+ getTreeOfItems(__PARAMS__){
6750
7159
  ${getTreeBranches(treeDepth, false)}
6751
7160
  }
6752
7161
  }
@@ -6756,7 +7165,7 @@ var apolloConfig = (treeDepth) => ({
6756
7165
  queryName: 'getTreeOfItems',
6757
7166
  queryBody: `
6758
7167
  {
6759
- getTreeOfItems{
7168
+ getTreeOfItems(__PARAMS__){
6760
7169
  ${getTreeBranches(treeDepth)}
6761
7170
  }
6762
7171
  }
@@ -6985,6 +7394,22 @@ var apolloConfig = (treeDepth) => ({
6985
7394
  }
6986
7395
  }`,
6987
7396
  },
7397
+ getNodeChildren: {
7398
+ queryName: 'getNodeChildren',
7399
+ queryBody: `{
7400
+ getNodeChildren(__PARAMS__) {
7401
+ items {
7402
+ id
7403
+ label
7404
+ icon
7405
+ img
7406
+ document_type
7407
+ document_classification
7408
+ }
7409
+ totalCount
7410
+ }
7411
+ }`
7412
+ },
6988
7413
  getNode: {
6989
7414
  queryName: 'getNode',
6990
7415
  queryBody: `{
@@ -6995,6 +7420,18 @@ var apolloConfig = (treeDepth) => ({
6995
7420
  title
6996
7421
  subTitle
6997
7422
  image
7423
+ prev {
7424
+ id
7425
+ label
7426
+ }
7427
+ next {
7428
+ id
7429
+ label
7430
+ }
7431
+ lastAl {
7432
+ id
7433
+ label
7434
+ }
6998
7435
  digitalObjects {
6999
7436
  label
7000
7437
  type
@@ -7401,6 +7838,7 @@ const COMPONENTS = [
7401
7838
  PdfViewerComponent,
7402
7839
  SchedaDropdownComponent,
7403
7840
  SmartBreadcrumbsComponent,
7841
+ ExtendedTreeComponent,
7404
7842
  ];
7405
7843
  class N7BoilerplateAriannaModule {
7406
7844
  constructor(initStatus, config) {
@@ -7428,7 +7866,8 @@ N7BoilerplateAriannaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
7428
7866
  ChartTippyComponent,
7429
7867
  PdfViewerComponent,
7430
7868
  SchedaDropdownComponent,
7431
- SmartBreadcrumbsComponent], imports: [CommonModule,
7869
+ SmartBreadcrumbsComponent,
7870
+ ExtendedTreeComponent], imports: [CommonModule,
7432
7871
  RouterModule,
7433
7872
  DvComponentsLibModule,
7434
7873
  N7BoilerplateCommonModule,
@@ -7445,7 +7884,8 @@ N7BoilerplateAriannaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
7445
7884
  ChartTippyComponent,
7446
7885
  PdfViewerComponent,
7447
7886
  SchedaDropdownComponent,
7448
- SmartBreadcrumbsComponent] });
7887
+ SmartBreadcrumbsComponent,
7888
+ ExtendedTreeComponent] });
7449
7889
  N7BoilerplateAriannaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: N7BoilerplateAriannaModule, imports: [[
7450
7890
  CommonModule,
7451
7891
  RouterModule,
@@ -7478,5 +7918,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
7478
7918
  * Generated bundle index. Do not edit.
7479
7919
  */
7480
7920
 
7481
- 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 };
7921
+ 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 };
7482
7922
  //# sourceMappingURL=net7-boilerplate-arianna.mjs.map