Project

General

Profile

1
<ng-template #selected_filters_pills>
2
  <div class="uk-grid uk-grid-small uk-text-small" uk-grid>
3
    <ng-container *ngIf="customFilter && ((customFilterEnabled &&
4
    refineFields.indexOf(customFilter.queryFieldName) ==
5
    -1) ||customFilter.isHiddenFilter)">
6
     <span class="">
7
        <span class="selectedFilterLabel customFilterLabel">
8
            <span class="">{{customFilter.valueName}}</span>
9
        </span>
10
      </span>
11
    </ng-container>
12
    <ng-container *ngIf=" resultTypes && resultTypes.countSelectedValues > 0">
13
      <ng-container *ngFor="let type of resultTypes.values; let i = index;  let end = last; ">
14
        <ng-container *ngIf="type.selected">
15
         <span [title]="'Remove '+ type.name" (click)="removeResultType(type.id) "
16
               [class]="((disableForms || disableRefineForms) ? 'uk-disabled' : 'clickable')">
17
            <span class="selectedFilterLabel ">
18
              <a class="uk-link-text">
19
                <span aria-hidden="true">
20
                  <span class="uk-icon">
21
                    <svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close"
22
                         ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6" d="M16,16 L4,4"></path><path
23
                      fill="none" stroke="#000" stroke-width="1.6" d="M16,4 L4,16"></path></svg>
24
                  </span>
25
                </span>
26
                <span class="uk-margin-small-left">{{type.name}}</span>
27
              </a>
28
            </span>
29
          </span>
30
        </ng-container>
31
      </ng-container>
32
    </ng-container>
33
    <ng-container *ngIf="selectedRangeFilters > 0">
34
      <ng-container *ngFor="let filter of rangeFilters ">
35
        <ng-container *ngIf="filter.selectedFromAndToValues">
36
                        <span [title]="'Remove '+ filter.selectedFromAndToValues" (click)="removeRangeFilter(filter) "
37
                              [class]="((disableForms || disableRefineForms) ? 'uk-disabled' : 'clickable') ">
38
                          <span class="selectedFilterLabel ">
39
                            <a class="uk-link-text">
40
                              <span aria-hidden="true">
41
                                <span class="uk-icon">
42
                                  <svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
43
                                       icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6"
44
                                                                      d="M16,16 L4,4"></path><path fill="none"
45
                                                                                                   stroke="#000"
46
                                                                                                   stroke-width="1.6"
47
                                                                                                   d="M16,4 L4,16"></path></svg>
48
                                </span>
49
                              </span>
50
                              <span class="uk-margin-small-left">{{filter.selectedFromAndToValues}}</span>
51
                            </a>
52
                          </span>
53
                        </span>
54
        </ng-container>
55
      </ng-container>
56
    </ng-container>
57
    <ng-container *ngFor="let filter of filters ">
58
      <ng-container *ngIf="filter.countSelectedValues > 0">
59
        <ng-container *ngFor="let value of getSelectedValues(filter); let i = index;  let end = last; ">
60
              <span *ngIf="!customFilter || (customFilter.isHiddenFilter && customFilter.valueId != value.id)"
61
                    [title]="'Remove '+value.name"
62
                    (click)="removeFilter(value, filter) "
63
              [class]="((disableForms || disableRefineForms) ? 'uk-disabled' : 'clickable') + '  '">
64
                        <!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span -->
65
                        <span class="selectedFilterLabel ">
66
                          <a class="uk-link-text">
67
                            <span aria-hidden="true">
68
                              <span class="uk-icon">
69
                                <svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
70
                                     icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6"
71
                                                                    d="M16,16 L4,4"></path><path fill="none"
72
                                                                                                 stroke="#000"
73
                                                                                                 stroke-width="1.6"
74
                                                                                                 d="M16,4 L4,16"></path></svg>
75
                              </span>
76
                            </span>
77
                            <span class="uk-margin-small-left"
78
                                  [innerHtml]="(value.name.length > 34)?value.name.substring(0,34)+'...':value.name"></span>
79
                          </a>
80
                        </span>
81
                      </span>
82
          </ng-container>
83
      </ng-container>
84
    </ng-container>
85
  </div>
86
</ng-template>
87
<ng-template #filters_column>
88
  <div [class.filterLoading]="(disableForms || disableRefineForms)">
89
  <div class="uk-width-1-1 uk-margin-top" >
90
    <div class="uk-grid uk-flex uk-flex-bottom">
