78735 Resultados disponibles

Filtrar:

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> esResponse.getAggregationResult(specificationKey + "_with_organismos")  [in template "34352066712900#33336#362186" at line 73, column 33]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local aggregationResult = esResponse...  [in template "34352066712900#33336#362186" in function "getAggregationResult" at line 73, column 5]
----
1<#-- Variables --> 
2<#assign specificationName          = 'ctn' /> 
3<#assign paramNameSpecificationName = cpSpecificationOptionsSearchFacetDisplayContext.getParameterName() /> 
4<#assign isDebug                    = false /> 
5<#assign showAllSpecificationsName  = false /> 
6<#assign staticHost                 = getCXConfig("ecom-static-files") /> 
7 
8<#-- ========================= --> 
9<#-- Functions freemaker       --> 
10<#-- ========================= --> 
11<#function getCXConfig clientExtensionName field="webApiUrl"> 
12    <#if !clientExtensionName?has_content><#return "" /></#if> 
13    <#local encoded = urlCodec.encodeURL(clientExtensionName) /> 
14    <#local items   = restClient.get("/c/customconfigs/?fields=clientExtensionConfig&filter=clientExtensionName eq '" + encoded + "'").items![] /> 
15    <#return items?has_content?then(items[0].clientExtensionConfig?eval[field]!"", "") /> 
16</#function> 
17 
18<#function getTaxonomyVocabularyId vocabularyName> 
19    <#local response = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=contains(name,'" + vocabularyName + "')&pageSize=1")!{} /> 
20    <#local items    = response.items![] /> 
21    <#return items?has_content?then(items[0].id, "") /> 
22</#function> 
23 
24<#function getTaxonomyCategoryMap vocabularyId pageSize=200> 
25    <#local response   = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + vocabularyId + "/taxonomy-categories?pageSize=" + pageSize)!{} /> 
26    <#local categoryMap = {} /> 
27    <#list response.items![] as cat> 
28        <#local categoryMap = categoryMap + {vocabularyId + "-" + cat.id: cat.name} /> 
29    </#list> 
30    <#return categoryMap /> 
31</#function> 
32 
33<#function getSpecOrganismosMap organismoMap organismoVocabId aggResult> 
34    <#local specMap     = {} /> 
35    <#local vocabPrefix = organismoVocabId + "-" /> 
36    <#if !aggResult?has_content || !organismoMap?has_content><#return specMap /></#if> 
37    <#list aggResult.getBuckets() as specBucket> 
38        <#local specKey      = specBucket.getKey() /> 
39        <#local organismoAgg = specBucket.getChildAggregationResult("organismos") /> 
40        <#local orgNames     = [] /> 
41        <#if organismoAgg?has_content> 
42            <#list organismoAgg.getBuckets() as orgBucket> 
43                <#if orgBucket.getKey()?starts_with(vocabPrefix)> 
44                    <#local orgName = organismoMap[orgBucket.getKey()]!"" /> 
45                    <#if orgName?has_content> 
46                        <#local orgNames = orgNames + [orgName] /> 
47                    </#if> 
48                </#if> 
49            </#list> 
50        </#if> 
51        <#if orgNames?has_content> 
52            <#local specMap = specMap + {specKey: orgNames} /> 
53            <#if specKey?contains(" - ")> 
54                <#local specMap = specMap + {specKey?keep_before(" - "): orgNames} /> 
55            </#if> 
56        </#if> 
57    </#list> 
58    <#return specMap /> 
59</#function> 
60 
61<#function getAggregationResult specificationKey> 
62    <#if !specificationKey?has_content><#return {} /></#if> 
63 
64    <#local sharedSearchResponse = renderRequest.getAttribute("LIFERAY_SHARED_PortletSharedSearchResponse") /> 
65    <#if !sharedSearchResponse?has_content><#return {} /></#if> 
66 
67    <#local searchResponse = sharedSearchResponse.get() /> 
68    <#if !searchResponse?has_content><#return {} /></#if> 
69 
70    <#local esResponse = searchResponse.getSearchResponse() /> 
71    <#if !esResponse?has_content><#return {} /></#if> 
72 
73    <#local aggregationResult = esResponse.getAggregationResult(specificationKey + "_with_organismos") /> 
74    <#if !aggregationResult?has_content><#return {} /></#if> 
75 
76    <#return aggregationResult /> 
77</#function> 
78 
79 
80 
81<#if paramNameSpecificationName == specificationName || showAllSpecificationsName> 
82 
83    <#-- ========================= --> 
84    <#-- Datos                     --> 
85    <#-- ========================= --> 
86	<#assign organismoVocabId  = getTaxonomyVocabularyId("organismos") /> 
87	<#assign organismoMap      = getTaxonomyCategoryMap(organismoVocabId) /> 
88	<#assign aggResult         = getAggregationResult(paramNameSpecificationName)! /> 
89	<#assign specOrganismosMap = getSpecOrganismosMap(organismoMap, organismoVocabId, aggResult) /> 
90 
91    <#-- ========================= --> 
92    <#-- Debug                     --> 
93    <#-- ========================= --> 
94    <#if isDebug> 
95        <div style="background:#f0f0f0;padding:8px;margin-bottom:8px;font-size:11px;border:1px solid #ccc;"> 
96            <p><strong>paramName:</strong> ${paramNameSpecificationName}</p> 
97            <p><strong>organismoMap size:</strong> ${organismoMap?size}</p> 
98            <p><strong>specOrganismosMap size:</strong> ${specOrganismosMap?size}</p> 
99            <#list specOrganismosMap?keys as spec> 
100                <p>${spec}: ${specOrganismosMap[spec]?join(", ")}</p> 
101            </#list> 
102        </div> 
103    </#if> 
104 
105    <#-- Variables --> 
106    <#assign facetId    = "facet-" + paramNameSpecificationName + "-" + renderResponse.getNamespace() /> 
107    <#assign facetClass = "facet-" + paramNameSpecificationName + "-combo-search-wrapper" /> 
108 
109    <#-- ========================= --> 
110    <#-- TOM SELECT framework      --> 
111    <#-- ========================= --> 
112    <@liferay_util["html-top"] outputKey="tom-select"> 
113        <link href="${staticHost}/scripts/vendor/tom-select/tom-select.css" rel="stylesheet"> 
114        <script src="${staticHost}/scripts/vendor/tom-select/tom-select.complete.min.js"></script> 
115    </@> 
116 
117    <#-- ========================= --> 
118    <#-- CSS                       --> 
119    <#-- ========================= --> 
120    <style> 
121        #${facetId} { 
122            --facet-font-family: Inter; 
123            --facet-font-size: 14px; 
124            --facet-font-weight: 400; 
125            --facet-line-height: 18px; 
126            --facet-letter-spacing: 0.5px; 
127            --facet-color: #66757f; 
128
129        #${facetId}-select { 
130            appearance: none; 
131            -webkit-appearance: none; 
132            visibility: hidden; 
133            position: absolute; 
134
135        #${facetId} .ts-wrapper { 
136            width: 100%; 
137            margin-bottom: 16px; 
138            opacity: 0; 
139            transition: opacity 0.1s ease; 
140
141        #${facetId} .ts-wrapper .ts-control { 
142            padding: 15.5px 16px; 
143            font-family: var(--facet-font-family); 
144            font-size: var(--facet-font-size); 
145            font-weight: var(--facet-font-weight); 
146            line-height: var(--facet-line-height); 
147            letter-spacing: var(--facet-letter-spacing); 
148            color: var(--facet-color); 
149            text-align: left; 
150            height: 55px; 
151            width: 100%; 
152            border-radius: 4px; 
153            border: none; 
154            background-color: #F5F5F5; 
155            background-image: url(/documents/d/global/ico-chevron-down-2); 
156            background-repeat: no-repeat; 
157            background-position: right 1rem center; 
158            background-size: 18px 10px; 
159            box-shadow: none; 
160            cursor: pointer; 
161            box-sizing: border-box; 
162
163        #${facetId} .ts-wrapper .ts-control:focus, 
164        #${facetId} .ts-wrapper .ts-control:focus-visible { 
165            background-image: url(/documents/d/global/ico-chevron-down-2); 
166            background-position: right 1rem center; 
167            background-size: 18px 10px; 
168            outline: none; 
169            box-shadow: none; 
170
171        #${facetId} .ts-wrapper .ts-control .item { 
172            padding-right: 0.75rem; 
173            overflow: hidden; 
174            text-overflow: ellipsis; 
175            max-width: calc(100% - 0.75rem); 
176
177        #${facetId} .ts-wrapper.single .ts-control::after { 
178            display: none; 
179
180        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input { 
181            font-family: var(--facet-font-family); 
182            font-size: var(--facet-font-size); 
183            font-weight: var(--facet-font-weight); 
184            line-height: var(--facet-line-height); 
185            letter-spacing: var(--facet-letter-spacing); 
186            color: var(--facet-color); 
187            padding: 8px 16px; 
188            border: none; 
189            border-bottom: 1px solid #d9d9d9; 
190            background-color: #fff; 
191            width: 100%; 
192            box-sizing: border-box; 
193
194        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input:focus { 
195            outline: none; 
196            box-shadow: none; 
197
198        #${facetId} .ts-dropdown .ts-dropdown-content .option { 
199            font-family: var(--facet-font-family); 
200            font-size: var(--facet-font-size); 
201            font-weight: var(--facet-font-weight); 
202            line-height: var(--facet-line-height); 
203            letter-spacing: var(--facet-letter-spacing); 
204            color: var(--facet-color); 
205            padding: 8px 16px; 
206
207        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover, 
208        #${facetId} .ts-dropdown .ts-dropdown-content .option.active { 
209            background-color: #6a9bd3; 
210            color: #fff; 
211
212        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover .badge, 
213        #${facetId} .ts-dropdown .ts-dropdown-content .option.active .badge { 
214            background-color: #fff; 
215            color: #3a6a9b; 
216
217    </style> 
218 
219    <div class="checks-container ${facetClass}" id="${facetId}"> 
220        <div class="d-flex flex-column w-100"> 
221            <label class="panel-title mb-2" for="${facetId}-select"> 
222                ${languageUtil.get(locale, "norma." + paramNameSpecificationName)} 
223                <#if isDebug> 
224                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
225                        (total options: ${entries?size}) 
226                    </p> 
227                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
228                        (facetId: ${facetId}) 
229                    </p> 
230                </#if> 
231            </label> 
232 
233            <#-- ========================= --> 
234            <#-- SELECT UI                 --> 
235            <#-- ========================= --> 
236            <select id="${facetId}-select" data-parameter-name="${paramNameSpecificationName}"> 
237                <option value="">${languageUtil.get(locale, "search.cualquiera")}</option> 
238                <#list entries?sort_by("displayName") as entry> 
239                    <#assign specName = entry.getDisplayName() /> 
240                    <#assign orgNames = specOrganismosMap[specName]![] /> 
241                    <option value="${htmlUtil.escape(specName)}" 
242                        <#if entry.isSelected()>selected</#if> 
243                        data-organismos="${htmlUtil.escape(orgNames?join(","))}"> 
244                        ${htmlUtil.escape(specName)} (${entry.getFrequency()}) 
245                    </option> 
246                </#list> 
247            </select> 
248        </div> 
249    </div> 
250 
251    <#-- ========================= --> 
252    <#-- SCRIPT                    --> 
253    <#-- ========================= --> 
254    <script> 
255        (function () { 
256            var FACET_ID   = '${facetId}'; 
257            var PARAM_NAME = '${paramNameSpecificationName}'; 
258 
259            function applyUrlFilter(value) { 
260                var url = new URL(window.location.href); 
261                if (value) { 
262                    url.searchParams.set(PARAM_NAME, value); 
263                } else { 
264                    url.searchParams.delete(PARAM_NAME); 
265
266                window.location.href = url.toString(); 
267
268 
269            function initFacet() { 
270                var select = document.getElementById(FACET_ID + '-select'); 
271                if (!select) return; 
272                if (select.tomselect) select.tomselect.destroy(); 
273                if (select.dataset.bound === 'true') return; 
274                select.dataset.bound = 'true'; 
275 
276                new TomSelect(select, { 
277                    allowEmptyOption: true, 
278                    maxItems: 1, 
279                    create: false, 
280                    render: { 
281                        option: function(data, escape) { 
282                            var organismos = data.$option ? data.$option.getAttribute('data-organismos') : ''; 
283                            var badges = ''; 
284                            if (organismos) { 
285                                organismos.split(',').forEach(function(org) { 
286                                    badges += '<span class="badge badge-secondary mr-1">' + escape(org.trim()) + '</span>'; 
287                                }); 
288
289                            return '<div class="option py-1">' + escape(data.text) + '<div class="mt-1">' + badges + '</div></div>'; 
290                        }, 
291                        no_results: function(data, escape) { 
292                            return '<div class="no-results">${languageUtil.get(locale, "occurrence-not-found")}</div>'; 
293
294                    }, 
295                    plugins: { 
296                        dropdown_input: {} 
297                    }, 
298                    onDelete: function(value) { 
299                        this.isDelete = true; 
300                    }, 
301                    onChange: function(value) { 
302                        if (value) { 
303                            this.lastValidValue = value; 
304                            applyUrlFilter(value); 
305                            return; 
306
307                        this.lastValidValue = ''; 
308                        applyUrlFilter(''); 
309                    }, 
310                    onInitialize: function() { 
311                        this.lastValidValue = this.getValue() || ''; 
312                        this.isDelete = false; 
313                        var wrapper = document.querySelector('#' + FACET_ID + ' .ts-wrapper'); 
314                        if (wrapper) wrapper.style.opacity = '1'; 
315
316                }); 
317
318 
319            if (document.readyState === 'loading') { 
320                document.addEventListener('DOMContentLoaded', initFacet); 
321            } else { 
322                initFacet(); 
323
324        })(); 
325    </script> 
326 
327</#if> 
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> esResponse.getAggregationResult(specificationKey + "_with_organismos")  [in template "34352066712900#33336#362204" at line 73, column 33]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #local aggregationResult = esResponse...  [in template "34352066712900#33336#362204" in function "getAggregationResult" at line 73, column 5]
----
1<#-- Variables --> 
2<#assign specificationName          = 'ics' /> 
3<#assign paramNameSpecificationName = cpSpecificationOptionsSearchFacetDisplayContext.getParameterName() /> 
4<#assign isDebug                    = false /> 
5<#assign showAllSpecificationsName  = false /> 
6<#assign staticHost                 = getCXConfig("ecom-static-files") /> 
7 
8<#-- ========================= --> 
9<#-- Functions freemaker       --> 
10<#-- ========================= --> 
11<#function getCXConfig clientExtensionName field="webApiUrl"> 
12    <#if !clientExtensionName?has_content><#return "" /></#if> 
13    <#local encoded = urlCodec.encodeURL(clientExtensionName) /> 
14    <#local items   = restClient.get("/c/customconfigs/?fields=clientExtensionConfig&filter=clientExtensionName eq '" + encoded + "'").items![] /> 
15    <#return items?has_content?then(items[0].clientExtensionConfig?eval[field]!"", "") /> 
16</#function> 
17 
18<#function getTaxonomyVocabularyId vocabularyName> 
19    <#local response = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=contains(name,'" + vocabularyName + "')&pageSize=1")!{} /> 
20    <#local items    = response.items![] /> 
21    <#return items?has_content?then(items[0].id, "") /> 
22</#function> 
23 
24<#function getTaxonomyCategoryMap vocabularyId pageSize=200> 
25    <#local response   = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/" + vocabularyId + "/taxonomy-categories?pageSize=" + pageSize)!{} /> 
26    <#local categoryMap = {} /> 
27    <#list response.items![] as cat> 
28        <#local categoryMap = categoryMap + {vocabularyId + "-" + cat.id: cat.name} /> 
29    </#list> 
30    <#return categoryMap /> 
31</#function> 
32 
33<#function getSpecOrganismosMap organismoMap organismoVocabId aggResult> 
34    <#local specMap     = {} /> 
35    <#local vocabPrefix = organismoVocabId + "-" /> 
36    <#if !aggResult?has_content || !organismoMap?has_content><#return specMap /></#if> 
37    <#list aggResult.getBuckets() as specBucket> 
38        <#local specKey      = specBucket.getKey() /> 
39        <#local organismoAgg = specBucket.getChildAggregationResult("organismos") /> 
40        <#local orgNames     = [] /> 
41        <#if organismoAgg?has_content> 
42            <#list organismoAgg.getBuckets() as orgBucket> 
43                <#if orgBucket.getKey()?starts_with(vocabPrefix)> 
44                    <#local orgName = organismoMap[orgBucket.getKey()]!"" /> 
45                    <#if orgName?has_content> 
46                        <#local orgNames = orgNames + [orgName] /> 
47                    </#if> 
48                </#if> 
49            </#list> 
50        </#if> 
51        <#if orgNames?has_content> 
52            <#local specMap = specMap + {specKey: orgNames} /> 
53            <#if specKey?contains(" - ")> 
54                <#local specMap = specMap + {specKey?keep_before(" - "): orgNames} /> 
55            </#if> 
56        </#if> 
57    </#list> 
58    <#return specMap /> 
59</#function> 
60 
61<#function getAggregationResult specificationKey> 
62    <#if !specificationKey?has_content><#return {} /></#if> 
63 
64    <#local sharedSearchResponse = renderRequest.getAttribute("LIFERAY_SHARED_PortletSharedSearchResponse") /> 
65    <#if !sharedSearchResponse?has_content><#return {} /></#if> 
66 
67    <#local searchResponse = sharedSearchResponse.get() /> 
68    <#if !searchResponse?has_content><#return {} /></#if> 
69 
70    <#local esResponse = searchResponse.getSearchResponse() /> 
71    <#if !esResponse?has_content><#return {} /></#if> 
72 
73    <#local aggregationResult = esResponse.getAggregationResult(specificationKey + "_with_organismos") /> 
74    <#if !aggregationResult?has_content><#return {} /></#if> 
75 
76    <#return aggregationResult /> 
77</#function> 
78 
79 
80 
81 
82<#if paramNameSpecificationName == specificationName || showAllSpecificationsName> 
83 
84    <#-- ========================= --> 
85    <#-- Datos                     --> 
86    <#-- ========================= --> 
87	<#assign organismoVocabId  = getTaxonomyVocabularyId("organismos") /> 
88	<#assign organismoMap      = getTaxonomyCategoryMap(organismoVocabId) /> 
89	<#assign aggResult         = getAggregationResult(paramNameSpecificationName)! /> 
90	<#assign specOrganismosMap = getSpecOrganismosMap(organismoMap, organismoVocabId, aggResult) /> 
91 
92    <#-- ========================= --> 
93    <#-- Debug                     --> 
94    <#-- ========================= --> 
95    <#if isDebug> 
96        <div style="background:#f0f0f0;padding:8px;margin-bottom:8px;font-size:11px;border:1px solid #ccc;"> 
97            <p><strong>paramName:</strong> ${paramNameSpecificationName}</p> 
98            <p><strong>organismoMap size:</strong> ${organismoMap?size}</p> 
99            <p><strong>specOrganismosMap size:</strong> ${specOrganismosMap?size}</p> 
100            <#list specOrganismosMap?keys as spec> 
101                <p>${spec}: ${specOrganismosMap[spec]?join(", ")}</p> 
102            </#list> 
103        </div> 
104    </#if> 
105 
106    <#-- Variables --> 
107    <#assign facetId    = "facet-" + paramNameSpecificationName + "-" + renderResponse.getNamespace() /> 
108    <#assign facetClass = "facet-" + paramNameSpecificationName + "-combo-search-wrapper" /> 
109 
110    <#-- ========================= --> 
111    <#-- TOM SELECT framework      --> 
112    <#-- ========================= --> 
113    <@liferay_util["html-top"] outputKey="tom-select"> 
114        <link href="${staticHost}/scripts/vendor/tom-select/tom-select.css" rel="stylesheet"> 
115        <script src="${staticHost}/scripts/vendor/tom-select/tom-select.complete.min.js"></script> 
116    </@> 
117 
118    <#-- ========================= --> 
119    <#-- CSS                       --> 
120    <#-- ========================= --> 
121    <style> 
122        #${facetId} { 
123            --facet-font-family: Inter; 
124            --facet-font-size: 14px; 
125            --facet-font-weight: 400; 
126            --facet-line-height: 18px; 
127            --facet-letter-spacing: 0.5px; 
128            --facet-color: #66757f; 
129
130        #${facetId}-select { 
131            appearance: none; 
132            -webkit-appearance: none; 
133            visibility: hidden; 
134            position: absolute; 
135
136        #${facetId} .ts-wrapper { 
137            width: 100%; 
138            margin-bottom: 16px; 
139            opacity: 0; 
140            transition: opacity 0.1s ease; 
141
142        #${facetId} .ts-wrapper .ts-control { 
143            padding: 15.5px 16px; 
144            font-family: var(--facet-font-family); 
145            font-size: var(--facet-font-size); 
146            font-weight: var(--facet-font-weight); 
147            line-height: var(--facet-line-height); 
148            letter-spacing: var(--facet-letter-spacing); 
149            color: var(--facet-color); 
150            text-align: left; 
151            height: 55px; 
152            width: 100%; 
153            border-radius: 4px; 
154            border: none; 
155            background-color: #F5F5F5; 
156            background-image: url(/documents/d/global/ico-chevron-down-2); 
157            background-repeat: no-repeat; 
158            background-position: right 1rem center; 
159            background-size: 18px 10px; 
160            box-shadow: none; 
161            cursor: pointer; 
162            box-sizing: border-box; 
163
164        #${facetId} .ts-wrapper .ts-control:focus, 
165        #${facetId} .ts-wrapper .ts-control:focus-visible { 
166            background-image: url(/documents/d/global/ico-chevron-down-2); 
167            background-position: right 1rem center; 
168            background-size: 18px 10px; 
169            outline: none; 
170            box-shadow: none; 
171
172        #${facetId} .ts-wrapper .ts-control .item { 
173            padding-right: 0.75rem; 
174            overflow: hidden; 
175            text-overflow: ellipsis; 
176            max-width: calc(100% - 0.75rem); 
177
178        #${facetId} .ts-wrapper.single .ts-control::after { 
179            display: none; 
180
181        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input { 
182            font-family: var(--facet-font-family); 
183            font-size: var(--facet-font-size); 
184            font-weight: var(--facet-font-weight); 
185            line-height: var(--facet-line-height); 
186            letter-spacing: var(--facet-letter-spacing); 
187            color: var(--facet-color); 
188            padding: 8px 16px; 
189            border: none; 
190            border-bottom: 1px solid #d9d9d9; 
191            background-color: #fff; 
192            width: 100%; 
193            box-sizing: border-box; 
194
195        #${facetId} .ts-dropdown .dropdown-input-wrap .dropdown-input:focus { 
196            outline: none; 
197            box-shadow: none; 
198
199        #${facetId} .ts-dropdown .ts-dropdown-content .option { 
200            font-family: var(--facet-font-family); 
201            font-size: var(--facet-font-size); 
202            font-weight: var(--facet-font-weight); 
203            line-height: var(--facet-line-height); 
204            letter-spacing: var(--facet-letter-spacing); 
205            color: var(--facet-color); 
206            padding: 8px 16px; 
207
208        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover, 
209        #${facetId} .ts-dropdown .ts-dropdown-content .option.active { 
210            background-color: #6a9bd3; 
211            color: #fff; 
212
213        #${facetId} .ts-dropdown .ts-dropdown-content .option:hover .badge, 
214        #${facetId} .ts-dropdown .ts-dropdown-content .option.active .badge { 
215            background-color: #fff; 
216            color: #3a6a9b; 
217
218    </style> 
219 
220    <div class="checks-container ${facetClass}" id="${facetId}"> 
221        <div class="d-flex flex-column w-100"> 
222            <label class="panel-title mb-2" for="${facetId}-select"> 
223                ${languageUtil.get(locale, "norma." + paramNameSpecificationName)} 
224                <#if isDebug> 
225                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
226                        (total options: ${entries?size}) 
227                    </p> 
228                    <p style="font-size:11px;color:#999;font-weight:normal;"> 
229                        (facetId: ${facetId}) 
230                    </p> 
231                </#if> 
232            </label> 
233 
234            <#-- ========================= --> 
235            <#-- SELECT UI                 --> 
236            <#-- ========================= --> 
237            <select id="${facetId}-select" data-parameter-name="${paramNameSpecificationName}"> 
238                <option value="">${languageUtil.get(locale, "search.cualquiera")}</option> 
239                <#list entries?sort_by("displayName") as entry> 
240                    <#assign specName = entry.getDisplayName() /> 
241                    <#assign orgNames = specOrganismosMap[specName]![] /> 
242                    <option value="${htmlUtil.escape(specName)}" 
243                        <#if entry.isSelected()>selected</#if> 
244                        data-organismos="${htmlUtil.escape(orgNames?join(","))}"> 
245                        ${htmlUtil.escape(specName)} (${entry.getFrequency()}) 
246                    </option> 
247                </#list> 
248            </select> 
249        </div> 
250    </div> 
251 
252    <#-- ========================= --> 
253    <#-- SCRIPT                    --> 
254    <#-- ========================= --> 
255    <script> 
256        (function () { 
257            var FACET_ID   = '${facetId}'; 
258            var PARAM_NAME = '${paramNameSpecificationName}'; 
259 
260            function applyUrlFilter(value) { 
261                var url = new URL(window.location.href); 
262                if (value) { 
263                    url.searchParams.set(PARAM_NAME, value); 
264                } else { 
265                    url.searchParams.delete(PARAM_NAME); 
266
267                window.location.href = url.toString(); 
268
269 
270            function initFacet() { 
271                var select = document.getElementById(FACET_ID + '-select'); 
272                if (!select) return; 
273                if (select.tomselect) select.tomselect.destroy(); 
274                if (select.dataset.bound === 'true') return; 
275                select.dataset.bound = 'true'; 
276 
277                new TomSelect(select, { 
278                    allowEmptyOption: true, 
279                    maxItems: 1, 
280                    create: false, 
281                    render: { 
282                        option: function(data, escape) { 
283                            var organismos = data.$option ? data.$option.getAttribute('data-organismos') : ''; 
284                            var badges = ''; 
285                            if (organismos) { 
286                                organismos.split(',').forEach(function(org) { 
287                                    badges += '<span class="badge badge-secondary mr-1">' + escape(org.trim()) + '</span>'; 
288                                }); 
289
290                            return '<div class="option py-1">' + escape(data.text) + '<div class="mt-1">' + badges + '</div></div>'; 
291                        }, 
292                        no_results: function(data, escape) { 
293                            return '<div class="no-results">${languageUtil.get(locale, "occurrence-not-found")}</div>'; 
294
295                    }, 
296                    plugins: { 
297                        dropdown_input: {} 
298                    }, 
299                    onDelete: function(value) { 
300                        this.isDelete = true; 
301                    }, 
302                    onChange: function(value) { 
303                        if (value) { 
304                            this.lastValidValue = value; 
305                            applyUrlFilter(value); 
306                            return; 
307
308                        this.lastValidValue = ''; 
309                        applyUrlFilter(''); 
310                    }, 
311                    onInitialize: function() { 
312                        this.lastValidValue = this.getValue() || ''; 
313                        this.isDelete = false; 
314                        var wrapper = document.querySelector('#' + FACET_ID + ' .ts-wrapper'); 
315                        if (wrapper) wrapper.style.opacity = '1'; 
316
317                }); 
318
319 
320            if (document.readyState === 'loading') { 
321                document.addEventListener('DOMContentLoaded', initFacet); 
322            } else { 
323                initFacet(); 
324
325        })(); 
326    </script> 
327 
328</#if> 
(37753)
(36846)
(4136)
UNE

UNE-EN 300356-11 V3.1.3

En Vigor
2004-12-01
Red Digital de Servicios Integrados (RDSI). Sistema de señalización Nº 7 (SS7). Parte usuario RDSI (ISUP) versión 3 para la interfaz internacional. Parte 11: Servicio suplementario de identificación de llamada maliciosa (MCID) [Recomendación ITU-T Q.731 capítulo 7 (1997) y sus modificaciones]. (Ratificada por AENOR en diciembre de 2004).
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300392-7 V2.1.1

En Vigor
2005-04-01
Radio Troncal Terrestre (TETRA); Voz más Datos (V+D); Parte 7: Seguridad. (Ratificada por AENOR en abril de 2005.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300761 V1.1.1

En Vigor
2005-05-01
Cuestiones de Compatibilidad Electromagnética y Espectro Radioeléctrico (ERM). Identificación automática de vehículos (AVI) para ferrocarriles (Ratificada por AENOR en mayo de 2005.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300175-5 V1.5.1

En Vigor
2003-07-01
Telecomunicaciones Inalámbricas Digitales Mejoradas (DECT). Interfaz común (CI). Parte 5: Capa de red (NWK). (Ratificada por AENOR en julio de 2003).
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN ISO 4210-7:2023

En Vigor
2023-03-01
Ciclos. Requisitos de seguridad para bicicletas. Parte 7: Métodos de ensayo para ruedas y llantas. (ISO 4210-7:2023). (Ratificada por la Asociación Española de Normalización en marzo de 2023.)
UNE

UNE-EN 300019-1-1 V2.1.2

En Vigor
2003-09-01
Ingeniería Ambiental (EE). Condiciones ambientales y pruebas ambientales de equipos de telecomunicaciones. Parte 1-1: Clasificación de las condiciones ambientales. Almacenamiento. (Ratificada por AENOR en septiembre de 2003.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN ISO 13703-2:2023

En Vigor
2023-12-01
Industrias del petróleo, petroquímicas y del gas natural. Sistemas de tuberías en plataformas marítimas de producción y plantas terrestres. Parte 2: Materiales. (ISO 13703-2:2023). (Ratificada por la Asociación Española de Normalización en diciembre de 2023.)
UNE

UNE-EN 300188-6 V1.3.4

En Vigor
2004-10-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de llamada a tres bandas (3PTY). Protocolo de Señalización Digital de Abonado Nº. uno (DSS1). Parte 6: Especificación para la red del conjunto de pruebas abstractas (ATS) e información extra para pruebas de implementación de protocolo parcial (PIXIT). (Ratificada por AENOR en octubre de 2004).
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ISO 21101:2015/Amd 1:2024

En Vigor
2024-03-06
Turismo activo. Sistema de gestión de la seguridad. Requisitos. Modificación 1: Acciones relativas al cambio climático.
UNE

UNE-EN 300086-1 V1.2.1

En Vigor
2003-07-01
Cuestiones de Compatibilidad Electromagnética y Espectro Radioeléctrico (ERM). Servicio Móvil Terrestre. Equipo de radiocomunicación con un conector de RF interno o externo destinado principalmente a la voz analógica. Parte 1: Características técnicas y métodos de medida. (Ratificada por AENOR en julio de 2003)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300359-5 V1.2.4

En Vigor
2005-04-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de terminación de llamadas de abonado ocupado (CCBS). Protocolo del sistema número uno de transmisión de señal de abonado digital (DSS1). Parte 5: Especificación para la red de la estructura de pruebas abstractas y propósitos de pruebas (TSS&TP). (Ratificada por AENOR en abril de 2005.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300175-8:1996

En Vigor
1997-12-01
Sistemas y Equipos de Radio (RES); Interfaz Común de las Telecomunicaciones Digitales Europeas Inalámbricas (DECT). Parte 8: Codificación y transmisión vocal. (Ratificada por AENOR en diciembre de 1997.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 301908-10 V1.1.1

En Vigor
2005-05-01
Cuestiones de compatibilidad electromagnética y espectro radioeléctrico (ERM). Estaciones Base (BS) y Equipos de Usuario (UE) para redes móviles. Parte 10: EN armonizada para IMT-2000, FDMA/TDMA(DECT) cubriendo los requisitos esenciales bajo el artículo 3.2 de la Directiva RTTE. (Ratificada por AENOR en mayo de 2005.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300196-4 V1.2.1

En Vigor
2003-07-01
Red Digital de Servicios Integrados (RDSI). Protocolo funcional genérico para el soporte de los servicios suplementarios. Protocolo de Señalización Digital de Abonado Nº. uno (DSS1). Parte 4: Sucesión de Pruebas Abstractas (ATS) y especificación para el usuario del formulario de Información Suplementaria sobre Realización de Protocolo para Pruebas (PIXIT) parcial. (Ratificada por AENOR en julio de 2003).
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-ETS 300826 Ed1

En Vigor
2005-05-01
Cuestiones de Compatibilidad Electromagnética y Espectro Radioeléctrico (ERM). Norma de Compatibilidad Electromagnética (CEM) para sistemas de transmisión de banda ancha en 2,4 GHz y equipo de radio de red de área local de alto rendimiento (Hiperlan). (Ratificada por AENOR en mayo de 2005.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300182-6 V1.3.4

En Vigor
2004-10-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de Información de Tarificación (AOC). Protocolo de Señalización Digital de Abonado Nº. uno (DSS1). Parte 6: Especificación para la red del conjunto de pruebas abstractas (ATS) e información extra para pruebas de implementación de protocolo parcial (PIXIT).(Ratificada por AENOR en octubre de 2004)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300175-1 V1.8.1

En Vigor
2018-12-01
Telecomunicaciones Inalámbricas Digitales Mejoradas (DECT). Interfaz común (CI). Parte 1: Descripción. (Ratificada por la Asociación Española de Normalización en diciembre de 2018.)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 300097-6 V1.3.4

En Vigor
2003-09-01
Red Digital de Servicios Integrados (RDSI). Servicio suplementario de presentación de la identificación de la línea conectada (COLP). Protocolo del sistema de Señalización Digital de Abonado Nº Uno (SDA1). Parte 6: Especificación para la red del conjunto de pruebas abstractas (ATS) e información extra para pruebas de implementación de protocolo parcial (PIXIT) (Ratificada por AENOR en septiembre de 2003)
Si desea adquirir esta norma, envíenos su solicitud a normas@aenor.com
UNE

UNE-EN 14317-2:2009

En Vigor
2009-06-17
Productos aislantes térmicos para aplicaciones en la edificación. Productos aislantes térmicos formados in situ a partir de vermiculita exfoliada (EV). Parte 2: Especificación para los productos instalados.
UNE

UNE-EN 3987:2009

En Vigor
2009-11-01
Material aeroespacial. Métodos de ensayo para materiales metálicos. Ensayo de fatiga a gran número de ciclos, con amplitud constante y fuerza impuesta. (Ratificada por AENOR en noviembre de 2009.)
UNE

UNE 40440:1980

En Vigor
1980-06-15
Acondicionamiento de las telas no tejidas.
UNE

UNE-EN 12636:2000

En Vigor
2000-02-28
Productos y sistemas para la protección y reparación de estructuras de hormigón. Métodos de ensayo. Determinación de la adhesión hormigón-hormigón.
UNE

UNE 84607-1:2010

En Vigor
2010-01-13
Materias primas cosméticas. Determinación de sustancias fácilmente carbonizables contenidas en hidrocarburos saturados obtenidos del petróleo. Parte 1: Hidrocarburos saturados pastosos y sólidos.
UNE

UNE-EN 1829-2:2009

En Vigor
2009-06-24
Máquinas por chorro de agua a alta presión. Requisitos de seguridad. Parte 2: Mangueras, tuberías flexibles y conexiones.
UNE

UNE 55517:1984

En Vigor
1984-06-15
Agentes de superficie. Análisis de alquilbetainas técnicas.
UNE

UNE-EN 2240-021:2010

En Vigor
2010-04-01
Material aeroespacial. Lámparas de incandescencia. Parte 021: Lámpara, código 313. Norma de producto. (Ratificada por AENOR en abril de 2010.)
UNE

UNE 55909:1985

En Vigor
1985-12-15
Agentes de superficie. Jabones. Determinación del contenido en álcali libre total.
UNE

UNE-EN ISO 14528-2:2000

En Vigor
2000-12-12
Plásticos. Compuestos de moldeo de melamina-formaldehído en polvo (MF-PMCs). Parte 2: Preparación de probetas y determinación de propiedades. (ISO 14528-2:1999).
UNE

UNE 62256:1991

En Vigor
1991-06-10
Bombas centrifugas de aspiración axial. Medidas de alojamiento para cierres mecánicos y de empaquetadora.
UNE

UNE-EN 61512-1:1999

En Vigor
2001-05-01
Control de los procesos de fabricación por lotes. Parte 1: Modelos y terminología. (Ratificada por AENOR en mayo de 2001)
UNE

UNE-EN 1301-1:2009

En Vigor
2009-10-21
Aluminio y aleaciones de aluminio. Alambre estirado. Parte 1: Condiciones técnicas de inspección y suministro.
UNE

UNE-EN ISO 3822-1:2000/A1:2009

En Vigor
2009-07-01
Acústica. Medición en laboratorio del ruido emitido por las griferías y equipamientos hidráulicos utilizados en las instalaciones de abastecimiento de agua. Parte 1: Método de medición. Modificación 1: Incertidumbre de la medición (ISO 3822-1:1999/Amd 1:2008).
UNE

UNE 71501-2:2001 IN

En Vigor
2001-11-30
Tecnología de la información (TI). Guía para la gestión de la seguridad de TI. Parte 2: Gestión y planificación de la seguridad de TI.
UNE

UNE-EN 1028-1:2003+A1:2009

En Vigor
2009-07-01
Bombas contra incendios. Bombas centrífugas contra incendios con cebador. Parte 1: Clasificación. Requisitos generales y de seguridad.
UNE

UNE-EN 301423 V1.1.1:2002

En Vigor
2002-01-31
Cuestiones de Compatibilidad Electromagnética y Espectro Radioeléctrico (ERM). EN armonizada para el sistema de telecomunicaciones terrestre con aeronaves (TFTS) que cubre los requisitos esenciales bajo el artículo 3.2 de la Directiva RTTE.
UNE

UNE-EN 3757:2009

En Vigor
2010-01-01
Material aeroespacial. Tuercas remachables, autofrenables, flotantes, autoalineables, doble patilla, en acero resistente al calor, lubrificadas MoS2. Clasificación: 900 MPa (a temperatura ambiente) / 315 °C (Ratificada por AENOR en enero de 2010.)
UNE

UNE-EN ISO 15882:2009

En Vigor
2009-05-13
Esterilización de productos sanitarios. Indicadores químicos. Guía para la selección, uso e interpretación de los resultados. (ISO 15882:2008)
UNE

UNE-EN 301489-17 V1.1.1:2002

En Vigor
2002-06-27
Cuestiones de Compatibilidad Electromagnética y Espectro Radioeléctrico (ERM). Norma de Compatibilidad Electromagnética (CEM) para equipo y servicios radio. Parte 17: Condiciones específicas para el equipo HIPERLAN y de datos en banda ancha.
UNE

UNE-EN 61204/A1:2002

En Vigor
2002-07-29
Dispositivos de alimentación de baja tensión de salida en corriente continua. Características de funcionamiento.
UNE

UNE-EN 2906:1995

En Vigor
1995-11-16
Material aeroespacial. Tuercas bihexagonales, autofrenantes en acero resistente al calor FE-PA92HT (A286). Clasificación: 1 100 MPa (a temperatura ambiente) / 650 ºC.