displayresolutionrequired.js
3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
* ADOBE CONFIDENTIAL
*
* Copyright 2017 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
*/
/*
* Workaround for CQ-4197617
*/
(function(document, $) {
'use strict';
var SELECT_RESOLUTION_SELECTOR = '.screens-DisplayDialog-selectResolution';
var CUSTOM_RESOLUTION_FORM_FIELDS_SELECTOR = '.screens-DisplayDialog-customResolutionFormField';
// covers initally injected Elements
$(document).on('foundation-contentloaded', function(e) {
onToggleSelected($(SELECT_RESOLUTION_SELECTOR, e.target));
});
// covers lazily injected Elements
$(document).on('selected', SELECT_RESOLUTION_SELECTOR, function(e) {
onToggleSelected($(this));
});
function onToggleSelected(el) {
el.each(function(i, element) {
Coral.commons.ready(element, function(component) { // eslint-disable-line max-nested-callbacks
toggleCustomResolution(component);
component.on('change', function() { // eslint-disable-line max-nested-callbacks
toggleCustomResolution(component);
});
});
});
}
function toggleCustomResolution(component) {
var toggleables = $(CUSTOM_RESOLUTION_FORM_FIELDS_SELECTOR);
if (component.selectedItem.value === '') {
toggleables.each(function(index, toggleable) {
$(toggleable).adaptTo('foundation-toggleable').show();
});
} else {
toggleables.each(function(index, toggleable) {
$(toggleable).adaptTo('foundation-toggleable').hide();
});
}
}
$(window).adaptTo('foundation-registry').register('foundation.adapters', {
type: 'foundation-toggleable',
selector: CUSTOM_RESOLUTION_FORM_FIELDS_SELECTOR,
adapter: function(el) {
var toggleable = $(el);
return {
isOpen: function() {
return toggleable.adaptTo('foundation-field').isRequired();
},
show: function(anchor) {
toggleable.adaptTo('foundation-field').setDisabled(false);
toggleable.adaptTo('foundation-field').setRequired(true);
toggleable.adaptTo('foundation-validation').checkValidity();
toggleable.parent().show();
},
hide: function() {
toggleable.adaptTo('foundation-field').setDisabled(true);
toggleable.adaptTo('foundation-field').setRequired(false);
toggleable.adaptTo('foundation-validation').checkValidity();
toggleable.parent().hide();
}
};
}
});
}(document, Granite.$));