91
<!--      *ngIf="(selectedRangeFilters+selectedFilters + selectedTypesNum  > 0)
92
|| (filters.length > 0 && (results.length > 0 || disableForms))"-->
93
      <h6 class="uk-text-bold">
94
        Filters
95
      </h6>
96
      <a *ngIf="(selectedRangeFilters+selectedFilters + selectedTypesNum)>1" (click)="clearFilters()"
97
         [class]="((disableForms || disableRefineForms)?'uk-disabled uk-link-muted':'')+'  portal-link ' + 'uk-width-1-2'">
98
        Clear All
99
      </a>
100
    </div>
101
    <div *ngIf="selectedRangeFilters+selectedFilters + selectedTypesNum  > 0 || (customFilter && (customFilter.selected
102
     == true || customFilter.isHiddenFilter))"
103
         class="uk-margin-small-top  uk-margin-medium-bottom">
104
      <ng-container *ngTemplateOutlet="selected_filters_pills; context: {}"></ng-container>
105
    </div>
106
  </div>
107
  <div *ngIf="searchUtils.refineStatus == errorCodes.LOADING && existingFiltersWithValues === 0"
108
       class="'uk-animation-fade uk-margin-top  uk-width-1-1" role="alert">
109
    <span class="loading-gif  uk-align-center" ></span>
110
  </div>
111
  <div *ngIf="searchUtils.refineStatus != errorCodes.LOADING && existingFiltersWithValues === 0 && results.length > 0" class="uk-margin-top">
112
    <span class="uk-text-meta">No filters available</span>
113
  </div>
114
  <ul *ngIf="!showUnknownFilters"
115
      [class]="'uk-list uk-list-divider' + (selectedRangeFilters == 0 && selectedFilters == 0 ? ' uk-margin-small-top' : '')">
116
    <!--    searchUtils.refineStatus == errorCodes.DONE &&-->
117
    <ng-container *ngIf="filters.length > 0 && filters[0].values.length >0 && filters[0].filterId == 'resultbestaccessright'">
118
      <li>
119
        <search-filter [filterValuesNum]="filterValuesNum" [showMoreInline]="showMoreFilterValuesInline"
120
                       [isDisabled]="disableForms || disableRefineForms"
121
                       [filter]="filters[0]" [showResultCount]=showResultCount
122
                       (onFilterChange)="filterChanged($event)" [quickFilter]="quickFilter"
123
                       [actionRoute]="true"></search-filter>
124
      </li>
125
    </ng-container>
126
    <li *ngIf="resultTypes && (filters.length > 0)">
127
      <quick-selections [resultTypes]="resultTypes" (typeChange)="queryChanged($event)"
128
                        [isDisabled]="disableForms || disableRefineForms" [vertical]="true"
129
                        [properties]="properties" [actionRoute]="true">
130
      </quick-selections>
131
    </li>
132
    <ng-container *ngFor="let filter of rangeFilters">
133
      <li>
134
        <range-filter [isDisabled]="disableForms || disableRefineForms" [filter]="filter"
135
                      (onFilterChange)="filterChanged($event)" [actionRoute]="true"></range-filter>
136
      </li>
137
    </ng-container>
138
    <ng-container *ngFor="let filter of filters ">
139
      <li *ngIf="filter.values && filter.values.length > 0 && filter.filterId != 'resultbestaccessright'">
140
        <search-filter [filterValuesNum]="filterValuesNum" [showMoreInline]="showMoreFilterValuesInline"
141
                       [isDisabled]="disableForms || disableRefineForms"
142
                       [filter]="filter" [showResultCount]=showResultCount
143
                       (onFilterChange)="filterChanged($event)" [actionRoute]="true"></search-filter>
144
      </li>
145
    </ng-container>
146
  </ul>
147
  </div>
148
</ng-template>
149
<div *ngIf="!includeOnlyResultsAndFilter" [class]="usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') ?
150
     (stickyForm?'':' uk-position-relative ') :
151
    (+ (stickyForm?'':' uk-section') +' uk-padding-remove-bottom  uk-padding-remove-top ' +
152
    ((usedBy == 'deposit' || usedBy == 'orcid') ? ' uk-padding-remove-top ' : ' '))"
153
     [attr.uk-sticky]="(stickyForm?'{animation:false;offset:100;top:90;cls-active:uk-active uk-sticky-below;cls-inactive:uk-sticky '+
154
     (usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') ?
155
    '  uk-position-relative ' :(' uk-section '  ))+'}':null)">
