jedison 1.12.0 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3370,6 +3370,7 @@ class EditorRadios extends EditorBoolean {
3370
3370
  titles: getSchemaXOption(this.instance.schema, "enumTitles") || ["false", "true"],
3371
3371
  id: this.getIdFromPath(this.instance.path),
3372
3372
  titleHidden: getSchemaXOption(this.instance.schema, "titleHidden"),
3373
+ titleIconClass: getSchemaXOption(this.instance.schema, "titleIconClass"),
3373
3374
  inline: getSchemaXOption(this.instance.schema, "format") === "radios-inline",
3374
3375
  info: this.getInfo()
3375
3376
  });
@@ -3442,6 +3443,7 @@ class EditorBooleanCheckbox extends EditorBoolean {
3442
3443
  description: this.getDescription(),
3443
3444
  id: this.getIdFromPath(this.instance.path),
3444
3445
  titleHidden: getSchemaXOption(this.instance.schema, "titleHidden"),
3446
+ titleIconClass: getSchemaXOption(this.instance.schema, "titleIconClass"),
3445
3447
  info: this.getInfo()
3446
3448
  });
3447
3449
  }
@@ -4091,7 +4093,8 @@ class EditorObject extends Editor {
4091
4093
  propertiesToggleContent: getSchemaXOption(this.instance.schema, "propertiesToggleContent") ?? this.instance.jedison.translator.translate("propertiesToggle"),
4092
4094
  collapseToggleContent: getSchemaXOption(this.instance.schema, "collapseToggleContent") ?? this.instance.jedison.translator.translate("collapseToggle"),
4093
4095
  addPropertyContent: getSchemaXOption(this.instance.schema, "addPropertyContent") ?? this.instance.jedison.translator.translate("objectAddProperty"),
4094
- isAccordion: false
4096
+ isAccordion: false,
4097
+ titleIconClass: getSchemaXOption(this.instance.schema, "titleIconClass")
4095
4098
  };
4096
4099
  }
4097
4100
  build() {
@@ -4595,7 +4598,8 @@ class EditorArray extends Editor {
4595
4598
  arrayDeleteAllContent: getSchemaXOption(this.instance.schema, "arrayDeleteAllContent") ?? this.instance.jedison.translator.translate("arrayDeleteAll"),
4596
4599
  arrayFooterDeleteAll: getSchemaXOption(this.instance.schema, "arrayFooterDeleteAll") ?? this.instance.jedison.getOption("arrayFooterDeleteAll"),
4597
4600
  arrayFooterDeleteAllContent: getSchemaXOption(this.instance.schema, "arrayFooterDeleteAllContent") ?? this.instance.jedison.translator.translate("arrayDeleteAll"),
4598
- collapseToggleContent: getSchemaXOption(this.instance.schema, "collapseToggleContent") ?? this.instance.jedison.translator.translate("collapseToggle")
4601
+ collapseToggleContent: getSchemaXOption(this.instance.schema, "collapseToggleContent") ?? this.instance.jedison.translator.translate("collapseToggle"),
4602
+ titleIconClass: getSchemaXOption(this.instance.schema, "titleIconClass")
4599
4603
  });
4600
4604
  this.control.jsonData.input.value = JSON.stringify(this.instance.getValue(), null, 2);
4601
4605
  }
@@ -5517,6 +5521,7 @@ class EditorMultiple extends Editor {
5517
5521
  }
5518
5522
  }
