1ASPx.IS(function(ASPx, dx, DevExpress){ 2(function(dx) { 3 var Interactions = ASPx.CreateClass(null, { 4 onSwipeLeft: function(selector, func) { 5 }, 6 onSwipeRight: function(selector, func) { 7 } 8 }); 9 var BootstrapCore = {}; 10 BootstrapCore.Interactions = new Interactions(); 11 BootstrapCore.BootstrapMode = 'Bootstrap4'; 12 BootstrapCore.IsBootstrap3 = BootstrapCore.BootstrapMode == "Bootstrap3"; 13 BootstrapCore.IsBootstrap4 = BootstrapCore.BootstrapMode == "Bootstrap4"; 14 BootstrapCore.IsBootstrap5 = BootstrapCore.BootstrapMode == "Bootstrap5"; 15 BootstrapCore.CheckReferences = 'true'; 16 BootstrapCore.zIndexCategories = { 17 dropdown: 1000, 18 sticky: 1020, 19 fixed: 1030, 20 modalBackdrop: 1040, 21 modal: 1050, 22 popover: 1060, 23 tooltip: 1070 24 }; 25 var bsCssClass = "dxbs-" + BootstrapCore.BootstrapMode.charAt(BootstrapCore.BootstrapMode.length - 1); 26 if(document && document.documentElement) 27 ASPx.AddClassNameToElement(document.documentElement, bsCssClass); 28 var BootstrapCssSelectors = {}; 29 BootstrapCssSelectors.Table = "table"; 30 BootstrapCssSelectors.TableBordered = "table-bordered"; 31 BootstrapCssSelectors.TableSmall = BootstrapCore.IsBootstrap3 ? "table-condensed" : "table-sm"; 32 BootstrapCssSelectors.TableActive = BootstrapCore.IsBootstrap3 ? "" : "table-active";
33 BootstrapCssSelectors.BackgroundLight = BootstrapCore.IsBootstrap3 ? "" : "bg-light"; 34 BootstrapCssSelectors.BackgroundPrimary = BootstrapCore.IsBootstrap3 ? "bg-primary" : "bg-primary text-white"; 35 BootstrapCssSelectors.BackgroundDanger = "bg-danger"; 36 BootstrapCssSelectors.Hidden = BootstrapCore.IsBootstrap3 ? "hidden" : "d-none"; 37 BootstrapCssSelectors.Row = "row"; 38 BootstrapCssSelectors.Column = "col"; 39 BootstrapCssSelectors.ColumnAuto = BootstrapCore.IsBootstrap3 ? "" : "col-auto"; 40 BootstrapCssSelectors.Panel = BootstrapCore.IsBootstrap3 ? "panel" : "card"; 41 BootstrapCssSelectors.PanelDefault = BootstrapCore.IsBootstrap3 ? "panel-default" : ""; 42 BootstrapCssSelectors.PanelHeading = BootstrapCore.IsBootstrap3 ? "panel-heading" : "card-header"; 43 BootstrapCssSelectors.PanelTitle = BootstrapCore.IsBootstrap3 ? "panel-title" : "card-title"; 44 BootstrapCssSelectors.PanelBody = BootstrapCore.IsBootstrap3 ? "panel-body" : "card-body"; 45 BootstrapCssSelectors.PanelFooter = BootstrapCore.IsBootstrap3 ? "panel-footer" : "card-footer"; 46 BootstrapCssSelectors.Radio = BootstrapCore.IsBootstrap3 ? "radio" : "form-check"; 47 BootstrapCssSelectors.CheckBox = BootstrapCore.IsBootstrap3 ? "checkbox" : "form-check"; 48 BootstrapCssSelectors.InlineCheckBox = BootstrapCore.IsBootstrap3 ? "checkbox-inline" : "form-check form-check-inline"; 49 BootstrapCssSelectors.CheckBoxLabel = BootstrapCore.IsBootstrap3 ? "" : "form-check-label"; 50 BootstrapCssSelectors.CheckBoxInput = BootstrapCore.IsBootstrap3 ? "" : "form-check-input"; 51 BootstrapCssSelectors.CustomCheckBox = BootstrapCore.IsBootstrap3 ? "" : "custom-control custom-checkbox"; 52 BootstrapCssSelectors.CustomInlineCheckBox = BootstrapCore.IsBootstrap3 ? "" : "custom-control custom-control-inline custom-checkbox"; 53 BootstrapCssSelectors.CustomRadioButton = BootstrapCore.IsBootstrap3 ? "" : "custom-control custom-radio"; 54 BootstrapCssSelectors.CustomInlineRadioButton = BootstrapCore.IsBootstrap3 ? "" : "custom-control custom-control-inline custom-radio"; 55 BootstrapCssSelectors.CustomCheckLabel = BootstrapCore.IsBootstrap3 ? "" : "custom-control-label"; 56 BootstrapCssSelectors.CustomCheckInput = BootstrapCore.IsBootstrap3 ? "" : "custom-control-input"; 57 BootstrapCssSelectors.ControlLabel = BootstrapCore.IsBootstrap3 ? "control-label" : "col-form-label"; 58 BootstrapCssSelectors.FormControlStatic = BootstrapCore.IsBootstrap3 ? "form-control-static" : "form-control-plaintext" ; 59 BootstrapCssSelectors.HelpBlock = BootstrapCore.IsBootstrap3 ? "help-block" : "form-text"; 60 BootstrapCssSelectors.HasError = BootstrapCore.IsBootstrap3 ? "has-error" : ""; 61 BootstrapCssSelectors.FormControlFeedback = BootstrapCore.IsBootstrap3 ? "form-control-feedback" : "dxbs-feedback"; 62 BootstrapCssSelectors.InvalidFormControl = BootstrapCore.IsBootstrap3 ? "" : "is-invalid"; 63 BootstrapCssSelectors.InvalidFeedback = BootstrapCore.IsBootstrap3 ? "" : "invalid-feedback"; 64 BootstrapCssSelectors.InputGroup = "input-group"; 65 BootstrapCssSelectors.InputGroupAppendButton = BootstrapCore.IsBootstrap3 ? "input-group-btn" : "input-group-append"; 66 BootstrapCssSelectors.InputGroupPrependButton = BootstrapCore.IsBootstrap3 ? "input-group-btn" : "input-group-prepend"; 67 BootstrapCssSelectors.Divider = BootstrapCore.IsBootstrap3 ? "divider" : "dropdown-divider"; 68 BootstrapCssSelectors.NavItem = BootstrapCore.IsBootstrap3 ? "" : "nav-item"; 69 BootstrapCssSelectors.NavLink = BootstrapCore.IsBootstrap3 ? "" : "nav-link"; 70 BootstrapCssSelectors.DropDownMenu = "dropdown-menu"; 71 BootstrapCssSelectors.DropDownMenuItem = BootstrapCore.IsBootstrap3 ? "" : "dropdown-item"; 72 BootstrapCssSelectors.ListBoxItemLink = BootstrapCore.IsBootstrap3 ? "list-group-item" : "list-group-item list-group-item-action"; 73 BootstrapCssSelectors.ListGroupItem = selectClass("list-group-item"); 74 BootstrapCssSelectors.ListGroup = selectClass("list-group"); 75 BootstrapCssSelectors.Active = selectClass("active"); 76 BootstrapCssSelectors.Disabled = selectClass("disabled"); 77 BootstrapCssSelectors.HiddenLayout = "dxbs-hl"; 78 BootstrapCssSelectors.Breabcrumb = "breadcrumb"; 79 BootstrapCssSelectors.BreadcrumbItem = BootstrapCore.IsBootstrap3 ? "" : "breadcrumb-item"; 80 BootstrapCssSelectors.Toolbar = "btn-toolbar"; 81 BootstrapCssSelectors.Button = "btn"; 82 BootstrapCssSelectors.ButtonGroup = "btn-group"; 83 BootstrapCssSelectors.ButtonGroupVertical = "btn-group-vertical"; 84 BootstrapCssSelectors.DropDown = "dropdown"; 85 BootstrapCssSelectors.DropDownToggle = "dropdown-toggle"; 86 BootstrapCssSelectors.Modal = "modal";
87 BootstrapCssSelectors.ModalContent = "modal-content"; 88 BootstrapCssSelectors.ModalBody = "modal-body"; 89 BootstrapCssSelectors.ModalHeader = "modal-header"; 90 BootstrapCssSelectors.ModalTitle = "modal-title"; 91 BootstrapCssSelectors.ModalFooter = "modal-footer"; 92 BootstrapCssSelectors.ModalBackdrop = "modal-backdrop " + (BootstrapCore.IsBootstrap3 ? "in" : "show"); 93 BootstrapCssSelectors.Label = BootstrapCore.IsBootstrap3 ? "label" : "badge"; 94 BootstrapCssSelectors.Alert = "alert"; 95 function selectClass() { 96 var argsCount = arguments.length; 97 if (argsCount === 1 || BootstrapCore.IsBootstrap3) 98 return arguments[0]; 99 if (argsCount === 2 || BootstrapCore.IsBootstrap4) 100 return arguments[1]; 101 return arguments[2]; 102 } 103 BootstrapCssSelectors.Popover = selectClass("popover"); 104 BootstrapCssSelectors.PopoverArrow = selectClass("arrow", "arrow", "popover-arrow"); 105 BootstrapCssSelectors.PopoverBody = selectClass("popover-content", "popover-body"); 106 BootstrapCssSelectors.PopoverHeader = selectClass("popover-title", "popover-header"); 107 BootstrapCssSelectors.PopoverBottom = selectClass("bottom", "bs-popover-bottom"); 108 BootstrapCssSelectors.PopoverLeft = selectClass("left", "bs-popover-left"); 109 BootstrapCssSelectors.PopoverRight = selectClass("right", "bs-popover-right"); 110 BootstrapCssSelectors.PopoverTop = selectClass("top", "bs-popover-top"); 111 BootstrapCssSelectors.Tooltip = selectClass("tooltip"); 112 BootstrapCssSelectors.TooltipArrow = selectClass("tooltip-arrow", "arrow", "tooltip-arrow"); 113 BootstrapCssSelectors.TooltipContent = selectClass("tooltip-inner"); 114 BootstrapCssSelectors.TooltipBottom = selectClass("bottom", "bs-tooltip-bottom"); 115 BootstrapCssSelectors.TooltipLeft = selectClass("left", "bs-tooltip-left"); 116 BootstrapCssSelectors.TooltipRigth = selectClass("right", "bs-tooltip-right"); 117 BootstrapCssSelectors.TooltipTop = selectClass("top", "bs-tooltip-top"); 118 BootstrapCssSelectors.Border = selectClass("dxbs-border", "border"); 119 BootstrapCssSelectors.TableHeadLight = selectClass("", "thead-light", ""); 120 BootstrapCssSelectors.PanelHeadingTabs = selectClass("panel-heading-tabs", "card-header-tabs"); 121 BootstrapCssSelectors.Invisible = selectClass("invisible"); 122 BootstrapCssSelectors.TextCenter = "text-center"; 123 BootstrapCssSelectors.TextMuted = selectClass("text-muted"); 124 BootstrapCssSelectors.TextRight = selectClass("text-right", "text-right", "text-end"); 125 BootstrapCssSelectors.MarginStart = selectClass("", "ml", "ms"); 126 BootstrapCssSelectors.MarginEnd = selectClass("", "mr", "me"); 127 BootstrapCssSelectors.Badge = selectClass("badge"); 128 BootstrapCssSelectors.BadgePill = selectClass("", "badge-pill", "rounded-pill"); 129 BootstrapCssSelectors.BadgePrimary = selectClass("", "badge-primary", "bg-primary"); 130 BootstrapCssSelectors.BadgeSecondary = selectClass("", "badge-secondary", "bg-secondary"); 131 BootstrapCssSelectors.BadgeSuccess = selectClass("", "badge-success", "bg-success"); 132 BootstrapCssSelectors.BadgeDanger = selectClass("", "badge-danger", "bg-danger"); 133 BootstrapCssSelectors.BadgeWarning = selectClass("", "badge-warning", "bg-warning"); 134 BootstrapCssSelectors.BadgeInfo = selectClass("", "badge-info", "bg-info"); 135 BootstrapCssSelectors.BadgeLight = selectClass("", "badge-light", "bg-light"); 136 BootstrapCssSelectors.BadgeDark = selectClass("", "badge-dark", "bg-dark"); 137 BootstrapCssSelectors.TextPrimary = selectClass("text-primary"); 138 BootstrapCssSelectors.TextSecondary = selectClass("", "text-secondary"); 139 BootstrapCssSelectors.TextSuccess = selectClass("text-success"); 140 BootstrapCssSelectors.TextDanger = selectClass("text-danger"); 141 BootstrapCssSelectors.TextWarning = selectClass("text-warning"); 142 BootstrapCssSelectors.TextInfo = selectClass("text-info"); 143 BootstrapCssSelectors.TextLight = selectClass("", "text-light"); 144 BootstrapCssSelectors.TextDark = selectClass("", "text-dark"); 145 BootstrapCssSelectors.ButtonPrimary = selectClass("btn-primary"); 146 BootstrapCssSelectors.ButtonSecondary = selectClass("btn-default", "btn-secondary"); 147 BootstrapCssSelectors.ButtonSuccess = selectClass("btn-success"); 148 BootstrapCssSelectors.ButtonDanger = selectClass("btn-danger"); 149 BootstrapCssSelectors.ButtonWarning = selectClass("btn-warning"); 150 BootstrapCssSelectors.ButtonInfo = selectClass("btn-info"); 151 BootstrapCssSelectors.ButtonLight = selectClass("", "btn-light"); 152 BootstrapCssSelectors.ButtonDark = selectClass("", "btn-dark"); 153 BootstrapCssSelectors.ButtonLink = selectClass("btn-link"); 154 BootstrapCssSelectors.ButtonOutlineSecondary = selectClass("", "btn-outline-secondary"); 155 BootstrapCssSelectors.FormControl = selectClass("form-control"); 156 BootstrapCssSelectors.FormGroup = selectClass("form-group", "form-group", ""); 157 BootstrapCssSelectors.Pagination = selectClass("pagination"); 158 BootstrapCssSelectors.AccordionItem = selectClass("panel", "card", "accordion-item"); 159 BootstrapCssSelectors.AccordionHeader = selectClass("panel-heading", "card-header", "accordion-header"); 160 BootstrapCssSelectors.AccordionBody = selectClass("panel-body", "card-body", "accordion-body"); 161 var mediaQueryScreenSizesCache = {}; 162 function createCssRuleForScreenSizeMediaQuery(cssVarName, fallbackWidth, cssRule) { 163 var cache = mediaQueryScreenSizesCache;
164 var minWidth = cache[cssVarName] || (cache[cssVarName] = (ASPx.GetCurrentStyle(document.body).getPropertyValue(cssVarName) || fallbackWidth)); 165 if(minWidth) { 166 var styleSheet = ASPx.GetCurrentStyleSheet(); 167 if(styleSheet) 168 styleSheet.insertRule("@media (min-width: " + minWidth + ") {\n" + cssRule + "\n}\n", styleSheet.cssRules.length); 169 } 170 } 171 BootstrapCore.createCssRuleForLargeScreen = function(cssRule) { 172 createCssRuleForScreenSizeMediaQuery("--breakpoint-lg", "992px", cssRule); 173 }; 174 function getTableCellStyleRuleCssText(cellElement, addBorders, addPaddings) { 175 var cellStyleProperties = []; 176 if(addBorders) { 177 cellStyleProperties = cellStyleProperties.concat([ 178 "border", "border-left", "border-top", "border-right", "border-bottom", 179 "border-left-width", "border-left-style", "border-left-color", 180 "border-top-width", "border-top-style", "border-top-color", 181 "border-right-width", "border-right-style", "border-right-color", 182 "border-bottom-width", "border-bottom-style", "border-bottom-color" 183 ]); 184 } 185 if(addPaddings) 186 cellStyleProperties = cellStyleProperties.concat(["padding", "padding-left", "padding-top", "padding-right", "padding-bottom"]); 187 return getStyleRuleCssText(ASPx.GetCurrentStyle(cellElement), cellStyleProperties); 188 } 189 function getStyleRuleCssText(currentStyle, styleProperties) { 190 var rules = []; 191 if(currentStyle) { 192 for(var i = 0; i < styleProperties.length; i++) { 193 var stylePropertyValue = ASPx.Str.Trim(currentStyle.getPropertyValue(styleProperties[i])) + ""; 194 if(stylePropertyValue) 195 rules.push(styleProperties[i] + ": " + stylePropertyValue); 196 } 197 } 198 return rules.join(";"); 199 } 200 function updateTableCellStyleSheetRule(tableClassName, styleSheet, cssText, isHeaderCell, forceAdd) { 201 if(!cssText || !cssText.length) 202 return; 203 var selector = "." + tableClassName + " tr > " + (isHeaderCell ? "th" : "td"); 204 updateStyleSheetRule(styleSheet, selector, cssText, forceAdd); 205 } 206 function updateStyleSheetRule(styleSheet, selector, cssText, forceAdd) { 207 if(!forceAdd) { 208 var rule = ASPx.GetStyleSheetRules(selector.substring(1)); 209 if(rule) 210 rule.style.cssText = cssText; 211 else 212 forceAdd = true; 213 } 214 if(forceAdd) 215 ASPx.AddStyleSheetRule(styleSheet, selector, cssText); 216 } 217 BootstrapCore.updateTableCellStyleSheetRules = function(forceAdd) { 218 if(BootstrapCore.IsBootstrap3) { 219 var styleSheet = ASPx.GetCurrentStyleSheet(); 220 if(styleSheet) { 221 var container = createTestElement(); 222 var tableElement = document.createElement("table"); 223 var tableBody = document.createElement("tbody"); 224 tableElement.appendChild(tableBody); 225 container.appendChild(tableElement); 226 var row = document.createElement("tr"); 227 var cell = document.createElement("td"); 228 row.appendChild(cell); 229 tableBody.appendChild(row); 230 var rowWithHeaderCell = document.createElement("tr"); 231 var headerCell = document.createElement("th"); 232 rowWithHeaderCell.appendChild(headerCell); 233 tableBody.appendChild(rowWithHeaderCell); 234 document.body.appendChild(container); 235 var tableClassName = BootstrapCssSelectors.Table; 236 var tableBorderedClassName = BootstrapCssSelectors.TableBordered; 237 var tableSmallClassName = BootstrapCssSelectors.TableSmall; 238 tableElement.className = tableClassName; 239 updateTableCellStyleSheetRule(tableClassName, styleSheet, getTableCellStyleRuleCssText(cell, true, true), true, forceAdd); 240 updateTableCellStyleSheetRule(tableClassName, styleSheet, getTableCellStyleRuleCssText(headerCell, true, true), false, forceAdd); 241 cell.className = ASPx.BootstrapCssSelectors.Active; 242 var tableActiveCssClass = "dxbs-table-active"; 243 var tableActiveCssText = getStyleRuleCssText(ASPx.GetCurrentStyle(cell), ["background-color"]); 244 updateStyleSheetRule(styleSheet, "." + tableActiveCssClass, tableActiveCssText, forceAdd); 245 cell.className = ""; 246 tableElement.className = tableBorderedClassName; 247 updateTableCellStyleSheetRule(tableBorderedClassName, styleSheet, getTableCellStyleRuleCssText(cell, true, false), true, forceAdd); 248 updateTableCellStyleSheetRule(tableBorderedClassName, styleSheet, getTableCellStyleRuleCssText(headerCell, true, false), false, forceAdd); 249 tableElement.className = tableSmallClassName; 250 updateTableCellStyleSheetRule(tableSmallClassName, styleSheet, getTableCellStyleRuleCssText(cell, false, true), true, forceAdd); 251 updateTableCellStyleSheetRule(tableSmallClassName, styleSheet, getTableCellStyleRuleCssText(headerCell, false, true), false, forceAdd); 252 document.body.removeChild(container); 253 } 254 } 255 }; 256 var existingColors = {}; 257 BootstrapCore.createColorItemsRules = function () { 258 var colorElements = document.querySelectorAll("[data-color]"); 259 var cssText = ""; 260 for (var i = 0; i < colorElements.length; i++) { 261 var colorElement = colorElements[i]; 262 var colorValue = ASPx.Attr.GetAttribute(colorElement, "data-color"); 263 if(existingColors[colorValue]) 264 continue; 265 existingColors[colorValue] = true; 266 cssText += "[data-color=\"" + colorValue + "\"],\n[data-item-color=\"" + colorValue + "\"]:before { background-color: " + colorValue + "; }\n"; 267 } 268 if (cssText) 269 BootstrapCore.createStylesBlock(cssText, "colors" + ASPx.CreateGuid()); 270 }; 271 BootstrapCore.createColorRule = function(c) { 272 if(existingColors[c]) 273 return; 274 existingColors[c] = true; 275 ASPx.AddStyleSheetRule(ASPx.GetCurrentStyleSheet(), "[data-color=\"" + c + "\"],\n[data-item-color=\"" + c + "\"]:before", "background-color: " + c + ";"); 276 }; 277 BootstrapCore.getActualBgColor = function (el) { 278 var color = ASPx.GetCurrentStyle(el).backgroundColor; 279 var c = ASPx.Color.ColorToHexadecimal(color, true); 280 if(c.a < 1) { 281 var bgColor = ASPx.GetCurrentStyle(el.parentNode).backgroundColor; 282 var bg; 283 while(el.parentNode && el.parentNode.nodeType == 1 && (bg = ASPx.Color.ColorToHexadecimal(bgColor, true)).a === 0) 284 bgColor = ASPx.GetCurrentStyle(el = el.parentNode).backgroundColor; 285 c.r = Math.round(((1 - c.a) * bg.r) + (c.a * c.r)); 286 c.g = Math.round(((1 - c.a) * bg.g) + (c.a * c.g)); 287 c.b = Math.round(((1 - c.a) * bg.b) + (c.a * c.b)); 288 } 289 return "rgb(" + c.r + "," + c.g + "," + c.b + ")"; 290 }; 291 var createdStylesBlockKeys = {}; 292 BootstrapCore.removeStylesBlock = function(key) { 293 var stylesBlock = document.getElementById(key + "_styles"); 294 if(stylesBlock) 295 ASPx.RemoveElement(stylesBlock); 296 }; 297 BootstrapCore.createStylesBlock = function(cssText, key, container) { 298 key = key + "_styles"; 299 var styleElement = null; 300 if(key) { 301 if(createdStylesBlockKeys[key]) { 302 styleElement = document.getElementById(key); 303 if(styleElement) 304 ASPx.RemoveElement(styleElement); 305 } 306 createdStylesBlockKeys[key] = true; 307 } 308 styleElement = document.createElement("STYLE"); 309 styleElement.appendChild(document.createTextNode(cssText)); 310 if(container === undefined) 311 container = ASPx.GetHeadElementOrCreateIfNotExist(document);
312 container.appendChild(styleElement); 313 styleElement.id = key; 314 }; 315 BootstrapCore.initializeAccentColorRelatedSelectors = function(forceAddCssRule) { 316 var linkEl = document.createElement("A"); 317 linkEl.href = ASPx.AccessibilityEmptyUrl; 318 linkEl.className = ASPx.BootstrapCssSelectors.HiddenLayout; 319 ASPx.DOM.ChangeDOM(function () { 320 document.body.appendChild(linkEl); 321 ASPx.DOM.CalculateStyles(function () { 322 var accentColor = ASPx.Color.ColorToHexadecimal(ASPx.GetCurrentStyle(linkEl).color); 323 ASPx.DOM.ChangeDOM(function() { 324 updateStyleSheetRule(ASPx.GetCurrentStyleSheet(), ".dx-accent-color", "color: " + accentColor, forceAddCssRule); 325 ASPx.RemoveElement(linkEl); 326 }); 327 }); 328 }); 329 }; 330 function createBootstrapStateItemClass() { 331 var stateClass = ASPx.CreateClass(ASPx.StateItem, { 332 Clone: function() { 333 return new stateClass(this.name, this.classNames, this.cssTexts, this.postfixes, 334 this.imageObjs, this.imagePostfixes, this.kind, this.disableApplyingStyleToLink); 335 }, 336 Apply: function(element) { 337 this.changeState(element, true); 338 }, 339 Cancel: function(element) { 340 this.changeState(element, false); 341 }, 342 changeState: function(element, condition) { 343 if(!this.enabled) return; 344 var elements = this.GetElements(element); 345 for(var i = 0; i < elements.length; i++) { 346 if(elements[i]) 347 this.changeClassName(elements[i], this.GetResultClassName(i), condition); 348 } 349 }, 350 changeClassName: function(el, className, condition) { 351 if (!!className) 352 ASPx.DOM.ToggleCssClass(el, className, condition); 353 }, 354 ForceRedrawAppearance: function() { } 355 }); 356 return stateClass; 357 } 358 var bootstrapStateItemClass; 359 BootstrapCore.AddStateItems = function(callback) { 360 ASPx.GetStateController().withCustomStateItemType(bootstrapStateItemClass || (bootstrapStateItemClass = createBootstrapStateItemClass()), callback); 361 }; 362 ASPx.BootstrapCore = BootstrapCore; 363 ASPx.BootstrapCssSelectors = BootstrapCssSelectors; 364 ASPx.BuildBSCssClass = function() { 365 return ASPx.Data.CollectionToArray(arguments) 366 .map(function (c) { return BootstrapCssSelectors[c] || c; }).join(" "); 367 }; 368 ASPx.CreatePatchedClass = function(baseClass, properties, patch) { 369 var patchedBaseClass = ASPx.CreateClass(baseClass, patch); 370 return ASPx.CreateClass(patchedBaseClass, properties || {}); 371 }; 372 if(BootstrapCore.CheckReferences) 373 ASPx.attachToReady(detectBootstrapFramework); 374 function detectBootstrapFramework() { 375 var testElement = createTestElement(); 376 testElement.className = "input-group ms-1"; 377 document.body.appendChild(testElement); 378 var style = ASPx.GetCurrentStyle(testElement); 379 var exists = true; 380 if (BootstrapCore.BootstrapMode === "Bootstrap3") { 381 exists = style.display.indexOf("table") > -1; 382 } 383 else if (BootstrapCore.BootstrapMode === "Bootstrap4") { 384 exists = style.display.indexOf("flex") > -1 && 385 style["margin-left"].indexOf("0") > -1; 386 } 387 else if (BootstrapCore.BootstrapMode === "Bootstrap5") { 388 exists = style.display.indexOf("flex") > -1 && 389 style["margin-left"].indexOf("0") === -1; 390 } 391 document.body.removeChild(testElement); 392 if (!exists) { 393 var version = parseInt(ASPx.BootstrapCore.BootstrapMode.substr(9)); 394 console.error("Bootstrap " + version + " required by DevExpress Bootstrap controls is not linked to the page. Add a bootstrap.css link to the page for the controls to work properly."); 395 } 396 } 397 function createTestElement() { 398 var testElement = document.createElement("div"); 399 testElement.style.position = "absolute"; 400 testElement.style.top = ASPx.InvalidPosition + "px"; 401 testElement.style.left = ASPx.InvalidPosition + "px"; 402 return testElement; 403 } 404 ASPx.attachToLoad(function() { 405 ASPx.BootstrapCore.updateTableCellStyleSheetRules(true); 406 ASPx.BootstrapCore.initializeAccentColorRelatedSelectors(true); 407 }); 408})(dx || (dx = {})); 409 410},13);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.