156
  <div style="box-sizing: border-box;  "
157
       [class]="' uk-background-norepeat  uk-background-bottom-center   uk-padding-remove-bottom  uk-flex uk-flex-middle uk-background-fixed '+searchFormClass
158
              + (usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') && !dashboard ?
159
              ' image-front-topbar searchFormMinHeight uk-padding-remove-bottom uk-section' : '')
160
              +(simpleView?'':' advancedSearchFormBackground ')">
161
    <div class="uk-width-1-1">
162
      <breadcrumbs *ngIf="showBreadcrumb && entityType!='community'"
163
                   addClass=" uk-margin-large-left uk-margin-remove-bottom uk-margin-small-top"
164
                   [breadcrumbs]="breadcrumbs"></breadcrumbs>
165
      <div class="uk-position-relative">
166
        <div [class]="'uk-container '+(customFilter && customFilter.queryFieldName ==
167
           'communityId'?'  uk-margin-large-bottom ':'uk-margin-top')+
168
           (entityType === 'community' ||entityType === 'stakeholder'?' uk-position-relative':'')" id="searchForm">
169
          <advanced-search-form
170
            [entityType]="entityType"
171
            [fieldIds]="fieldIds"
172
            [fieldIdsMap]="fieldIdsMap"
173
            [selectedFields]="selectedFields"
174
            (queryChange)="queryChanged()"
175
            [isDisabled]="disableForms || disableRefineForms"
176
            [simpleSearchLink]="simpleSearchLink"
177
            [advancedSearchLink]="advancedSearchLink"
178
            [advancedSearchLinkParameters]
179
                  ="this.routerHelper.createQueryParams(this.parameterNames, this.parameterValues)"
180
            [pageTitle]=pageTitle [simpleView]="simpleView" [formPlaceholderText]="formPlaceholderText"
181
            [resultTypes]="resultTypes" [quickFilter]="quickFilter" [entitiesSelection]="entitiesSelection"
182
            [showSwitchSearchLink]="showSwitchSearchLink" [customFilter]="customFilter"
183
          >
184
          </advanced-search-form>
185
          <div *ngIf="entityType === 'community' || entityType === 'stakeholder' " class="uk-position-center-right uk-visible@m">
186
            <img src="assets/common-assets/common/search.svg" class="uk-align-center" width="141" height="171">
187
          </div>
188
        </div>
189
      </div>
190
    </div>
191
  </div>
192
</div>
193
<schema2jsonld *ngIf="!includeOnlyResultsAndFilter && url" [URL]="url" type="search" [name]=pageTitle
194
               [searchAction]=false [description]="metaDescription" ></schema2jsonld>
195

    
196

    
197
<div id="tm-main" class="   tm-middle" [class.uk-margin-top]="stickyForm">
198
  <div uk-grid>
199
    <div class="tm-main uk-width-1-1@s uk-width-1-1@m  uk-width-1-1@l uk-row-first ">
200
      <!--      <breadcrumbs *ngIf="showBreadcrumb && entityType!='community'"-->
201
      <!--                   addClass="uk-margin-large-left uk-margin-remove-bottom uk-margin-small-top" [breadcrumbs]="breadcrumbs"></breadcrumbs>-->
202
      <div class="uk-container uk-container-large">
203
        <div>
204
          <breadcrumbs *ngIf="showBreadcrumb && entityType=='community'"
205
                       addClass=" " [breadcrumbs]="breadcrumbs"></breadcrumbs>
206
          <helper *ngIf="pageContents && pageContents['top'] && pageContents['top'].length > 0"
207
                  [texts]="pageContents['top']"></helper>
208
          <div [class]="(showRefine && !properties.isDashboard)? 'uk-width-4-5@m  uk-width-4-5@l  uk-width-1-1@s' :'uk-width-1-1'">
209
            <div *ngIf="showRefine && !dashboard" class="uk-offcanvas-content uk-hidden@m  uk-margin-top">
210

    
211
              <a href="#offcanvas-usage" uk-toggle>
212
                <span class="uk-icon uk-margin-small-right uk-margin-small-left">
213
                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"
214
                       data-svg="settings">
215
                    <ellipse fill="none" stroke="#000" cx="6.11" cy="3.55" rx="2.11" ry="2.15"></ellipse>
216
                    <ellipse fill="none" stroke="#000" cx="6.11" cy="15.55" rx="2.11" ry="2.15"></ellipse>
217
                    <circle fill="none" stroke="#000" cx="13.15" cy="9.55" r="2.15"></circle>