5519
5523
  refreshUI() {
5524
+ var _a;
5520
5525
  this.refreshDisabledState();
5521
5526
  this.control.childrenSlot.innerHTML = "";
5522
5527
  this.control.childrenSlot.appendChild(this.instance.activeInstance.ui.control.container);
@@ -5533,9 +5538,15 @@ class EditorMultiple extends Editor {
5533
5538
  }
5534
5539
  if (this.switcherInput === "modal") {
5535
5540
  const childControl = this.instance.activeInstance.ui.control;
5541
+ const infoContainer = childControl.infoContainer;
5536
5542
  const titleEl = childControl.legendText || childControl.label;
5537
- if (titleEl) {
5538
- titleEl.after(this.control.switcher.container);
5543
+ if (infoContainer) {
5544
+ infoContainer.after(this.control.switcher.container);
5545
+ this.control.header.style.display = "none";
5546
+ } else if (titleEl) {
5547
+ const infoEl = (_a = childControl.info) == null ? void 0 : _a.container;
5548
+ const anchor = infoEl && infoEl.parentNode ? infoEl : titleEl;
5549
+ anchor.after(this.control.switcher.container);
5539
5550
  this.control.header.style.display = "none";
5540
5551
  }
5541
5552
  }
@@ -7466,6 +7477,7 @@ class Theme {
7466
7477
  const right = document.createElement("div");
7467
7478
  const legend = document.createElement("legend");
7468
7479
  const legendText = document.createElement("label");
7480
+ const icon = document.createElement("i");
7469
7481
  const infoContainer = document.createElement("span");
7470
7482
  const dummyInput = document.createElement("input");
7471
7483
  const legendLabelId = "legend-label-" + config.id;
@@ -7481,6 +7493,11 @@ class Theme {
7481
7493
  legendText.classList.add("jedi-legend");
7482
7494
  legendText.setAttribute("id", legendLabelId);
7483
7495
  legendText.innerHTML = config.content;
7496
+ if (config.titleIconClass) {
7497
+ this.addIconClass(icon, config.titleIconClass);
7498
+ icon.style.marginRight = "4px";
7499
+ }
7500
+ legendText.style.marginRight = "4px";
7484
7501
  infoContainer.classList.add("jedi-editor-info-container");
7485
7502
  infoContainer.setAttribute("for", dummyInputId);
7486
7503
  dummyInput.setAttribute("aria-hidden", "true");
@@ -7492,6 +7509,9 @@ class Theme {
7492
7509
  }
7493
7510
  legend.appendChild(left);
7494
7511
  legend.appendChild(right);
7512
+ if (config.titleIconClass) {
7513
+ left.appendChild(icon);
7514
+ }
7495
7515
  left.appendChild(legendText);
7496
7516
  left.appendChild(infoContainer);
7497
7517
  legendText.appendChild(dummyInput);
@@ -7515,6 +7535,7 @@ class Theme {
7515
7535
  const legendLabelId = "legend-label-" + config.id;
7516
7536
  const legend = document.createElement("legend");
7517
7537
  const legendText = document.createElement("label");
7538
+ const icon = document.createElement("i");
7518
7539
  const dummyInput = document.createElement("input");
7519
7540
  legend.classList.add("jedi-editor-legend");
7520
7541
  legend.style.fontSize = "inherit";
@@ -7523,13 +7544,19 @@ class Theme {
7523
7544
  legendText.classList.add("jedi-label");
7524
7545
  legendText.innerHTML = config.content;
7525
7546
  legendText.setAttribute("id", legendLabelId);
7547
+ legendText.style.marginRight = "4px";
7526
7548
  dummyInput.setAttribute("aria-hidden", "true");
7527
7549
  dummyInput.setAttribute("type", "hidden");
7528
7550
  dummyInput.setAttribute("disabled", "");
7529
7551
  this.visuallyHidden(dummyInput);
7552
+ if (config.titleIconClass) {
7553
+ this.addIconClass(icon, config.titleIconClass);
7554
+ icon.style.marginRight = "4px";
7555
+ legend.appendChild(icon);
7556
+ }
7530
7557
  legend.appendChild(legendText);
7531
7558
  legendText.appendChild(dummyInput);
7532
- return { legend, legendText };
7559
+ return { legend, legendText, icon };
7533
7560
  }
7534
7561
  /**
7535
7562
  * Represents a caption for the content of its parent fieldset
@@ -7547,10 +7574,12 @@ class Theme {
7547
7574
  }
7548
7575
  if (config.titleIconClass) {
7549
7576
  this.addIconClass(icon, config.titleIconClass);
7577
+ icon.style.marginRight = "4px";
7550
7578
  }
7551
7579
  if (config.titleIconClass) {
7552
7580
  label.appendChild(icon);
7553
7581
  }
7582
+ labelText.style.marginRight = "4px";
7554
7583
  label.appendChild(labelText);
7555
7584
  return { label, labelText, icon };
7556
7585
  }
@@ -7568,13 +7597,17 @@ class Theme {
7568
7597
  labelText.innerHTML = config.content;
7569
7598
  if (config.titleIconClass) {
7570
7599
  this.addIconClass(icon, config.titleIconClass);
7600
+ icon.style.marginRight = "4px";
7571
7601
  }
7572
7602
  dummyInput.setAttribute("aria-hidden", "true");
7573
7603
  dummyInput.setAttribute("type", "hidden");
7574
7604
  dummyInput.setAttribute("disabled", "");
7575
7605
  dummyInput.setAttribute("id", config.for);
7576
7606
  this.visuallyHidden(dummyInput);
7577
- label.appendChild(icon);
7607
+ if (config.titleIconClass) {
7608
+ label.appendChild(icon);
7609
+ }
7610
+ labelText.style.marginRight = "4px";
7578
7611
  label.appendChild(labelText);
7579
7612
  label.appendChild(dummyInput);
7580
7613
  return { label, labelText, icon, dummyInput };
@@ -8027,7 +8060,6 @@ class Theme {
8027
8060
  container.style.display = "inline-block";
8028
8061
  info.setAttribute("href", "#");
8029
8062
  info.classList.add("jedi-info-button");
8030
- info.style.marginLeft = "4px";
8031
8063
  if (isObject(config.attributes)) {
8032
8064
  for (const [key, value] of Object.entries(config.attributes)) {
8033
8065
  info.setAttribute(key, value);
@@ -8121,13 +8153,13 @@ class Theme {
8121
8153
  }
8122
8154
  container.appendChild(label);
8123
8155
  if (isObject(config.info)) {
8124
- label.appendChild(info.container);
8156
+ container.appendChild(info.container);
8125
8157
  }
8126
8158
  container.appendChild(placeholder);
8127
8159
  container.appendChild(description);
8128
8160
  container.appendChild(messages);
8129
8161
  container.appendChild(actions);
8130
- return { container, placeholder, label, labelText, description, messages, actions };
8162
+ return { container, placeholder, label, info, labelText, description, messages, actions };
8131
8163
  }
8132
8164
  /**
8133
8165
  * Object control is a card containing multiple editors.
@@ -8196,7 +8228,8 @@ class Theme {
8196
8228
  const { legend, infoContainer, legendText, right } = this.getLegend({
8197
8229
  content: config.title,
8198
8230
  id: config.id,
8199
- titleHidden: config.titleHidden
8231
+ titleHidden: config.titleHidden,
8232
+ titleIconClass: config.titleIconClass
8200
8233
  });
8201
8234
  if (((_a = config == null ? void 0 : config.info) == null ? void 0 : _a.variant) === "modal") {
8202
8235
  this.infoAsModal(info, config.id, config.info);
@@ -8213,7 +8246,9 @@ class Theme {
8213
8246
  }
8214
8247
  fieldset.appendChild(legend);
8215
8248
  if (isObject(config.info)) {
8216
- infoContainer.appendChild(info.container);
8249
+ while (info.container.firstChild) {
8250
+ infoContainer.appendChild(info.container.firstChild);
8251
+ }
8217
8252
  }
8218
8253
  fieldset.appendChild(collapse);
8219
8254
  collapse.appendChild(body);
@@ -8346,7 +8381,8 @@ class Theme {
8346
8381
  const { legend, legendText, infoContainer, right } = this.getLegend({
8347
8382
  content: config.title,
8348
8383
  id: config.id,
8349
- titleHidden: config.titleHidden
8384
+ titleHidden: config.titleHidden,
8385
+ titleIconClass: config.titleIconClass
8350
8386
  });
8351
8387
  const description = this.getDescription({
8352
8388
  content: config.description
@@ -8375,7 +8411,9 @@ class Theme {
8375
8411
  }
8376
8412
  fieldset.appendChild(legend);
8377
8413
  if (isObject(config.info)) {
8378
- infoContainer.appendChild(info.container);
8414
+ while (info.container.firstChild) {
8415
+ infoContainer.appendChild(info.container.firstChild);
8416
+ }
8379
8417
  }
8380
8418
  fieldset.appendChild(collapse);
8381
8419
  collapse.appendChild(body);
@@ -8430,6 +8468,7 @@ class Theme {
8430
8468
  jsonData,
8431
8469
  legend,
8432
8470
  legendText,
8471
+ infoContainer,
8433
8472
  switcherSlot,
8434
8473
  footerAddBtn,
8435
8474
  deleteAllBtn,
@@ -8575,13 +8614,13 @@ class Theme {
8575
8614
  }
8576
8615
  container.appendChild(label);
8577
8616
  if (isObject(config.info)) {
8578
- label.appendChild(info.container);
8617
+ container.appendChild(info.container);
8579
8618
  }
8580
8619
  container.appendChild(br);
8581
8620
  container.appendChild(description);
8582
8621
  container.appendChild(messages);
8583
8622
  container.appendChild(actions);
8584
- return { container, label, labelText, description, messages, actions };
8623
+ return { container, label, info, labelText, description, messages, actions };
8585
8624
  }
8586
8625
  /**
8587
8626
  * A Textarea
@@ -8617,13 +8656,13 @@ class Theme {
8617
8656
  }
8618
8657
  container.appendChild(label);
8619
8658
  if (isObject(config.info)) {
8620
- label.appendChild(info.container);
8659
+ container.appendChild(info.container);
8621
8660
  }
8622
8661
  container.appendChild(input);
8623
8662
  container.appendChild(description);
8624
8663
  container.appendChild(messages);
8625
8664
  container.appendChild(actions);
8626
- return { container, input, label, labelText, description, messages, actions };
8665
+ return { container, input, label, info, labelText, description, messages, actions };
8627
8666
  }
8628
8667
  adaptForTableTextareaControl(control) {
8629
8668
  this.visuallyHidden(control.label);
@@ -8665,7 +8704,7 @@ class Theme {
8665
8704
  this.infoAsModal(info, config.id, config.info);
8666
8705
  }
8667
8706
  if (isObject(config.info)) {
8668
- label.appendChild(info.container);
8707
+ container.appendChild(info.container);
8669
8708
  }
8670
8709
  container.appendChild(input);
8671
8710
  container.appendChild(description);
@@ -8699,7 +8738,8 @@ class Theme {
8699
8738
  const { legend, legendText } = this.getRadioLegend({
8700
8739
  content: config.title,
8701
8740
  id: config.id,
8702
- for: config.id
8741
+ for: config.id,
8742
+ titleIconClass: config.titleIconClass
8703
8743
  });
8704
8744
  const messages = this.getMessagesSlot({
8705
8745
  id: messagesId
@@ -8743,7 +8783,7 @@ class Theme {
8743
8783
  container.appendChild(fieldset);
8744
8784
  fieldset.appendChild(legend);
8745
8785
  if (isObject(config.info)) {
8746
- legendText.appendChild(info.container);
8786
+ legendText.after(info.container);
8747
8787
  }
8748
8788
  radioControls.forEach((radioControl, index2) => {
8749
8789
  fieldset.appendChild(radioControls[index2]);
@@ -8787,7 +8827,8 @@ class Theme {
8787
8827
  const { label, labelText } = this.getLabel({
8788
8828
  for: config.id,
8789
8829
  text: config.title,
8790
- visuallyHidden: config.titleHidden
8830
+ visuallyHidden: config.titleHidden,
8831
+ titleIconClass: config.titleIconClass
8791
8832
  });
8792
8833
  const description = this.getDescription({
8793
8834
  content: config.description,
@@ -8808,7 +8849,7 @@ class Theme {
8808
8849
  formGroup.appendChild(input);
8809
8850
  formGroup.appendChild(label);
8810
8851
  if (isObject(config.info)) {
8811
- label.appendChild(info.container);
8852
+ formGroup.appendChild(info.container);
8812
8853
  }
8813
8854
  formGroup.appendChild(description);
8814
8855
  formGroup.appendChild(messages);
@@ -8828,7 +8869,8 @@ class Theme {
8828
8869
  const { legend, legendText } = this.getRadioLegend({
8829
8870
  content: config.title,
8830
8871
  id: config.id,
8831
- for: config.id
8872
+ for: config.id,
8873
+ titleIconClass: config.titleIconClass
8832
8874
  });
8833
8875
  const messages = this.getMessagesSlot({
8834
8876
  id: messagesId
@@ -8871,7 +8913,7 @@ class Theme {
8871
8913
  container.appendChild(fieldset);
8872
8914
  fieldset.appendChild(legend);
8873
8915
  if (isObject(config.info)) {
8874
- legendText.appendChild(info.container);
8916
+ legendText.after(info.container);
8875
8917
  }
8876
8918
  checkboxControls.forEach((checkboxControl, index2) => {
8877
8919
  fieldset.appendChild(checkboxControls[index2]);
@@ -8913,7 +8955,8 @@ class Theme {
8913
8955
  const { label, labelText } = this.getLabel({
8914
8956
  for: config.id,
8915
8957
  text: config.title,
8916
- visuallyHidden: config.titleHidden
8958
+ visuallyHidden: config.titleHidden,
8959
+ titleIconClass: config.titleIconClass
8917
8960
  });
8918
8961
  const messages = this.getMessagesSlot({
8919
8962
  id: messagesId
@@ -8938,7 +8981,7 @@ class Theme {
8938
8981
  }
8939
8982
  container.appendChild(label);
8940
8983
  if (isObject(config.info)) {
8941
- label.appendChild(info.container);
8984
+ container.appendChild(info.container);
8942
8985
  }
8943
8986
  container.appendChild(input);
8944
8987
  container.appendChild(description);
@@ -9316,13 +9359,14 @@ class ThemeBootstrap3 extends Theme {
9316
9359
  }
9317
9360
  getLegend(config) {
9318
9361
  const superLegend = super.getLegend(config);
9319
- const { legend } = superLegend;
9362
+ const { legend, infoContainer } = superLegend;
9320
9363
  legend.classList.add("panel-heading");
9321
9364
  legend.classList.add("pull-left");
9322
9365
  legend.style.margin = "0";
9323
9366
  legend.style.display = "flex";
9324
9367
  legend.style.justifyContent = "space-between";
9325
9368
  legend.style.alignItems = "center";
9369
+ infoContainer.style.marginRight = "4px";
9326
9370
  return superLegend;
9327
9371
  }
9328
9372
  getRadioLegend(config) {
@@ -9334,11 +9378,12 @@ class ThemeBootstrap3 extends Theme {
9334
9378
  return superRadioLegend;
9335
9379
  }
9336
9380
  getLabel(config) {
9337
- const labelObj = super.getLabel(config);
9338
- if (labelObj.icon.classList) {
9339
- labelObj.icon.style.marginRight = "5px";
9340
- }
9341
- return labelObj;
9381
+ return super.getLabel(config);
9382
+ }
9383
+ getInfo(config = {}) {
9384
+ const info = super.getInfo(config);
9385
+ info.container.style.marginRight = "4px";
9386
+ return info;
9342
9387
  }
9343
9388
  getCard() {
9344
9389
  const card = super.getCard();
@@ -9505,11 +9550,11 @@ class ThemeBootstrap3 extends Theme {
9505
9550
  }
9506
9551
  getSwitcherModal(config) {
9507
9552
  const control = super.getSwitcherModal(config);
9508
- control.container.style.marginLeft = "4px";
9509
- control.trigger.classList.add("label", "label-default");
9553
+ control.trigger.classList.add("label", "label-primary");
9510
9554
  control.dialogBody.classList.add("btn-group-vertical");
9555
+ control.dialogBody.style.width = "100%";
9511
9556
  control.optionButtons.forEach((btn) => {
9512
- btn.classList.add("btn", "btn-default");
9557
+ btn.classList.add("btn", "btn-default", "btn-block");
9513
9558
  });
9514
9559
  return control;
9515
9560
  }
@@ -9570,7 +9615,7 @@ class ThemeBootstrap3 extends Theme {
9570
9615
  tab.link.style.display = "flex";
9571
9616
  tab.link.style.alignItems = "center";
9572
9617
  tab.arrayActions.style.flexShrink = "0";
9573
- tab.arrayActions.style.whiteSpace = "nowrap";
9618
+ tab.arrayActions.classList.add("text-nowrap");
9574
9619
  tab.text.style.flex = "1";
9575
9620
  tab.text.style.marginLeft = "5px";
9576
9621
  tab.text.style.marginRight = "5px";
@@ -9579,7 +9624,7 @@ class ThemeBootstrap3 extends Theme {
9579
9624
  if (warning) {
9580
9625
  tab.text.removeChild(warning);
9581
9626
  warning.style.flexShrink = "0";
9582
- warning.style.whiteSpace = "nowrap";
9627
+ warning.classList.add("text-nowrap");
9583
9628
  tab.link.appendChild(warning);
9584
9629
  }
9585
9630
  }
@@ -9724,9 +9769,8 @@ class ThemeBootstrap4 extends Theme {
9724
9769
  } else {
9725
9770
  chevron.textContent = "▾";
9726
9771
  }
9727
- chevron.style.display = "inline-block";
9772
+ chevron.classList.add("d-inline-block", "mr-2");
9728
9773
  chevron.style.transition = "transform 0.1s ease";
9729
- chevron.style.marginRight = "0.5em";
9730
9774
  toggle.appendChild(chevron);
9731
9775
  toggle.appendChild(document.createTextNode(config.title));
9732
9776
  const collapse = document.createElement("div");
@@ -9766,21 +9810,23 @@ class ThemeBootstrap4 extends Theme {
9766
9810
  }
9767
9811
  getLegend(config) {
9768
9812
  const superLegend = super.getLegend(config);
9769
- const { legend } = superLegend;
9813
+ const { legend, infoContainer } = superLegend;
9770
9814
  legend.classList.add("card-header");
9771
9815
  legend.classList.add("d-flex");
9772
9816
  legend.classList.add("justify-content-between");
9773
9817
  legend.classList.add("align-items-center");
9774
9818
  legend.classList.add("float-left");
9775
9819
  legend.classList.add("py-2");
9820
+ infoContainer.classList.add("mr-1");
9776
9821
  return superLegend;
9777
9822
  }
9778
9823
  getLabel(config) {
9779
- const labelObj = super.getLabel(config);
9780
- if (labelObj.icon.classList) {
9781
- labelObj.icon.classList.add("mr-1");
9782
- }
9783
- return labelObj;
9824
+ return super.getLabel(config);
9825
+ }
9826
+ getInfo(config = {}) {
9827
+ const info = super.getInfo(config);
9828
+ info.container.classList.add("mr-1");
9829
+ return info;
9784
9830
  }
9785
9831
  getCard() {
9786
9832
  const card = super.getCard();
@@ -9898,7 +9944,7 @@ class ThemeBootstrap4 extends Theme {
9898
9944
  super.adaptForTableRadiosControl(control, td);
9899
9945
  control.container.classList.remove("form-group");
9900
9946
  control.fieldset.classList.remove("card");
9901
- control.fieldset.style.marginBottom = "0";
9947
+ control.fieldset.classList.add("mb-0");
9902
9948
  }
9903
9949
  getCheckboxesControl(config) {
9904
9950
  const control = super.getCheckboxesControl(config);
@@ -9966,18 +10012,17 @@ class ThemeBootstrap4 extends Theme {
9966
10012
  }
9967
10013
  getSwitcherModal(config) {
9968
10014
  const control = super.getSwitcherModal(config);
9969
- control.container.classList.add("ml-1");
9970
- control.trigger.classList.add("badge", "badge-secondary");
10015
+ control.trigger.classList.add("badge", "badge-primary");
9971
10016
  control.dialogBody.classList.add("btn-group", "btn-group-vertical", "w-100");
9972
10017
  control.optionButtons.forEach((btn) => {
9973
- btn.classList.add("btn", "btn-secondary");
10018
+ btn.classList.add("btn", "btn-light");
9974
10019
  });
9975
10020
  return control;
9976
10021
  }
9977
10022
  setSwitcherOptionActive(btn, active) {
9978
10023
  super.setSwitcherOptionActive(btn, active);
9979
10024
  btn.classList.toggle("btn-primary", active);
9980
- btn.classList.toggle("btn-secondary", !active);
10025
+ btn.classList.toggle("btn-light", !active);
9981
10026
  }
9982
10027
  adaptForTableMultipleControl(control, td) {
9983
10028
  super.adaptForTableMultipleControl(control, td);
@@ -10097,7 +10142,6 @@ class ThemeBootstrap4 extends Theme {
10097
10142
  closeBtn.setAttribute("always-enabled", "");
10098
10143
  info.info.setAttribute("data-toggle", "modal");
10099
10144
  info.info.setAttribute("data-target", "#" + modalId);
10100
- info.container.classList.add("ml-1");
10101
10145
  modal.classList.add("modal");
10102
10146
  modal.classList.add("fade");
10103
10147
  modalDialog.classList.add("modal-dialog");
@@ -10199,9 +10243,8 @@ class ThemeBootstrap5 extends Theme {
10199
10243
  } else {
10200
10244
  chevron.textContent = "▾";
10201
10245
  }
10202
- chevron.style.display = "inline-block";
10246
+ chevron.classList.add("d-inline-block", "me-2");
10203
10247
  chevron.style.transition = "transform 0.1s ease";
10204
- chevron.style.marginRight = "0.5em";
10205
10248
  toggle.appendChild(chevron);
10206
10249
  toggle.appendChild(document.createTextNode(config.title));
10207
10250
  const collapse = document.createElement("div");
@@ -10241,24 +10284,28 @@ class ThemeBootstrap5 extends Theme {
10241
10284
  }
10242
10285
  getLegend(config) {
10243
10286
  const superLegend = super.getLegend(config);
10244
- const { legend } = superLegend;
10287
+ const { legend, infoContainer } = superLegend;
10245
10288
  legend.classList.add("card-header");
10246
10289
  legend.classList.add("d-flex");
10247
10290
  legend.classList.add("justify-content-between");
10248
10291
  legend.classList.add("align-items-center");
10249
10292
  legend.classList.add("py-2");
10293
+ infoContainer.classList.add("me-1");
10250
10294
  return superLegend;
10251
10295
  }
10252
10296
  styleLegendWarning(span) {
10253
- span.classList.add("ms-1");
10297
+ span.classList.add("me-1");
10254
10298
  }
10255
10299
  getLabel(config) {
10256
10300
  const labelObj = super.getLabel(config);
10257
- if (labelObj.icon.classList) {
10258
- labelObj.icon.classList.add("me-1");
10259
- }
10301
+ labelObj.label.classList.add("mb-1");
10260
10302
  return labelObj;
10261
10303
  }
10304
+ getInfo(config = {}) {
10305
+ const info = super.getInfo(config);
10306
+ info.container.classList.add("me-1");
10307
+ return info;
10308
+ }
10262
10309
  getCard() {
10263
10310
  const card = super.getCard();
10264
10311
  card.classList.add("card");
@@ -10378,7 +10425,7 @@ class ThemeBootstrap5 extends Theme {
10378
10425
  super.adaptForTableRadiosControl(control, td);
10379
10426
  control.container.classList.remove("mb-3");
10380
10427
  control.fieldset.classList.remove("card");
10381
- control.fieldset.style.marginBottom = "0";
10428
+ control.fieldset.classList.add("mb-0");
10382
10429
  }
10383
10430
  getCheckboxesControl(config) {
10384
10431
  const control = super.getCheckboxesControl(config);
@@ -10439,18 +10486,17 @@ class ThemeBootstrap5 extends Theme {
10439
10486
  }
10440
10487
  getSwitcherModal(config) {
10441
10488
  const control = super.getSwitcherModal(config);
10442
- control.container.classList.add("ms-1");
10443
- control.trigger.classList.add("badge", "bg-secondary");
10489
+ control.trigger.classList.add("badge", "bg-primary");
10444
10490
  control.dialogBody.classList.add("btn-group", "btn-group-vertical", "w-100");
10445
10491
  control.optionButtons.forEach((btn) => {
10446
- btn.classList.add("btn", "btn-secondary");
10492
+ btn.classList.add("btn", "btn-light");
10447
10493
  });
10448
10494
  return control;
10449
10495
  }
10450
10496
  setSwitcherOptionActive(btn, active) {
10451
10497
  super.setSwitcherOptionActive(btn, active);
10452
10498
  btn.classList.toggle("btn-primary", active);
10453
- btn.classList.toggle("btn-secondary", !active);
10499
+ btn.classList.toggle("btn-light", !active);
10454
10500
  }
10455
10501
  adaptForTableMultipleControl(control, td) {
10456
10502
  super.adaptForTableMultipleControl(control, td);
@@ -10567,7 +10613,6 @@ class ThemeBootstrap5 extends Theme {
10567
10613
  closeBtn.setAttribute("always-enabled", "");
10568
10614
  info.info.setAttribute("data-bs-toggle", "modal");
10569
10615
  info.info.setAttribute("data-bs-target", "#" + modalId);
10570
- info.container.classList.add("ms-1");
10571
10616
  modal.classList.add("modal");
10572
10617
  modal.classList.add("fade");
10573
10618
  modalDialog.classList.add("modal-dialog");