define([
  "exports",
  "./../emby-apiclient/connectionmanager.js",
  "./../dom.js",
  "./../common/globalize.js",
  "./../layoutmanager.js",
  "./../common/itemmanager/itemmanager.js",
  "./../imageloader/imageloader.js",
  "./../dialoghelper/dialoghelper.js",
  "./../emby-elements/emby-button/emby-button.js",
  "./../emby-elements/emby-scroller/emby-scroller.js",
  "./../emby-elements/emby-itemscontainer/emby-itemscontainer.js",
  "./../approuter.js",
  "./../focusmanager.js",
  "./../listview/listview.js",
  "./../shortcuts.js",
  "./../browser.js",
  "./../common/textencoding.js",
], function (
  _exports,
  _connectionmanager,
  _dom,
  _globalize,
  _layoutmanager,
  _itemmanager,
  _imageloader,
  _dialoghelper,
  _embyButton,
  _embyScroller,
  _embyItemscontainer,
  _approuter,
  _focusmanager,
  _listview,
  _shortcuts,
  _browser,
  _textencoding,
) {
  function onCancelClick(e) {
    _dialoghelper.default.close(this.closest(".actionSheet"));
  }
  function getTextLinkButton(item) {
    var href = _approuter.default.getRouteUrl(item);
    return (
      '<a is="emby-linkbutton" class="button-link noautofocus actionsheetPreviewTextItem mediaInfoItem" data-href="' +
      href +
      '" href="' +
      href +
      '">' +
      _textencoding.default.htmlEncode(item.Name) +
      "</a>"
    );
  }
  function onItemsContainerUpgraded() {
    return this.querySelector(".itemsContainer").resume({ refresh: !0 });
  }
  function refreshItemsContainer() {
    var itemsContainer = this.querySelector(".itemsContainer");
    return itemsContainer.resume
      ? onItemsContainerUpgraded.call(this)
      : (function (instance, itemsContainer) {
          return new Promise(function (resolve, reject) {
            _dom.default.addEventListener(
              itemsContainer,
              "upgraded",
              function () {
                onItemsContainerUpgraded.call(instance).then(resolve, reject);
              },
              { once: !0 },
            );
          });
        })(this, itemsContainer);
  }
  function getListViewItemFromInputItem(option, options) {
    var isSelected,
      item = {
        Name:
          option.Name || option.name || option.textContent || option.innerText,
        ServerId: option.ServerId || null,
        MediaType: option.MediaType || null,
        IsFolder: option.IsFolder,
        Type: option.Type,
        Overview: option.Overview,
        PrimaryImageAspectRatio: option.PrimaryImageAspectRatio,
        RunTimeTicks: option.RunTimeTicks,
        IndexNumber: option.IndexNumber,
        IndexNumberEnd: option.IndexNumberEnd,
        SupportsResume: option.SupportsResume,
        ParentIndexNumber: option.ParentIndexNumber,
        ProductionYear: option.ProductionYear,
        PremiereDate: option.PremiereDate,
        SeriesName: option.SeriesName,
        NameSubtitle: option.nameSubtitle,
        Artists: option.Artists,
        ArtistItems: option.ArtistItems,
        AlbumArtists: option.AlbumArtists,
        Composers: option.Composers,
        AlbumArtist: option.AlbumArtist,
        Album: option.Album,
        AlbumId: option.AlbumId,
        SeriesId: option.SeriesId,
        SeasonId: option.SeasonId,
        SeasonName: option.SeasonName,
        ImageTags: option.ImageTags,
        BackdropImageTags: option.BackdropImageTags,
        PrimaryImageTag: option.PrimaryImageTag,
        AlbumPrimaryImageTag: option.AlbumPrimaryImageTag,
        SeriesPrimaryImageTag: option.SeriesPrimaryImageTag,
        ParentThumbItemId: option.ParentThumbItemId,
        ParentThumbImageTag: option.ParentThumbImageTag,
        ParentLogoItemId: option.ParentLogoItemId,
        ParentLogoImageTag: option.ParentLogoImageTag,
        ParentBackdropItemId: option.ParentBackdropItemId,
        ParentBackdropImageTags: option.ParentBackdropImageTags,
        hasDivider: option.dividerAfter,
      };
    return (
      options.idProperty && null != option[options.idProperty]
        ? (item.Id = option[options.idProperty])
        : null != option.Id
        ? (item.Id = option.Id)
        : null != option.id && "" !== option.id
        ? (item.Id = option.id)
        : null != option.value
        ? (item.Id = option.value)
        : (item.Id = option.Name || option.name),
      options.multiple
        ? ((isSelected =
            (options.emptyValueSetEqualsAll &&
              !options.selectedValuesClone.length) ||
            options.selectedValuesClone.includes(item.Id)),
          (item.Selected = isSelected))
        : (item.Selected =
            option.selected ||
            option.Selected ||
            options.selectedValuesClone.includes(item.Id)),
      (item.Icon =
        option.icon ||
        option.Icon ||
        (item.Selected && options.hasItemSelectionState ? "&#xe5ca;" : null)),
      (item.iconClass = option.iconClass),
      (item.asideText = option.asideText),
      (item.asideIcon = option.asideIcon),
      (item.ShortOverview = option.secondaryText || option.title),
      (item.hideWithFinePointer = option.hideWithFinePointer),
      item
    );
  }
  function getItemsFn(options) {
    return function (query) {
      if (((query = query || {}), options.getItems))
        return (function (options, query) {
          return options.getItems(query).then(function (result) {
            for (
              var items = result.Items, i = 0, length = items.length;
              i < length;
              i++
            )
              items[i] = getListViewItemFromInputItem(items[i], options);
            return result;
          });
        })(options, query);
      for (
        var inputItems = options.items || [],
          items = [],
          i = 0,
          length = inputItems.length;
        i < length;
        i++
      ) {
        var item = getListViewItemFromInputItem(inputItems[i], options);
        items.push(item);
      }
      var totalRecordCount = items.length,
        items = items.slice(query.StartIndex || 0);
      return (
        null != query.length &&
          items.length > query.length &&
          (items.length = Math.min(items.length, query.length)),
        Promise.resolve({ Items: items, TotalRecordCount: totalRecordCount })
      );
    };
  }
  function getListOptions() {
    return {
      renderer: _listview.default,
      options: (function (options) {
        var listItemBodyClass,
          iconClass,
          asideTextClass,
          menuItemClass = "actionSheetMenuItem",
          fields =
            (options.menuItemClass &&
              (menuItemClass += " " + options.menuItemClass),
            options.iconRight &&
              (menuItemClass += " actionSheetMenuItem-iconright"),
            options.multiple
              ? (listItemBodyClass = "actionsheetListItemBody-multiple")
              : (_layoutmanager.default.tv &&
                  (menuItemClass += " actionSheetMenuItem-tv"),
                options.hasItemIcon ||
                  options.hasItemSelectionState ||
                  (menuItemClass += " actionSheetMenuItem-noicon"),
                (listItemBodyClass = "actionsheetListItemBody"),
                options.iconRight &&
                  (listItemBodyClass += " actionsheetListItemBody-iconright"),
                (iconClass =
                  "actionsheetMenuItemIcon listItemIcon listItemIcon-transparent md-icon"),
                (asideTextClass = "actionSheetItemAsideText")),
            options.fields),
          overviewLines = 2,
          fields =
            (fields ||
              ((fields = ["Name"]),
              options.showNameSubtitle && fields.push("NameSubtitle"),
              options.multiple || fields.push("ShortOverview"),
              options.showOverview &&
                (fields.push("Overview"), (overviewLines = 3))),
            options.multiple && fields.unshift("ItemCheckbox"),
            {
              action: options.multiple ? "togglecheckbox" : "custom",
              fields: fields,
              draggable: !1,
              multiSelect: !1,
              contextMenu: !1,
              hoverPlayButton: !1,
              itemClass: menuItemClass,
              listItemBodyClassName: listItemBodyClass,
              iconClass: iconClass,
              listItemBodyTextClass: "actionSheetItemText",
              fillEmptyTextlines: !1,
              enableDefaultIcon: !0 === options.enableDefaultIcon,
              highlight: options.highlight,
              border: options.border,
              artist: options.artist,
              asideTextClass: asideTextClass,
              asideIconClass: (
                (asideTextClass || "") + " actionSheetItemAsideIcon"
              ).trim(),
              image:
                !options.multiple &&
                (!0 === options.hasItemIcon ||
                  !0 === options.hasItemImage ||
                  !0 === options.hasItemSelectionState),
              checkboxAction: "toggleitemselected",
              enableUserDataButtons: !1,
              moreButton: !1,
              mediaInfo: !1,
              textLinks: !1,
              enableSideMediaInfo: !1,
              overviewLines: overviewLines,
              iconSpacing: !0,
            }),
          menuItemClass = "actionSheetItemImageContainer";
        return (
          options.useListViewSizing ||
            ((menuItemClass += " actionSheetItemImageContainer-customsize"),
            !1 !== options.useCustomImageContainerWidth &&
              (menuItemClass += " actionSheetItemImageContainer-customwidth")),
          (options.hasItemSelectionState || options.hasItemIcon) &&
            (menuItemClass += " actionSheetItemImageContainer-transparent"),
          (fields.imageContainerClass = menuItemClass),
          fields
        );
      })(this),
      virtualScrollLayout: "vertical-list",
    };
  }
  function callUpdateElement(itemsContainer, options) {
    for (
      var items = itemsContainer.querySelectorAll(
          itemsContainer.getItemSelector(),
        ),
        i = 0,
        length = items.length;
      i < length;
      i++
    ) {
      var elem = items[i];
      !(function (element, item, options) {
        var classList;
        element &&
          (classList = element.classList) &&
          (item && item.Selected
            ? classList.add("autofocus")
            : classList.remove("autofocus"),
          item && item.hideWithFinePointer
            ? classList.add("actionSheetMenuItem-hiddenfinepointer")
            : classList.remove("actionSheetMenuItem-hiddenfinepointer"),
          !1 === options.highlight) &&
          ((classList = element.querySelector(".listItem-content").classList),
          item && item.hasDivider
            ? classList.add("listItem-border")
            : classList.remove("listItem-border"));
      })(elem, itemsContainer.getItemFromElement(elem), options);
    }
  }
  function ActionSheet() {}
  Object.defineProperty(_exports, "__esModule", { value: !0 }),
    (_exports.default = void 0),
    require(["css!modules/actionsheet/actionsheet.css", "material-icons"]),
    (ActionSheet.prototype.show = function (options) {
      _layoutmanager.default.tv ||
        _browser.default.iOS ||
        _browser.default.osx ||
        (options.highlight = !1);
      var dialogOptions = {
          removeOnClose: !0,
          enableHistory: options.enableHistory,
          autoFocus: !1,
          refocus: options.refocus,
          autoCenter: !1,
          transparentBackground: !0,
          positionTo: options.positionTo,
          positionX: options.positionX,
          positionY: options.positionY,
          transformOrigin: options.transformOrigin,
          preventOverflow: options.preventOverflow,
          minWidthToElement: options.minWidthToElement,
          positionClientX: options.positionClientX,
          positionClientY: options.positionClientY,
          offsetLeft: options.offsetLeft,
          offsetTop: options.offsetTop,
          blurBackground: options.blurBackground,
          setCurrentFocusScope: options.setCurrentFocusScope,
          setDialogSize: !1,
        },
        useVirtualScroller =
          null != options.getItems && options.enableVirtualScroller,
        isFullscreen =
          (useVirtualScroller && (dialogOptions.fixedSize = !0),
          _layoutmanager.default.tv && !1 !== options.autoTvLayout
            ? (dialogOptions.size = "fullscreen")
            : (dialogOptions.modal = !1),
          "fullscreen" === dialogOptions.size),
        dlg =
          (options.hasItemImage &&
            ((options.paddedScroller = !0), (options.useListViewSizing = !0)),
          isFullscreen || (options.paddedScroller = !0),
          _dialoghelper.default.createDialog(dialogOptions)),
        instance = this,
        dialogOptions =
          ((instance.dlg = dlg).classList.add("actionSheet"),
          _layoutmanager.default.tv &&
            dlg.classList.add("actionSheet-focusscale"),
          (_layoutmanager.default.tv ||
            isFullscreen ||
            options.hasItemSelectionState) &&
            (dlg.classList.add("dlg-autofocus"),
            _layoutmanager.default.tv || options.hasItemSelectionState) &&
            dlg.classList.add("dlg-autofocus-force"),
          isFullscreen ||
            (useVirtualScroller &&
              dlg.classList.add(
                "actionSheet-virtualscroll",
                "dialog-fullscreen-lowres",
              ),
            _layoutmanager.default.tv ||
              (dlg.classList.add(
                "actionSheet-automobile",
                "actionSheet-largefont",
              ),
              options.multiple && dlg.classList.add("actionSheet-smallfont")),
            !1 !== options.blur &&
              _dom.default.allowBackdropFilter() &&
              dlg.classList.add("dialog-blur")),
          options.dialogClass && dlg.classList.add(options.dialogClass),
          "");
      !options.hasItemIcon ||
        options.hasItemAsideIcon ||
        options.hasItemAsideText ||
        !1 === options.iconRight ||
        (options.iconRight = !0),
        options.iconRight &&
          !isFullscreen &&
          (options.useCustomImageContainerWidth = !1),
        isFullscreen
          ? (dialogOptions +=
              '<button is="paper-icon-button-light" class="btnCloseActionSheet btnCloseActionSheet-tv hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl">&#xE5C4;</i></button>')
          : useVirtualScroller &&
            (dialogOptions +=
              '<button is="paper-icon-button-light" class="btnCloseActionSheet btnCloseActionSheet-hideNonFullscreen btnCloseActionSheet-tv hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl">&#xE5C4;</i></button>');
      ((!options.title ||
        options.hasItemIcon ||
        options.hasItemImage ||
        options.hasItemSelectionState) &&
        !isFullscreen) ||
        dlg.classList.add("actionsheet-centered");
      for (
        var selectNoneText,
          previewHtml = "",
          headerClass =
            (options.item &&
              (previewHtml = (function (options, item) {
                var html = "",
                  apiClient =
                    ((html +=
                      '<div class="actionsheetItemPreview flex flex-direction-row">'),
                    _connectionmanager.default.getApiClient(item)),
                  imageUrl = (imageUrlInfo = _imageloader.default.getImageUrl(
                    item,
                    apiClient,
                    { height: 60, width: 200 },
                  )).imgUrl,
                  imgClass = "",
                  round = "MusicArtist" === item.Type,
                  html = imageUrl
                    ? ((imageUrlInfo = imageUrlInfo.aspect || 1),
                      (imgClass =
                        (imgClass += " actionsheetItemPreviewImage-bg") +
                        " actionsheetItemPreviewImage-bg-" +
                        (shape =
                          _imageloader.default.getShapeFromAspect(
                            imageUrlInfo,
                          ))),
                      round &&
                        "square" === shape &&
                        (imgClass += " actionsheetItemPreviewImage-round"),
                      html +
                        ('<div class="' + imgClass.trim()) +
                        '" style="aspect-ratio:' +
                        imageUrlInfo +
                        ";background-image:url(" +
                        imageUrl +
                        ');"></div>')
                    : ((imgClass +=
                        " actionsheetItemPreviewImage-iconcontainer"),
                      round &&
                        (imgClass += " actionsheetItemPreviewImage-round"),
                      (html =
                        html +
                        ('<div class="' + imgClass.trim()) +
                        '"><i class="actionsheetItemPreviewImage-icon md-icon autortl">') +
                        _itemmanager.default.getDefaultIcon(item) +
                        "</i></div>"),
                  lines =
                    ((html += '<div class="actionsheetItemPreviewContent">'),
                    []),
                  shape =
                    (item.SeriesName
                      ? item.SeriesId
                        ? lines.push(
                            getTextLinkButton({
                              Type: "Series",
                              Id: item.SeriesId,
                              Name: item.SeriesName,
                              IsFolder: !0,
                              ServerId: item.ServerId,
                            }),
                          )
                        : lines.push(
                            _textencoding.default.htmlEncode(
                              item.SeriesName || "",
                            ),
                          )
                      : "Program" === item.Type &&
                        lines.push(
                          _textencoding.default.htmlEncode(item.Name || ""),
                        ),
                    _textencoding.default.htmlEncode(
                      _itemmanager.default.getDisplayName(item, {}) || "",
                    )),
                  imageUrlInfo =
                    '<div class="actionsheetPreviewTextItem mediaInfoItem">' +
                    shape +
                    "</div>",
                  round =
                    ("Audio" !== item.MediaType ||
                      _layoutmanager.default.tv ||
                      !1 === options.linkToItem ||
                      (imageUrlInfo +=
                        '<a is="emby-linkbutton" title="' +
                        shape +
                        '" style="font-weight:inherit;" href="' +
                        _approuter.default.getRouteUrl(item) +
                        '" class="flex-shrink-zero actionsheetPreviewTextItem mediaInfoItem button-link button-link-color-inherit"><i class="md-icon" style="font-size:160%;">&#xe88f;</i></a>'),
                    lines.push(imageUrlInfo),
                    "Server" === item.Type &&
                      (apiClient &&
                        apiClient.serverVersion() &&
                        lines.push(apiClient.serverVersion()),
                      apiClient) &&
                      apiClient.serverAddress() &&
                      lines.push(apiClient.serverAddress()),
                    "User" === item.Type &&
                      options.showServerName &&
                      (imageUrl = apiClient.serverName()) &&
                      lines.push(_textencoding.default.htmlEncode(imageUrl)),
                    item.IsFolder &&
                    item.AlbumArtists &&
                    item.AlbumArtists.length
                      ? lines.push(
                          getTextLinkButton({
                            Type: "MusicArtist",
                            Id: item.AlbumArtists[0].Id,
                            Name: item.AlbumArtists[0].Name,
                            ServerId: item.ServerId,
                          }),
                        )
                      : item.ArtistItems && item.ArtistItems.length
                      ? lines.push(
                          getTextLinkButton({
                            Type: "MusicArtist",
                            Id: item.ArtistItems[0].Id,
                            Name: item.ArtistItems[0].Name,
                            ServerId: item.ServerId,
                          }),
                        )
                      : item.AlbumArtists &&
                        item.AlbumArtists.length &&
                        lines.push(
                          getTextLinkButton({
                            Type: "MusicArtist",
                            Id: item.AlbumArtists[0].Id,
                            Name: item.AlbumArtists[0].Name,
                            ServerId: item.ServerId,
                          }),
                        ),
                    []);
                item.Album && item.AlbumId
                  ? round.push(
                      getTextLinkButton({
                        Type:
                          "Photo" === item.MediaType
                            ? "PhotoAlbum"
                            : "MusicAlbum",
                        Id: item.AlbumId,
                        Name: item.Album,
                        ServerId: item.ServerId,
                      }),
                    )
                  : item.Album &&
                    round.push(
                      '<div class="actionsheetPreviewTextItem mediaInfoItem">' +
                        _textencoding.default.htmlEncode(item.Album) +
                        "</div>",
                    ),
                  item.ProductionYear &&
                    "Episode" !== item.Type &&
                    round.push(
                      '<div class="actionsheetPreviewTextItem mediaInfoItem">' +
                        item.ProductionYear +
                        "</div>",
                    ),
                  round.length && lines.push(round.join(""));
                for (
                  var i = 0, length = Math.min(lines.length, 3);
                  i < length;
                  i++
                )
                  html =
                    1 <= i
                      ? (html +=
                          '<div class="actionsheetItemPreviewText mediaInfoItems secondaryText">') +
                        lines[i] +
                        "</div>"
                      : (html +=
                          '<div class="actionsheetItemPreviewText mediaInfoItems actionsheetItemPreviewText-main">') +
                        lines[i] +
                        "</div>";
                return (html = html + "</div>" + "</div>");
              })(options, options.item)),
            _layoutmanager.default.tv || (dialogOptions += previewHtml),
            options.title &&
              ((headerClass = "actionSheetTitle"),
              options.hideTitleWhenNotFullscreen &&
                !isFullscreen &&
                (headerClass += " actionSheetTitle-hideNonFullscreen"),
              (dialogOptions =
                (dialogOptions += '<h3 class="' + headerClass + '">') +
                options.title +
                "</h3>")),
            options.text &&
              (dialogOptions =
                (dialogOptions += '<p class="actionSheetText">') +
                options.text +
                "</p>"),
            "actionSheetScroller focuscontainer-x"),
          scrollSliderClass =
            (isFullscreen
              ? ((headerClass += " actionSheetScroller-fullscreen"),
                useVirtualScroller &&
                  (headerClass += " actionSheetScroller-fullscreen-virtual"))
              : (useVirtualScroller && (headerClass += " flex-grow"),
                options.paddedScroller &&
                  (headerClass += " actionSheetScroller-padded")),
            _layoutmanager.default.tv &&
              (headerClass += " actionSheetScroller-focusscale"),
            (options.title || options.text) &&
              (headerClass += " actionSheetScroller-withheader"),
            " actionsheetScrollSlider scrollSlider flex flex-direction-column itemsContainer"),
          isFullscreen =
            (isFullscreen ||
              (options.multiple && !useVirtualScroller) ||
              !1 !== options.highlight ||
              options.paddedScroller ||
              (useVirtualScroller
                ? (headerClass += " actionsheetScrollSlider-bottompadded")
                : (scrollSliderClass +=
                    " actionsheetScrollSlider-bottompadded")),
            options.multiple &&
              ((scrollSliderClass += " actionsheet-scrollSlider-multiple"),
              _layoutmanager.default.tv) &&
              (scrollSliderClass += " actionsheet-scrollSlider-multiple-tv"),
            ""),
          btnCloseActionSheets =
            (useVirtualScroller &&
              (isFullscreen += ' data-virtualscrolllayout="vertical-grid"'),
            (dialogOptions =
              (dialogOptions =
                dialogOptions +
                ('<div is="emby-scroller" data-horizontal="false" data-focusscroll="true" class="' +
                  headerClass +
                  '">') +
                ('<div is="emby-itemscontainer" class="' +
                  scrollSliderClass +
                  ' vertical-list"' +
                  isFullscreen +
                  ">")) +
              "</div>" +
              "</div>"),
            options.bottomText &&
              (dialogOptions =
                (dialogOptions +=
                  '<div class="actionSheetBottomText fieldDescription">') +
                options.bottomText +
                "</div>"),
            options.multiple &&
              useVirtualScroller &&
              ((dialogOptions +=
                '<div class="flex align-items-center justify-content-flex-start text-align-start" style="width:100%;"><div style="padding:1em .75em 1em .75em;" class="flex flex-grow align-items-center justify-content-center">'),
              (headerClass = "btnActionSheetSelectNone"),
              options.selectAllOnSelectNone
                ? ((selectNoneText = _globalize.default.translate("SelectAll")),
                  (headerClass += " dlg-close"))
                : (selectNoneText = _globalize.default.translate("SelectNone")),
              (dialogOptions =
                dialogOptions +
                '<button type="button" is="emby-button" class="button-link ' +
                headerClass +
                '">' +
                selectNoneText +
                "</button></div></div>")),
            (dlg.innerHTML = dialogOptions),
            dlg.querySelectorAll(".btnCloseActionSheet")),
          i = 0,
          length = btnCloseActionSheets.length;
        i < length;
        i++
      )
        btnCloseActionSheets[i].addEventListener("click", onCancelClick);
      scrollSliderClass = dlg.querySelector(".btnActionSheetSelectNone");
      return (
        scrollSliderClass &&
          scrollSliderClass.addEventListener("click", function () {
            (options.selectedValuesClone = []),
              this.classList.contains("dlg-close")
                ? _dialoghelper.default.close(dlg)
                : dlg.querySelector(".itemsContainer").refreshItems();
          }),
        new Promise(function (resolve, reject) {
          var selectedItem, isResolved;
          options.selectedValuesClone = (options.selectedValues || []).slice(0);
          var itemsContainer = dlg.querySelector(".itemsContainer"),
            openPromise =
              (itemsContainer.addEventListener("action-null", function (e) {
                var _selectedItem2;
                options.multiple ||
                  ((e = e.detail.item),
                  (selectedItem = e),
                  (e = options.resolveWithSelectedItem
                    ? selectedItem
                    : null == (e = selectedItem)
                    ? void 0
                    : e.Id),
                  !options.resolveOnClick ||
                    (options.resolveOnClick.indexOf &&
                      -1 ===
                        options.resolveOnClick.indexOf(
                          null == (_selectedItem2 = selectedItem)
                            ? void 0
                            : _selectedItem2.Id,
                        )) ||
                    (resolve(e), (isResolved = !0)),
                  _dialoghelper.default.close(dlg));
              }),
              (itemsContainer.fetchData = getItemsFn(options)),
              (itemsContainer.getListOptions = getListOptions.bind(options)),
              itemsContainer.addEventListener("change", function (e) {
                var arr,
                  value,
                  e = e.target.closest("input"),
                  itemValue = _shortcuts.default.getItemFromChildNode(
                    e,
                    null,
                    this,
                  ).Id;
                (arr = options.selectedValuesClone),
                  (value = itemValue),
                  -1 < (value = arr.indexOf(value)) && arr.splice(value, 1),
                  e.checked && options.selectedValuesClone.push(itemValue);
              }),
              (itemsContainer.afterRefresh = function () {
                itemsContainer.virtualScroller ||
                  callUpdateElement(itemsContainer, options),
                  _layoutmanager.default.tv &&
                    itemsContainer.insertAdjacentHTML(
                      "afterbegin",
                      previewHtml,
                    );
              }),
              new Promise(function (resolve, reject) {
                dlg.addEventListener("opened", resolve);
              })),
            closePromise = _dialoghelper.default.open(dlg);
          (useVirtualScroller
            ? Promise.resolve()
            : refreshItemsContainer.call(dlg)
          )
            .then(function () {
              var timeout, refreshPromise;
              return (
                (dlg.dialogOptions.setDialogSize = !0),
                _dialoghelper.default.positionDialog(dlg),
                options.timeout &&
                  (timeout = setTimeout(function () {
                    _dialoghelper.default.close(dlg);
                  }, options.timeout)),
                useVirtualScroller &&
                  (refreshPromise = refreshItemsContainer.call(dlg)),
                openPromise.then(function () {
                  return (
                    (refreshPromise || Promise.resolve()).then(
                      function () {
                        var skipIfNotEnabled;
                        this.classList.contains("dlg-autofocus") &&
                          ((skipIfNotEnabled = !this.classList.contains(
                            "dlg-autofocus-force",
                          )),
                          _focusmanager.default.autoFocus(
                            this.querySelector(".itemsContainer"),
                            { skipIfNotEnabled: skipIfNotEnabled },
                          ) ||
                            (skipIfNotEnabled &&
                              !_focusmanager.default.isAutoFocusEnabled()) ||
                            _focusmanager.default.autoFocus(this, {
                              skipIfNotEnabled: skipIfNotEnabled,
                            }));
                      }.bind(dlg),
                    ),
                    itemsContainer.virtualScroller &&
                      itemsContainer.virtualScroller.onResized(),
                    closePromise.then(function () {
                      var _selectedItem3;
                      if (
                        ((instance.dlg = null),
                        timeout && (clearTimeout(timeout), (timeout = null)),
                        !isResolved)
                      )
                        return null !=
                          (_selectedItem3 = options.multiple
                            ? options.selectedValuesClone
                            : options.resolveWithSelectedItem
                            ? selectedItem
                            : null == (_selectedItem3 = selectedItem)
                            ? void 0
                            : _selectedItem3.Id)
                          ? (options.callback &&
                              options.callback(_selectedItem3),
                            _selectedItem3)
                          : Promise.reject();
                    })
                  );
                })
              );
            })
            .then(resolve, reject);
        })
      );
    }),
    (ActionSheet.prototype.refreshItems = function () {
      var _this$dlg =
        null == (_this$dlg = this.dlg)
          ? void 0
          : _this$dlg.querySelector(".itemsContainer");
      _this$dlg && _this$dlg.refreshItems();
    }),
    (ActionSheet.prototype.isShowing = function () {
      return null != this.dlg;
    }),
    (ActionSheet.prototype.autoFocus = function (options) {
      console.log("focusing actionsheet"),
        _focusmanager.default.autoFocus(this.dlg, options);
    }),
    (ActionSheet.prototype.close = function () {
      var dlg = this.dlg;
      dlg && _dialoghelper.default.close(dlg);
    }),
    (ActionSheet.prototype.destroy = function () {
      this.dlg = null;
    }),
    (_exports.default = {
      show: function (options) {
        var actionSheet = new ActionSheet();
        return actionSheet.show(options).then(
          function (result) {
            return actionSheet.destroy(), Promise.resolve(result);
          },
          function (result) {
            return actionSheet.destroy(), Promise.reject(result);
          },
        );
      },
      constructor: ActionSheet,
    });
});