218
                    <rect x="1" y="3" width="3" height="1"></rect>
219
                    <rect x="10" y="3" width="8" height="1"></rect>
220
                    <rect x="1" y="9" width="8" height="1"></rect>
221
                    <rect x="15" y="9" width="3" height="1"></rect>
222
                    <rect x="1" y="15" width="3" height="1"></rect>
223
                    <rect x="10" y="15" width="8" height="1"></rect>
224
                  </svg>
225
                </span>
226
                <span>Filters <span
227
                    *ngIf="(selectedRangeFilters+selectedFilters) > 0">({{(selectedRangeFilters + selectedFilters)}})</span></span>
228
                <!--                <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1">-->
229
                <!--                  <rect x="6" y="4" width="12" height="1"></rect><rect x="6" y="9" width="12" height="1"></rect>-->
230
                <!--                  <rect x="6" y="14" width="12" height="1"></rect>-->
231
                <!--                  <rect x="2" y="4" width="2" height="1"></rect>-->
232
                <!--                  <rect x="2" y="9" width="2" height="1"></rect>-->
233
                <!--                  <rect x="2" y="14" width="2" height="1"></rect>-->
234
                <!--                </svg>-->
235
              </a>
236

    
237
              <div #offcanvas_element id="offcanvas-usage" uk-offcanvas overlay style="z-index:10000;">
238
                <div class="uk-offcanvas-bar offcanvas-white">
239
                  <button class="uk-offcanvas-close" type="button" uk-close></button>
240
                  <div class="uk-width-1-1">
241
                    <ng-container *ngTemplateOutlet="filters_column; context: {}"></ng-container>
242
                  </div>
243
                </div>
244
              </div>
245

    
246
            </div>
247
          </div>
248
          <div *ngIf="includeOnlyResultsAndFilter  "
249
               class="uk-margin-medium-top uk-margin-medium-bottom">
250
            <a *ngIf="showSwitchSearchLink && advancedSearchLink" routerLinkActive="router-link-active"
251
               [routerLink]="advancedSearchLink" style="z-index:1;"
252
               [queryParams]="this.routerHelper.createQueryParams(this.parameterNames, this.parameterValues)"
253
               [class]="((disableForms || disableRefineForms)?'  uk-disabled uk-link-muted  ':'') +' portal-link   uk-float-right '">Advanced
254
              search
255
            </a>
256
            <!--  <quick-selections  [resultTypes]="resultTypes"
257
                                (typeChange)="queryChanged()"
258
                                [isDisabled]="disableForms"
259
                                [quickFilter]="quickFilter" [QFselected]="(quickFilter)?quickFilter.selected:null"
260
                                [properties]="properties">
261
              </quick-selections>-->
262

    
263
          </div>
264
          <div class="uk-grid helper-grid uk-padding-small uk-padding-remove-vertical uk-margin-large-bottom">
265
<!--            <div *ngIf="searchUtils.status == errorCodes.LOADING && filters.length == 0;-->
266
<!--                        else elseGridBlock"-->
267
<!--                 class="'uk-animation-fade uk-margin-top  uk-width-1-1" role="alert">-->
268
<!--              <span class="loading-gif  uk-align-center" ></span>-->
269
<!--            </div>-->
270
<!--            <div>-->
271
<!--              <ng-template #elseGridBlock>-->
272
                <div *ngIf="showRefine && !properties.isDashboard
273
                            && (results.length > 0
274
                              || (searchUtils.refineStatus == errorCodes.LOADING && searchUtils.status != errorCodes.LOADING)
275
                              || (!hideFilters &&
276
                                (existingFiltersWithValues > 0 || (selectedRangeFilters + selectedFilters + selectedTypesNum) > 0)
277
                              )
278
                            )"
279
                     class="uk-width-1-4@m search-filters uk-visible@m">
280
                  <ng-container *ngTemplateOutlet="filters_column; context: {}"></ng-container>
281
                </div>
282
                <div class="uk-width-expand@m uk-with-1-1@s">
283
                  <div *ngIf="properties.isDashboard"
284
                    class="uk-width-1-1 uk-margin-top  uk-margin-medium-bottom ">
285
                    <div class="uk-flex uk-flex-bottom">
286
                      <span class="uk-margin-small-right">Filters: </span>
287
                      <ng-container *ngTemplateOutlet="selected_filters_pills; context: {}"></ng-container>
288
                    </div>
289
                  </div>
