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 && searchUtils.refineStatus != errorCodes.DONE && results.length > 0"
112
       class="uk-margin-top uk-text-meta">
113
    <span *ngIf="searchUtils.refineStatus == errorCodes.NONE">No filters available</span>
114
    <span *ngIf="searchUtils.refineStatus != errorCodes.NONE" class="uk-text-warning">Filters temporarily unavailable. Please try again later.</span>
115
  </div>
116
  <ul *ngIf="!showUnknownFilters"
117
      [class]="'uk-list uk-list-divider' + (selectedRangeFilters == 0 && selectedFilters == 0 ? ' uk-margin-small-top' : '')">
118
    <!--    searchUtils.refineStatus == errorCodes.DONE &&-->
119
    <ng-container *ngIf="filters.length > 0 && filters[0].values.length >0 && filters[0].filterId == 'resultbestaccessright'">
120
      <li>
121
        <search-filter [filterValuesNum]="filterValuesNum" [showMoreInline]="showMoreFilterValuesInline"
122
                       [isDisabled]="disableForms || disableRefineForms"
123
                       [filter]="filters[0]" [showResultCount]=showResultCount
124
                       (onFilterChange)="filterChanged($event)" [quickFilter]="quickFilter"
125
                       [actionRoute]="true"></search-filter>
126
      </li>
127
    </ng-container>
128
    <li *ngIf="resultTypes && (filters.length > 0)">
129
      <quick-selections [resultTypes]="resultTypes" (typeChange)="queryChanged($event)"
130
                        [isDisabled]="disableForms || disableRefineForms" [vertical]="true"
131
                        [properties]="properties" [actionRoute]="true">
132
      </quick-selections>
133
    </li>
134
    <ng-container *ngFor="let filter of rangeFilters">
135
      <li>
136
        <range-filter [isDisabled]="disableForms || disableRefineForms" [filter]="filter"
137
                      (onFilterChange)="filterChanged($event)" [actionRoute]="true"></range-filter>
138
      </li>
139
    </ng-container>
140
    <ng-container *ngFor="let filter of filters ">
141
      <li *ngIf="filter.values && filter.values.length > 0 && filter.filterId != 'resultbestaccessright'">
142
        <search-filter [filterValuesNum]="filterValuesNum" [showMoreInline]="showMoreFilterValuesInline"
143
                       [isDisabled]="disableForms || disableRefineForms"
144
                       [filter]="filter" [showResultCount]=showResultCount
145
                       (onFilterChange)="filterChanged($event)" [actionRoute]="true"></search-filter>
146
      </li>
147
    </ng-container>
148
  </ul>
149
  </div>
150
</ng-template>
151
<div *ngIf="!includeOnlyResultsAndFilter" [class]="usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') ?
152
     (stickyForm?'':' uk-position-relative ') :
153
    (+ (stickyForm?'':' uk-section') +' uk-padding-remove-bottom  uk-padding-remove-top ' +
154
    ((usedBy == 'deposit' || usedBy == 'orcid') ? ' uk-padding-remove-top ' : ' '))"
155
     [attr.uk-sticky]="(stickyForm?'{animation:false;offset:100;top:90;cls-active:uk-active uk-sticky-below;cls-inactive:uk-sticky '+
156
     (usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') ?
157
    '  uk-position-relative ' :(' uk-section '  ))+'}':null)">
158
  <div style="box-sizing: border-box;  "
159
       [class]="' uk-background-norepeat  uk-background-bottom-center   uk-padding-remove-bottom  uk-flex uk-flex-middle uk-background-fixed '+searchFormClass
160
              + (usedBy != 'deposit' && usedBy != 'orcid' && (!customFilter || customFilter.queryFieldName != 'communityId') && !dashboard ?
161
              ' image-front-topbar searchFormMinHeight uk-padding-remove-bottom uk-section' : '')
162
              +(simpleView?'':' advancedSearchFormBackground ')">
163
    <div class="uk-width-1-1">
164
      <breadcrumbs *ngIf="showBreadcrumb && entityType!='community'"
165
                   addClass=" uk-margin-large-left uk-margin-remove-bottom uk-margin-small-top"
166
                   [breadcrumbs]="breadcrumbs"></breadcrumbs>
167
      <div class="uk-position-relative">
168
        <div [class]="'uk-container '+(customFilter && customFilter.queryFieldName ==
169
           'communityId'?'  uk-margin-large-bottom ':'uk-margin-top')+
170
           (entityType === 'community' ||entityType === 'stakeholder'?' uk-position-relative':'')" id="searchForm">
171
          <advanced-search-form
172
            [entityType]="entityType"
173
            [fieldIds]="fieldIds"
174
            [fieldIdsMap]="fieldIdsMap"
175
            [selectedFields]="selectedFields"
176
            (queryChange)="queryChanged($event)"
177
            [isDisabled]="disableForms || disableRefineForms"
178
            [simpleSearchLink]="simpleSearchLink"
179
            [advancedSearchLink]="advancedSearchLink"
180
            [advancedSearchLinkParameters]
181
                  ="this.routerHelper.createQueryParams(this.parameterNames, this.parameterValues)"
182
             [simpleView]="simpleView" [formPlaceholderText]="formPlaceholderText"
183
            [resultTypes]="resultTypes" [quickFilter]="quickFilter" [entitiesSelection]="entitiesSelection"
184
            [showSwitchSearchLink]="showSwitchSearchLink" [customFilter]="customFilter"
185
          >
186
          </advanced-search-form>
187
          <div *ngIf="entityType === 'community' || entityType === 'stakeholder' " class="uk-position-center-right uk-visible@m">
188
            <img src="assets/common-assets/common/search.svg" class="uk-align-center" width="141" height="171">
189
          </div>
190
        </div>
191
      </div>
192
    </div>
193
  </div>
194
</div>
195
<schema2jsonld *ngIf="url" [URL]="url" type="search" [name]=pageTitleWithFilters
196
               [searchAction]=false [description]="metaDescription" ></schema2jsonld>
197

    
198

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

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

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

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

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

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

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

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

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

    
409
                  </div>
410

    
411
            <helper *ngIf="pageContents && pageContents['bottom'] && pageContents['bottom'].length > 0"
412
                  [texts]="pageContents['bottom']"></helper>
413
        </div>
414
      </div>
415
    </div>
416
  </div>
417
</div>
418
<div *ngIf="properties.isDashboard" id="filters_switcher_toggle" href="#style_switcher" uk-toggle=""   >
419
  <i class="  uk-text-muted">
420
    <svg style="margin-top: 8px;" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"
421
         viewBox="0 0 20 20"
422
         fill="white" width="24px" height="16px">
423
      <g>
424
        <path d="M0,0h24 M24,24H0" fill="none"/>
425
        <path
426
          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"/>
427
        <path d="M0,0h24v24H0V0z" fill="none"/>
428
      </g>
429
    </svg>
430
  </i>
431
</div>
432
<div *ngIf="properties.isDashboard" id="style_switcher"  class=" uk-offcanvas filters_switcher"
433
     uk-offcanvas="flip:true" mode="slide" overlay="" style="z-index:982;" >
434

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

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