hunk.code_window:             // or at least for the duration of the click debounce. This makes
               // a 'real' debounce creation useless. Also, during the debouncing
               // part, the button is disabled without any visual effect.
               $button.addClass('pe-none');
               Promise.resolve(dom.DEBOUNCE && concurrency.delay(dom.DEBOUNCE)).then(function () {
                   $button.removeClass('pe-none');
                   const restore = dom.addButtonLoadingEffect($button[0]);
                   return Promise.resolve(result).then(restore).guardedCatch(restore);
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit:             Promise.resolve(dom.DEBOUNCE && delay(dom.DEBOUNCE)).then(function () {
  
hunk.file_path: addons/web/static/src/legacy/js/core/dom.js
hunk.type: replace
file: /** @odoo-module */
  
  import { createTourMethods } from "@point_of_sale/../tests/tours/helpers/utils";
  
  class Do {
      clickOrderline(name, totalQuantity) {
          let trigger = `.splitbill-screen li.orderline .product-name:contains("${name}")`;
          if (totalQuantity) {
              trigger += ` ~ .info-list .info:contains("${totalQuantity}")`;
          }
          return [
              {
                  content: `click '${name}' orderline with total quantity of '${totalQuantity}'`,
                  trigger,
              },
          ];
      }
      clickBack() {
          return [
              {
                  content: "click back button",
                  trigger: `.splitbill-screen .button.back`,
              },
          ];
      }
      clickPay() {
          return [
              {
                  content: "click pay button",
                  trigger: `.splitbill-screen .pay-button .button`,
              },
          ];
      }
  }
  
  class Check {
      orderlineHas(name, totalQuantity, splitQuantity) {
          return [
              {
                  content: `'${name}' orderline has total quantity of '${totalQuantity}'`,
                  trigger: `.splitbill-screen li.orderline .product-name:contains("${name}") ~ .info-list .info:contains("${totalQuantity}")`,
                  run: () => {},
              },
              {
                  content: `'${name}' orderline has '${splitQuantity}' quantity to split`,
                  trigger: `.splitbill-screen li.orderline .product-name:contains("${name}") ~ .info-list .info em:contains("${splitQuantity}")`,
                  run: () => {},
              },
          ];
      }
      subtotalIs(amount) {
          return [
              {
                  content: `total amount of split is '${amount}'`,
                  trigger: `.splitbill-screen .order-info .subtotal:contains("${amount}")`,
              },
          ];
      }
  }
  
  class Execute {}
  
  // FIXME: this is a horrible hack to export an object as named exports.
  // eslint-disable-next-line no-undef
  Object.assign(__exports, createTourMethods("SplitBillScreen", Do, Check, Execute));
  