290
                  <div *ngIf="customFilter && !customFilter.isHiddenFilter &&
291
                  customFilter.selected == false && customFilter.promptToAddFilter"
292
                       class="uk-alert uk-animation-slide-top-small">
293
                    Do you want to see results only for {{customFilter.valueName}}? <a
294
                    (click)="addCustomFilter();">Click here</a>.
295
                  </div>
296
                  <div *ngIf="openaireLink && (searchUtils.totalResults > 0 || !loadPaging )"
297
                       class="uk-alert uk-text-center uk-margin-small-top ">
298
                    <span *ngIf="customFilter">The following results are related to <span class="portal-color"
299
                    >{{customFilter.valueName}}</span>.</span>
300
                      Are you interested to view more results? Visit
301
                    <a
302
                        class="uk-margin-top   uk-link"
303
                        [href]="openaireLink+this.routerHelper.createQueryParamsString(this.parameterNames, this.parameterValues)"
304
                        target="_blank"> OpenAIRE - Explore</a>.
305
                  </div>
306
                    <div class="uk-align-center uk-margin-remove-bottom">
307
                      <div
308
                        *ngIf="(results && searchUtils.totalResults > 0) || (!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING)"
309
                        class="uk-grid uk-margin-top uk-margin-bottom">
310
                        <div class="uk-width-expand@m uk-grid uk-grid-medium uk-margin-small-bottom">
311
                          <search-results-per-page [size]="searchUtils.size"
312
                                                   (sizeChange)="sizeChanged($event)"
313
                                                   [isDisabled]="disableForms || disableRefineForms">
314
                          </search-results-per-page>
315
                          <search-sorting *ngIf="sort"
316
                                          [entityType]="entityType" [sortBy]="searchUtils.sortBy"
317
                                          (sortByChange)="sortByChanged($event)"
318
                                          [isDisabled]="disableForms || disableRefineForms">
319
                          </search-sorting>
320
                        </div>
321
                        <div *ngIf="showDownload" class="uk-width-auto@m uk-margin-small-bottom">
322
                          <search-download
323
                              *ngIf="( entityType !='community' && entityType != 'stakeholder') && usedBy == 'search'"
324
                              [isDisabled]="disableForms || disableRefineForms"
325
                              [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults"
326
                              [piwikSiteId]="piwikSiteId">
327
                          </search-download>
328

    
329
                        </div>
330
                      </div>
331
                      <search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults"
332
                                     [(searchUtils)]="searchUtils" [(results)]="results" [(baseUrl)]="searchUtils.baseUrl"
333
                                     [(parameterNames)]="parameterNames" [(parameterValues)]="parameterValues"
334
                                     [isDisabled]="disableForms || disableRefineForms">
335
                      </search-paging>
336
                    </div>
337
                    <div *ngIf="(searchUtils.page <= pagingLimit) || (searchUtils.totalResults <= searchUtils.size*pagingLimit)" class="uk-margin-large-bottom">
338
                      <search-result *ngIf="( entityType !='community' && entityType != 'stakeholder') && usedBy == 'search'"
339
                                     [results]="results"
340
                                     [status]=searchUtils.status
341
                                     [type]="entityType"
342
                                     [showLoading]="true" [properties]=properties [showImpactFactors]="(customFilter &&
343
                                      customFilter.queryFieldName == 'communityId' && customFilter.valueId == 'elixir-gr')">
344
                      </search-result>
345
                      <deposit-result *ngIf="usedBy == 'deposit'"
346
                                      [results]="results"
347
                                      [status]="searchUtils.status"
348
                                      [type]="entityType"
349
                                      [zenodoInformation]="zenodoInformation"
350
                                      [properties]=properties>
351
                      </deposit-result>
352
                      <orcid-result *ngIf="usedBy == 'orcid'"
353
                                      [results]="results"
354
                                      [status]="searchUtils.status"
355
                                      [type]="entityType"
356
                                      [properties]=properties>
357
                      </orcid-result>
358
                      <portal-search-result
359
                          *ngIf="(entityType == 'community' || entityType == 'stakeholder') && usedBy == 'search'"
360
                          [results]="results"
361
                          [status]="searchUtils.status"
362
                          [type]="entityType"
363
                          [showType]="false"
364
                          [showLoading]="true" [properties]=properties>
365
                      </portal-search-result>
366
                    </div>
367

    
368
                    <div [class]="searchUtils.page > pagingLimit ? 'search-results' : ''"
369
                         *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > searchUtils.size*pagingLimit)">
