MCPcopy
hub / github.com/orestbida/cookieconsent / setLayout

Function setLayout

src/utils/gui-manager.js:125–203  ·  view source on GitHub ↗
(modal, allowedLayoutsObj, userGuiOptions, modalClassPrefix, defaultLayoutName, modalClassName)

Source from the content-addressed store, hash-verified

123 * @param {'cm' | 'pm'} modalClassName
124 */
125const setLayout = (modal, allowedLayoutsObj, userGuiOptions, modalClassPrefix, defaultLayoutName, modalClassName) => {
126 /**
127 * Reset modal classes to default
128 */
129 modal.className = modalClassName;
130
131 const layout = userGuiOptions && userGuiOptions.layout;
132 const position = userGuiOptions && userGuiOptions.position;
133 const flipButtons = userGuiOptions && userGuiOptions.flipButtons;
134 const equalWeightButtons = !userGuiOptions || userGuiOptions.equalWeightButtons !== false;
135
136 const layoutSplit = layout && layout.split(' ') || [];
137
138 const layoutName = layoutSplit[0];
139 const layoutVariant = layoutSplit[1];
140
141 const currentLayoutName = layoutName in allowedLayoutsObj
142 ? layoutName
143 : defaultLayoutName;
144
145 const currentLayout = allowedLayoutsObj[currentLayoutName];
146 const currentLayoutVariant = elContains(currentLayout._variants, layoutVariant) && layoutVariant;
147
148 const positionSplit = position && position.split(' ') || [];
149 const positionV = positionSplit[0];
150
151 const positionH = modalClassPrefix === CLASS_CONSTANTS._pmPrefix
152 ? positionSplit[0]
153 : positionSplit[1];
154
155 const currentPositionV = elContains(currentLayout._alignV, positionV)
156 ? positionV
157 : currentLayout._defaultAlignV;
158
159 const currentPositionH = elContains(currentLayout._alignH, positionH)
160 ? positionH
161 : currentLayout._defaultAlignH;
162
163 const addModalClass = className => {
164 className && addClass(modal, modalClassPrefix + className);
165 };
166
167 addModalClass(currentLayoutName);
168 addModalClass(currentLayoutVariant);
169 addModalClass(currentPositionV);
170 addModalClass(currentPositionH);
171 flipButtons && addModalClass('flip');
172
173 const secondaryBtnClass = 'btn--secondary';
174 const btnClassPrefix = modalClassName + '__';
175 const btnClass = btnClassPrefix + secondaryBtnClass;
176
177 /**
178 * Add classes to buttons
179 */
180 if (modalClassName === 'cm') {
181 const {_cmAcceptNecessaryBtn, _cmCloseIconBtn} = globalObj._dom;
182

Callers 1

guiManagerFunction · 0.70

Calls 4

elContainsFunction · 0.90
removeClassFunction · 0.90
addClassFunction · 0.90
addModalClassFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…