370
                      <p class="uk-alert-warning" uk-alert>For more results please try a new, more specific query</p>
371
                    </div>
372

    
373
                    <div class="uk-align-center uk-margin-remove-bottom">
374
                      <!--                <div *ngIf="(results && searchUtils.totalResults > 0) || (!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING)"-->
375
                      <!--                      class="uk-grid uk-margin-top uk-margin-bottom">-->
376
                      <!--                  <search-results-per-page class="uk-width-1-2@m uk-width-1-1" [(size)]="searchUtils.size" (sizeChange)="sizeChanged($event)"></search-results-per-page>-->
377
                      <!--                  <search-sorting class="uk-width-1-2@m uk-width-1-1" *ngIf="sort" [(sortBy)]="searchUtils.sortBy" (sortByChange)="sortByChanged($event)"></search-sorting>-->
378
                      <!--                </div>-->
379
                      <search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults"
380
                                     [(searchUtils)]="searchUtils" [(results)]="results" [(baseUrl)]="searchUtils.baseUrl"
381
                                     [(parameterNames)]="parameterNames" [(parameterValues)]="parameterValues"
382
                                     [isDisabled]="disableForms || disableRefineForms">
383
                      </search-paging>
384
                    </div>
385
                    <div  *ngIf=" showIndexInfo && searchUtils.status !== errorCodes.LOADING"
386
                          class="uk-margin-small-top uk-grid uk-child-width-1-2">
387
                      <!-- Last Index Info-->
388
                      <div class="">
389
                        <img src="assets/common-assets/graph.svg" style="opacity: 0.4">
390
                        <span class="uk-margin-small-left uk-text-baseline uk-text-muted">Powered by <a href="https://graph.openaire.eu" class="graph-color">OpenAIRE Research Graph</a></span>
391
                      </div>
392
                      <div class="uk-text-right">
393
                        <span *ngIf="indexUpdateDate" class="uk-text-baseline uk-text-muted">
394
                           <a *ngIf="properties.showLastIndexInformationLink"
395
                               class="uk-link"
396
                               [href]="properties.lastIndexInformationLink" target="_blank">
397

    
398
                                  Last update
399
                                </a><span *ngIf="!(properties.showLastIndexInformationLink) ">
400
                                  Last update
401
                                </span>
402
                                  of records in OpenAIRE: {{indexUpdateDate | date: 'MMM dd, yyyy'}}
403
                        </span>
404
                      </div>
405
                    </div>
406

    
407
                  </div>
408

    
409
            <helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
410
                  [texts]="pageContents['bottom']"></helper>
411
        </div>
412
      </div>
413
    </div>
414
  </div>
415
</div>
416
<div *ngIf="properties.isDashboard" id="filters_switcher_toggle" href="#style_switcher" uk-toggle=""   >
417
  <i class="  uk-text-muted">
418
    <svg style="margin-top: 8px;" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"
419
         viewBox="0 0 20 20"
420
         fill="white" width="24px" height="16px">
421
      <g>
422
        <path d="M0,0h24 M24,24H0" fill="none"/>
423
        <path
424
          d="M4.25,5.61C6.57,8.59,10,13,10,13v5c0,1.1,0.9,2,2,2h0c1.1,0,2-0.9,2-2v-5c0,0,3.43-4.41,5.75-7.39 C20.26,4.95,19.79,4,18.95,4H5.04C4.21,4,3.74,4.95,4.25,5.61z"/>
425
        <path d="M0,0h24v24H0V0z" fill="none"/>
426
      </g>
427
    </svg>
428
  </i>
429
</div>
430
<div *ngIf="properties.isDashboard" id="style_switcher"  class=" uk-offcanvas filters_switcher"
431
     uk-offcanvas="flip:true" mode="slide" overlay="" style="z-index:982;" >
432

    
433
  <div class="uk-offcanvas-bar offcanvas-white">
434
    <div class="uk-float-right" >
435
      <button class="uk-offcanvas-close uk-close uk-icon" type="button" uk-close=""></button>
436

    
437
    </div>
438
    <div class="uk-padding uk-padding-remove-top uk-overflow-auto" style="height:calc(100vh - 100px);">
439
      <ng-container *ngTemplateOutlet="filters_column; context: {}"></ng-container>
440
    </div>
441
  </div>
442
</div>
443
</div>
444
<modal-alert #removeCustomFilter (alertOutput)="closeCustomFilterModal()"></modal-alert>
(13-13/44)