import { r as registerInstance, h, H as Host, a as getElement } from './index-b153bfd0.js';
import { g as getIconPath } from './assets-manager-7d6fc08f.js';
import './mer-animated-dots-7cbae6ef.js';
import 'lit';
import 'lit/directives/when.js';
import 'lit/directives/if-defined.js';
import { L as Locale } from './locale-e5107fad.js';
import { u as uncheckIgnoredObjects, a as areSetsEqual } from './uncheck-ignored-4ba48c9e.js';
import { r as renderObjectTypeWithIcon } from './constants-ae6a35f5.js';
import { f as formatDate } from './helpers-b443f9e9.js';
import { c as config } from './config-5a775b7a.js';
import { C as COLUMNS_IDS } from './tabular-grid-render-adb3f7e5.js';
import { s as sortTabularGridColumn } from './tabular-grid-column-sort-1d503b27.js';
import './helpers-102277ef.js';

const mapObjectTypeToComboBoxItemModel = (objectTypeModel) => objectTypeModel.map(objectType => ({
    value: objectType.id,
    caption: objectType.name,
    startImgSrc: objectType.icon
}));

const updateCss = ".custom-icon-text-wrapper {\n  display: flex;\n  align-items: center;\n  gap: var(--spacing-gap-m);\n}\n\n.warning-error-description {\n  display: flex;\n  align-items: center;\n  gap: var(--spacing-gap-m);\n  padding: var(--spacing-padding-m);\n  max-inline-size: 800px;\n  line-height: var(--line-height-spacious);\n}\n\n.warning-error-icon {\n  flex-shrink: 0;\n}\n\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\nbutton.button-secondary {\n  border-color: var(--color-border-neutral-default);\n}\n\n:host {\n  --pill-border-radius: 12px;\n  --pill-padding-inline: var(--spacing-padding-m);\n  --pill-padding-block: var(--spacing-padding-xxs);\n  --pill-font-size: var(--font-size-body-s);\n  display: grid;\n  block-size: 100%;\n  overflow: auto;\n  grid-template-rows: max-content max-content 1fr;\n}\n\n.detail__version, .detail__knowledge-base {\n  padding-inline: var(--spacing-padding-xxl);\n  border-inline-end: 1px solid var(--color-border-surface-on-elevation-1);\n}\n\n.detail__genexus-server {\n  padding-inline-end: var(--spacing-padding-xxl);\n  border-inline-end: 1px solid var(--color-border-surface-on-elevation-1);\n}\n\n.detail__last-full-update {\n  padding-inline-start: var(--spacing-padding-xxl);\n}\n\n.section {\n  display: contents;\n}\n\n.header {\n  display: grid;\n  grid-template-columns: 1fr max-content;\n}\n\n.header__detail {\n  display: grid;\n  row-gap: var(--spacing-gap-xl);\n  grid-auto-columns: max-content;\n  grid-auto-rows: max-content;\n  grid-template-areas: \"detail-heading-gx . . .\" \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__label {\n  color: var(--color-text-neutral-disabled);\n}\n\n.detail__heading-genexus-server {\n  grid-area: detail-heading-gx;\n}\n\n.detail__genexus-server {\n  grid-area: detail-genexus-server;\n}\n.detail__genexus-server > a {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  display: inline-block;\n}\n\n.detail__link {\n  align-items: start;\n  color: var(--color-text-primary-default);\n  text-decoration: underline;\n}\n.detail__link:hover {\n  color: var(--color-text-primary-hover);\n}\n.detail__link:active {\n  color: var(--color-text-primary-pressed);\n}\n\n.detail__knowledge-base {\n  grid-area: detail-knowledge-base;\n}\n\n.detail__version {\n  grid-area: detail-version;\n}\n\n.detail__last-full-update {\n  grid-area: detail-last-full-update;\n}\n\n.filter-container {\n  container-type: inline-size;\n  box-sizing: border-box;\n}\n\n.filter {\n  display: grid;\n  margin-block-start: var(--spacing-padding-xxl);\n  grid-template-areas: \"filter-search filter-types filter-actions filter-kb-properties filter-buttons\";\n  grid-template-columns: 200px 200px 200px max-content 1fr;\n}\n\n@container (max-width: 1100px) {\n  .filter-container > .filter {\n    grid-template-columns: 200px 200px 200px 1fr;\n    grid-template-areas: \"filter-search filter-types filter-actions filter-buttons\" \"filter-kb-properties . . .\";\n    grid-auto-rows: max-content;\n  }\n}\n@container (max-width: 900px) {\n  .filter-container > .filter {\n    grid-template-columns: 1fr 1fr 1fr;\n    grid-template-areas: \"filter-search filter-types filter-actions\" \"filter-kb-properties filter-buttons filter-buttons\";\n    grid-auto-rows: max-content;\n  }\n}\n.filter__search {\n  grid-area: filter-search;\n}\n\n.filter__types {\n  grid-area: filter-types;\n}\n\n.filter__actions {\n  grid-area: filter-actions;\n}\n\n.filter__kb-properties {\n  grid-area: filter-kb-properties;\n}\n\n.filter__buttons {\n  margin-inline-start: auto;\n  grid-area: filter-buttons;\n}\n\n.main {\n  position: relative;\n  display: grid;\n  overflow: auto;\n}\n\n.loader {\n  position: relative;\n  inline-size: 100%;\n  block-size: 100%;\n  inset-block-start: 0;\n}\n\n.tabular-grid {\n  border-radius: 4px;\n  overflow: hidden;\n}\n\n.empty-state {\n  block-size: 100%;\n}\n\n.loader {\n  --elevation-background-color: var(--color-accent-surface-elevation-1);\n}\n\n.messages-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  max-inline-size: 800px;\n  padding: var(--spacing-padding-m) 0;\n  list-style-type: none;\n  display: flex;\n  flex-direction: column;\n  gap: var(--spacing-gap-xxs);\n}\n\n.message-description {\n  line-height: var(--line-height-spacious);\n  display: flex;\n  align-items: center;\n  gap: var(--spacing-gap-m);\n}\n\n.message-icon {\n  flex-shrink: 0;\n}\n\n.tabular-grid.empty-result::part(main) {\n  overflow: hidden;\n}\n\n.input-comments-container {\n  position: relative;\n}\n\n.input-comments {\n  --control-border-color: transparent;\n  padding-block: 0 !important;\n  padding-inline: 0 !important;\n  --line-height-tight: 1.4;\n  block-size: 100%;\n  background-color: var(--color-accent-surface-surface);\n  transition: var(--timing-super-fast) block-size, var(--timing-super-fast) background-color, var(--timing-super-fast) padding-block, var(--timing-super-fast) padding-inline;\n}\n\n.input-comments:focus {\n  position: absolute;\n  block-size: 200px;\n  inline-size: 100%;\n  z-index: 99;\n  background-color: var(--color-accent-surface-elevation-1);\n  padding-block: var(--control-padding-block) !important;\n  padding-inline: var(--control-padding-inline) !important;\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n  background-size: contain;\n  margin-inline-end: 0;\n  --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n  cursor: pointer;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover {\n  --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active {\n  --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n  gap: 0 !important;\n}\n\n.tabular-grid-row-actions > button {\n  justify-content: start;\n}\n\n.pill {\n  --pill-background-color: transparent;\n  --pill-color: transparent;\n  --pill-border-color: transparent;\n  background-color: var(--pill-background-color);\n  color: var(--pill-color);\n  border: 1px solid var(--pill-border-color);\n  inline-size: 100%;\n  padding: var(--pill-padding-block) var(--pill-padding-inline);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: var(--pill-border-radius);\n  position: relative;\n  font-weight: var(--font-style-semi-bold);\n}\n.pill--update, .pill--pending {\n  --pill-background-color: var();\n  --pill-color: var(--color-text-neutral-disabled);\n  --pill-border-color: var();\n}\n.pill--to-merge-marked {\n  --pill-background-color: var();\n  --pill-color: var(--color-border-primary-default);\n  --pill-border-color: var();\n}\n.pill--ignored {\n  --pill-background-color: var(--color-accent-surface-elevation-2);\n  --pill-color: var(--color-text-neutral-on-disabled);\n  --pill-border-color: var(--color-border-neutral-default);\n}\n.pill--pending {\n  --pill-background-color: var(--color-accent-neutral-contrast);\n  --pill-color: var(--color-border-primary-default);\n  --pill-border-color: var(--color-accent-primary-pressed);\n}\n.pill--warning {\n  --pill-background-color: var(--color-accent-warning-contrast);\n  --pill-color: var(--color-border-warning-default);\n  --pill-border-color: var(--color-border-warning-default);\n}\n.pill--error {\n  --pill-background-color: var(--color-accent-error-contrast);\n  --pill-color: var(--color-border-error-default);\n  --pill-border-color: var(--color-border-error-light);\n}\n.pill--updated {\n  --pill-background-color: var(--color-accent-success-contrast);\n  --pill-color: var(--color-border-success-default);\n  --pill-border-color: var(--color-accent-success-default);\n}\n.pill--transitioning {\n  --pill-color: transparent;\n}\n\n.updating-spinner-caption {\n  display: flex;\n  align-items: center;\n  gap: var(--spacing-gap-m);\n  --status-circle-color: transparent;\n  --status-circle-size: $size;\n  --status-circle-inset-inline-start: 16px;\n  --pill-color: var(--color-border-primary-default);\n}\n.updating-spinner-caption::before {\n  display: inline-block;\n  content: \"\";\n  width: 16px;\n  height: 16px;\n  border: calc(16px / 7) solid var(--color-accent-primary-pressed);\n  border-top: calc(16px / 7) solid var(--color-border-primary-on-default);\n  border-radius: 50%;\n  animation: spin var(--timing-regular) linear infinite;\n}\n@keyframes spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n\n.tabular-grid .button-secondary {\n  --control-padding-block: var(--pill-padding-block);\n  --control-padding-inline: var(--pill-padding-inline);\n  font-size: inherit;\n  font-weight: inherit;\n  /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n  padding-block: 0;\n  align-items: center;\n  justify-content: center;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n  pointer-events: none;\n  opacity: 0.5;\n}\n\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n  padding-block: 0;\n  padding-inline: 0;\n}\n\n.tabular-grid-cell::part(actions-icon) {\n  padding-block: var(--spacing-padding-m);\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n  block-size: 100%;\n  display: block;\n  background-size: 16px;\n  padding-inline: var(--spacing-padding-xl);\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n  visibility: hidden;\n  pointer-events: none;\n}\n\n.tabular-grid-row-actions::part(window) {\n  background-color: var(--color-accent-surface-elevation-2) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n  min-inline-size: 200px;\n}";

var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
    if (kind === "a" && !f)
        throw new TypeError("Private accessor was defined without a getter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
        throw new TypeError("Cannot read private member from an object whose class did not declare it");
    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
    if (kind === "m")
        throw new TypeError("Private method is not writable");
    if (kind === "a" && !f)
        throw new TypeError("Private accessor was defined without a setter");
    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
        throw new TypeError("Cannot write private member to an object whose class did not declare it");
    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var _GxIdeTeamDevUpdate_componentLocale, _GxIdeTeamDevUpdate_actionsComboBoxModel, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, _GxIdeTeamDevUpdate_updateCheckedClickedHandler, _GxIdeTeamDevUpdate_reloadClickedHandler, _GxIdeTeamDevUpdate_updateObjectsHandler, _GxIdeTeamDevUpdate_renderActionCellContent, _GxIdeTeamDevUpdate_updateSingleObject, _GxIdeTeamDevUpdate_renderObjectStatus, _GxIdeTeamDevUpdate_renderRows, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, _GxIdeTeamDevUpdate_updatePendingCheckedItems, _GxIdeTeamDevUpdate_searchInputHandler, _GxIdeTeamDevUpdate_actionChangedHandler, _GxIdeTeamDevUpdate_typeChangedHandler, _GxIdeTeamDevUpdate_setInitialObjectsStatus, _GxIdeTeamDevUpdate_loadData, _GxIdeTeamDevUpdate_markPendingObjects, _GxIdeTeamDevUpdate_applyClientFilter, _GxIdeTeamDevUpdate_onRowContextMenuHandler, _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes, _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes, _GxIdeTeamDevUpdate_kbPropertiesChangedHandler, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, _GxIdeTeamDevUpdate_columnSelectorClickedCallback;
const CSS_BUNDLES = [
    "resets/box-sizing",
    "components/tabular-grid",
    "utils/form--full",
    "utils/layout",
    "utils/typography",
    "utils/spacing",
    "chameleon/scrollbar"
];
const CHECKBOX_CHECKED_VALUE = "true";
const CHECKBOX_UNCHECKED_VALUE = "false";
const DETAIL_LABEL_CLASSES = "detail__label body-semi-bold-s";
// icons
const ADD_ICON = getIconPath({
    category: "system",
    name: "add",
    colorType: "on-surface"
});
const EDITED_ICON = getIconPath({
    category: "system",
    name: "edit",
    colorType: "on-surface"
});
const FILTER_ICON = getIconPath({
    category: "window-tools",
    name: "filter",
    colorType: "on-surface"
});
const SEARCH_ICON = getIconPath({
    category: "system",
    name: "search",
    colorType: "on-surface"
});
const SUBSTRACT_ICON = getIconPath({
    category: "system",
    name: "substract",
    colorType: "on-surface"
});
const WARNING_ICON = getIconPath({
    category: "system",
    name: "warning",
    colorType: "warning"
});
const ERROR_ICON = getIconPath({
    category: "system",
    name: "error",
    colorType: "error"
});
const SUCCESS_ICON = getIconPath({
    category: "system",
    name: "check ",
    colorType: "success"
});
const INFO_ICON = getIconPath({
    category: "system",
    name: "information",
    colorType: "on-surface"
});
const REFRESH_ICON = getIconPath({
    category: "gemini-tools",
    name: "reset",
    colorType: "interactive"
});
const GxIdeTeamDevUpdate = class {
    constructor(hostRef) {
        registerInstance(this, hostRef);
        /**
         * The component hard-coded strings translations.
         */
        // eslint-disable-next-line @stencil-community/own-props-must-be-private
        _GxIdeTeamDevUpdate_componentLocale.set(this, void 0);
        _GxIdeTeamDevUpdate_actionsComboBoxModel.set(this, void 0);
        /**
         * Used to determine if pendingItemsCheckedCallback callback has to be called or not.
         * It should be ignored if the grid checkboxes state is changed programmatically, by
         * setting markRow to false once the object has been successfully updated, for example.
         */
        _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser.set(this, true);
        _GxIdeTeamDevUpdate_chGridPendingForUpdateEl.set(this, void 0);
        _GxIdeTeamDevUpdate_updateCheckedClickedHandler.set(this, async () => {
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_updateObjectsHandler, "f").call(this, [...this.markedObjectsSet]);
        });
        _GxIdeTeamDevUpdate_reloadClickedHandler.set(this, async () => {
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
        });
        _GxIdeTeamDevUpdate_updateObjectsHandler.set(this, async (selection) => {
            this.updating = true;
            selection.forEach(itemToUpdate => {
                this.objectsStatusMap.set(itemToUpdate, "updating");
            });
            const updateResult = await this.updateCallback(selection);
            updateResult.forEach(async (objectResult) => {
                const messages = objectResult.messages;
                if (messages.length) {
                    this.objectsMessagesDataMap.set(objectResult.id, objectResult.messages);
                }
                else {
                    // clear messages
                    this.objectsMessagesDataMap.delete(objectResult.id);
                }
                if (objectResult.result === "updated") {
                    this.alreadyUpdatedObjectsIdsSet = new Set(this.alreadyUpdatedObjectsIdsSet).add(objectResult.id);
                    this.objectsStatusMap.set(objectResult.id, "updated");
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(objectResult.id, false);
                }
                else {
                    this.objectsStatusMap.set(objectResult.id, "pending");
                }
            });
            this.updating = false;
        });
        _GxIdeTeamDevUpdate_renderActionCellContent.set(this, (action) => {
            let icon;
            let caption;
            let iconColor;
            if (action === "deleted") {
                icon = SUBSTRACT_ICON;
                caption = __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.delete;
                iconColor = "--color-icon-error-default";
            }
            else if (action === "inserted") {
                icon = ADD_ICON;
                caption = __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.insert;
                iconColor = "--color-icon-success-default";
            }
            else if (action === "modified") {
                icon = EDITED_ICON;
                caption = __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.modify;
                iconColor = "--color-icon-warning-default";
            }
            else if (action === "modified-with-conflicts") {
                icon = WARNING_ICON;
                caption = __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.modifyWithConflicts;
                iconColor = "--color-icon-warning-default";
            }
            else if (!action) {
                // proably is "ignored"
                return null;
            }
            return (h("span", { class: "custom-icon-text-wrapper" }, h("ch-image", { type: "mask", class: "icon-s", src: icon, style: { backgroundColor: `var(${iconColor})` } }), `${caption}`));
        });
        _GxIdeTeamDevUpdate_updateSingleObject.set(this, objectId => async () => {
            const newobjectsStatusMap = new Map(this.objectsStatusMap);
            newobjectsStatusMap.set(objectId, "updating");
            this.objectsStatusMap = newobjectsStatusMap;
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_updateObjectsHandler, "f").call(this, [objectId]);
        });
        _GxIdeTeamDevUpdate_renderObjectStatus.set(this, (objectId) => {
            const status = this.objectsStatusMap.get(objectId);
            const caption = status === "pending" && this.updatePillAsButton
                ? __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").status.update
                : __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").status[status];
            if (status === "updating") {
                return h("span", { class: "updating-spinner-caption" }, caption);
            }
            const classes = `pill pill--${status}`;
            if (this.updatePillAsButton && status === "pending") {
                return (h("button", { class: "button-secondary pill pill--update", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_updateSingleObject, "f").call(this, objectId) }, caption));
            }
            else {
                return h("span", { class: classes }, caption);
            }
        });
        _GxIdeTeamDevUpdate_renderRows.set(this, (type) => {
            let objects;
            if (type === "pending") {
                objects = this.pendingObjectsAfterActionFilter;
            }
            else if (type === "ignored") {
                objects = this.ignoredObjectsAfterActionFilter;
            }
            return objects.map(object => {
                const objectType = {
                    id: object.id,
                    icon: object.typeIcon,
                    name: object.type
                };
                const alreadyUpdated = this.alreadyUpdatedObjectsIdsSet.has(object.id);
                const hideCheckbox = alreadyUpdated || type === "ignored";
                const marked = this.markedObjectsSet.has(object.id);
                const messages = this.objectsMessagesDataMap.get(object.id);
                return (h("ch-tabular-grid-row", { class: "tabular-grid-row", key: object.id, rowid: object.id, ref: (el) => marked && (el === null || el === void 0 ? void 0 : el.setAttribute("marked", "true")) }, h("ch-tabular-grid-cell", { "cell-type": "rich", "row-selector": "true", class: {
                        "tabular-grid-cell": true,
                        "no-checkbox-custom-selector": hideCheckbox
                    }, size: "max-content" }, object.name), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, renderObjectTypeWithIcon(objectType)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, object.description), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, formatDate(object.modifiedOn)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_renderActionCellContent, "f").call(this, object.action)), h("ch-tabular-grid-cell", { class: "tabular-grid-cell tabular-grid-cell--for-pill" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_renderObjectStatus, "f").call(this, object.id)), (messages === null || messages === void 0 ? void 0 : messages.length) && (h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-empty", { class: {
                        "tabular-grid-rowset-empty": true
                    } }, h("ul", { class: "messages-list" }, messages.map(message => {
                    let MESSAGE_ICON;
                    if (message.type === "error") {
                        MESSAGE_ICON = ERROR_ICON;
                    }
                    else if (message.type === "warning") {
                        MESSAGE_ICON = WARNING_ICON;
                    }
                    else if (message.type === "success") {
                        MESSAGE_ICON = SUCCESS_ICON;
                    }
                    else {
                        // info
                        MESSAGE_ICON = INFO_ICON;
                    }
                    return (h("li", { class: "message-description" }, h("ch-image", { class: "icon-s message-icon", src: MESSAGE_ICON }), message.text));
                })))))));
            });
        });
        _GxIdeTeamDevUpdate_rowMarkingChangedHandler.set(this, async (event) => {
            const markedRowsIds = event.detail.rowsId;
            this.markedObjectsSet = new Set(markedRowsIds.filter(markedObjectId => !this.alreadyUpdatedObjectsIdsSet.has(markedObjectId)));
            if (__classPrivateFieldGet(this, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, "f")) {
                __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_updatePendingCheckedItems, "f").call(this, event);
            }
        });
        _GxIdeTeamDevUpdate_updatePendingCheckedItems.set(this, async (event) => {
            __classPrivateFieldSet(this, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, false, "f");
            const addedRowsIds = event.detail.addedRowsId;
            const removedRowsId = event.detail.removedRowsId;
            try {
                const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({
                    itemsChecked: addedRowsIds,
                    itemsUnchecked: removedRowsId
                });
                if (pendingItemCheckedResult === undefined) {
                    // undo check/uncheck
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes, "f").call(this, addedRowsIds, removedRowsId);
                }
                else {
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes, "f").call(this, pendingItemCheckedResult);
                }
            }
            catch (_a) {
                //catch exception if necessary
            }
            finally {
                __classPrivateFieldSet(this, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, true, "f");
            }
        });
        _GxIdeTeamDevUpdate_searchInputHandler.set(this, (event) => {
            this.searchValue = event.detail;
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this);
        });
        // Local Methods Update
        _GxIdeTeamDevUpdate_actionChangedHandler.set(this, (event) => {
            this.selectedAction = event.detail;
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this);
        });
        _GxIdeTeamDevUpdate_typeChangedHandler.set(this, async (event) => {
            this.selectedType = event.detail;
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this);
        });
        _GxIdeTeamDevUpdate_setInitialObjectsStatus.set(this, () => {
            this.pendingAndIgnored.pendingForUpdate.forEach(pendingObject => {
                var _a;
                const status = (_a = pendingObject.status) !== null && _a !== void 0 ? _a : "pending";
                this.objectsStatusMap.set(pendingObject.id, status);
                if (status === "updated") {
                    this.alreadyUpdatedObjectsIdsSet.add(pendingObject.id);
                }
            });
            this.pendingAndIgnored.ignoredObjects.forEach(ignoredObject => {
                var _a;
                const status = (_a = ignoredObject.status) !== null && _a !== void 0 ? _a : "ignored";
                this.objectsStatusMap.set(ignoredObject.id, status);
            });
        });
        _GxIdeTeamDevUpdate_loadData.set(this, async (forceLoad = false) => {
            const filters = {
                search: this.searchValue,
                type: this.selectedType,
                kbProperties: this.kbPropertiesChecked,
                action: this.selectedAction
            };
            try {
                this.loading = true;
                this.objectsMessagesDataMap.clear();
                this.pendingAndIgnored = await this.loadCallback(filters, forceLoad);
                __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_setInitialObjectsStatus, "f").call(this);
                // Is is required to mark/check all objects after loadCallback.
                __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_markPendingObjects, "f").call(this);
            }
            catch (error) {
                // Error handling for update operation
            }
            finally {
                this.loading = false;
            }
        });
        /**
         * Marks all pending objects that have not been committed yet.
         *
         * Iterates through all pending object IDs and adds them to the marked objects set
         * if they are not already in the committed objects set. This effectively identifies
         * and marks all the pending objects that still need to be processed.
         **/
        _GxIdeTeamDevUpdate_markPendingObjects.set(this, () => {
            for (const pendingId of this.pendingIdsSet) {
                if (!this.alreadyUpdatedObjectsIdsSet.has(pendingId)) {
                    this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);
                }
            }
        });
        _GxIdeTeamDevUpdate_applyClientFilter.set(this, () => {
            // this.pendingObjectsAfterActionFilter = this.#filteredObjects(
            //   this.pendingAndIgnored.pendingForUpdate
            // );
            this.pendingObjectsAfterActionFilter =
                this.pendingAndIgnored.pendingForUpdate;
            // this.ignoredObjectsAfterActionFilter = this.#filteredObjects(
            //   this.pendingAndIgnored.ignoredObjects
            // );
            this.ignoredObjectsAfterActionFilter =
                this.pendingAndIgnored.ignoredObjects;
        });
        // #filteredObjects = (objects: ModifiedObject[]): ModifiedObject[] => {
        //   let filtered = objects;
        //   // name or description
        //   if (this.searchValue.length) {
        //     filtered = filtered.filter(object => {
        //       const nameFiltered = object.name
        //         .toLowerCase()
        //         .includes(this.searchValue.toLowerCase());
        //       const descriptionFiltered = object.description
        //         .toLowerCase()
        //         .includes(this.searchValue.toLowerCase());
        //       return nameFiltered || descriptionFiltered;
        //     });
        //   }
        //   return filtered;
        // };
        _GxIdeTeamDevUpdate_onRowContextMenuHandler.set(this, () => async (ev) => {
            ev.preventDefault();
            ev.stopPropagation();
            const selection = await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").getSelectedRows();
            const selectedRowId = (await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").getSelectedCell()).rowId;
            const source = this.pendingIdsSet.has(selectedRowId)
                ? "pending"
                : "ignored";
            let filteredSelection = [];
            // remove selected rows from the other source, if any.
            if (selection.length > 1 && source === "pending") {
                selection.forEach(async (selectedRowId) => {
                    if (this.ignoredIdsSet.has(selectedRowId)) {
                        await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").selectRow(selectedRowId, false);
                    }
                    else {
                        filteredSelection.push(selectedRowId);
                    }
                });
            }
            else if (selection.length > 1 && source === "ignored") {
                selection.forEach(async (selectedRowId) => {
                    if (this.pendingIdsSet.has(selectedRowId)) {
                        await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").selectRow(selectedRowId, false);
                    }
                    else {
                        filteredSelection.push(selectedRowId);
                    }
                });
            }
            else {
                filteredSelection = selection;
            }
            await this.contextMenuCallback(source, {
                selection: filteredSelection,
                clientX: ev.detail.clientX,
                clientY: ev.detail.clientY
            });
        });
        _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes.set(this, async (addedRowsIds, removedRowsId) => {
            if (__classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f")) {
                for (const rowId of addedRowsIds) {
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(rowId, false);
                }
                for (const rowId of removedRowsId) {
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(rowId, true);
                }
            }
        });
        _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes.set(this, async (itemsToToggle) => {
            if (__classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f")) {
                const itemsToCheck = itemsToToggle.itemsToCheck;
                const itemsToUncheck = itemsToToggle.itemsToUncheck;
                // check
                for (const rowId of itemsToCheck) {
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(rowId, true);
                }
                // uncheck
                for (const rowId of itemsToUncheck) {
                    await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(rowId, false);
                }
            }
        });
        _GxIdeTeamDevUpdate_kbPropertiesChangedHandler.set(this, (event) => {
            this.kbPropertiesChecked = event.detail === CHECKBOX_CHECKED_VALUE;
            __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
        });
        _GxIdeTeamDevUpdate_sortTabularGridColumnCallback.set(this, (e) => {
            const columnId = e.detail.columnId;
            let objectProperty;
            let dateType = "string";
            if (columnId === COLUMNS_IDS.lastSynchronized) {
                dateType = "dateString";
            }
            this.pendingObjectsAfterActionFilter = [
                ...sortTabularGridColumn(e, this.pendingObjectsAfterActionFilter, dateType, objectProperty)
            ];
            this.ignoredObjectsAfterActionFilter = [
                ...sortTabularGridColumn(e, this.ignoredObjectsAfterActionFilter, dateType, objectProperty)
            ];
        });
        /**
         * WA: Ignored objects must always remain unchecked.
         * Because `tabular-grid` selects all rows when the checkbox column is toggled,
         * we need to manually unselect the ignored IDs. // TODO: Move this function
         * to common
         */
        _GxIdeTeamDevUpdate_columnSelectorClickedCallback.set(this, async (e) => {
            const allRowsChecked = e.detail;
            if (allRowsChecked) {
                const markedRowsIds = await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").getMarkedRows();
                const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {
                    return this.ignoredIdsSet.has(rowId);
                });
                if (ignoredMarkedRowsIds.length) {
                    uncheckIgnoredObjects(ignoredMarkedRowsIds, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f"));
                }
            }
        });
        this.atLeastOneObjectIsChecked = false;
        this.loading = true;
        this.menuContextAction = undefined;
        this.searchValue = "";
        this.selectedAction = "all-actions";
        this.markedObjectsSet = new Set([]);
        this.alreadyUpdatedObjectsIdsSet = new Set([]);
        this.pendingIdsSet = new Set([]);
        this.ignoredIdsSet = new Set([]);
        this.objectsMessagesDataMap = new Map();
        this.updating = false;
        this.allPendingAreUpdated = false;
        this.kbPropertiesChecked = false;
        this.typesComboBoxModel = undefined;
        this.selectedType = undefined;
        this.isUpdateDisabled = false;
        this.objectsStatusMap = new Map();
        this.contextMenuCallback = undefined;
        this.pendingAndIgnored = {
            pendingForUpdate: [],
            ignoredObjects: []
        };
        this.pendingObjectsAfterActionFilter = [];
        this.ignoredObjectsAfterActionFilter = [];
        this.loadCallback = undefined;
        this.pendingItemsCheckedCallback = undefined;
        this.types = undefined;
        this.updatePillAsButton = false;
        this.updateCallback = undefined;
        this.openServerCallback = undefined;
        this.updateFrom = undefined;
    }
    markedObjectsSetChanged(newMarkedObjectsSet) {
        this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;
    }
    alreadyUpdatedObjectsIdsSetChanged(newUpdatedObjectsIdsSet) {
        const pendingIdsSetAndUpdatedIdsSetAreEqual = areSetsEqual(newUpdatedObjectsIdsSet, this.pendingIdsSet);
        this.allPendingAreUpdated =
            pendingIdsSetAndUpdatedIdsSetAreEqual && this.pendingIdsSet.size > 0;
    }
    objectsStatusMapChanged(newObjectsStatusMap) {
        const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(([, state]) => state === "updating");
        if (!someObjectIsUpdating) {
            this.updating = false;
        }
    }
    pendingAndIgnoredChanged() {
        this.pendingIdsSet.clear(); // before pendingIdsSet.add
        this.ignoredIdsSet.clear(); // before pendingIdsSet.add
        this.objectsMessagesDataMap = new Map();
        this.alreadyUpdatedObjectsIdsSet = new Set();
        this.markedObjectsSet = new Set(); // before #markPendingObjects
        this.pendingAndIgnored.pendingForUpdate.forEach(pending => {
            this.pendingIdsSet.add(pending.id);
        });
        this.pendingAndIgnored.ignoredObjects.forEach(ignored => {
            this.ignoredIdsSet.add(ignored.id);
        });
        __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_markPendingObjects, "f").call(this); // after pendingIdsSet.add and ignoredIdsSet.add
        __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_setInitialObjectsStatus, "f").call(this); // after pendingIdsSet.add and ignoredIdsSet.add
        __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_applyClientFilter, "f").call(this);
    }
    async componentWillLoad() {
        var _a;
        __classPrivateFieldSet(this, _GxIdeTeamDevUpdate_componentLocale, await Locale.getComponentStrings(this.el), "f");
        // Initiate "actions" combo box filter
        __classPrivateFieldSet(this, _GxIdeTeamDevUpdate_actionsComboBoxModel, [
            {
                caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.allActions,
                value: "all-actions"
            },
            {
                caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.insert,
                value: "inserted"
            },
            {
                caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.modify,
                value: "modified"
            },
            {
                caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.modifyWithConflicts,
                value: "modified-with-conflicts"
            },
            {
                caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").actions.delete,
                value: "deleted"
            }
        ], "f");
        // Set type initial value
        this.selectedType = (_a = this.types[0]) === null || _a === void 0 ? void 0 : _a.id;
        this.typesComboBoxModel = mapObjectTypeToComboBoxItemModel(this.types);
    }
    async componentDidLoad() {
        await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
        // initialize "allPendingAreUpdated"
        this.alreadyUpdatedObjectsIdsSetChanged(this.alreadyUpdatedObjectsIdsSet);
    }
    /**
     * Used by the host to instruct the component to force a data reload in the grids.
     */
    async reload() {
        await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
    }
    /**
     * Used by the host to instruct the component to disable the update button.
     */
    async disableUpdate(value) {
        this.isUpdateDisabled = value;
    }
    render() {
        const disableControls = this.updating || this.loading || this.isUpdateDisabled;
        const gridIsEmpty = this.pendingObjectsAfterActionFilter.length === 0 &&
            this.ignoredObjectsAfterActionFilter.length === 0;
        return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body-inline spacing-body-block-start" }, h("div", {
            // header details
            class: "header__detail header__detail-1"
        }, h("p", { class: "detail__heading-genexus-server subtitle-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").commitDetail.title), h("div", {
            // genexus server
            class: "detail__genexus-server field field-block"
        }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").commitDetail.genexusServer), h("button", { class: "detail__link body-regular-s", onClick: this.openServerCallback }, this.updateFrom ? this.updateFrom.serverUrl : "")), h("div", {
            // knowledge base
            class: "detail__knowledge-base field field-block"
        }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").commitDetail.knowledgeBase), h("p", { class: "body-regular-s" }, this.updateFrom ? this.updateFrom.kbName : "")), h("div", {
            // version
            class: "detail__version field field-block"
        }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").commitDetail.version), h("p", { class: "body-regular-s" }, this.updateFrom ? this.updateFrom.versionName : "")), h("div", {
            // last full update
            class: "detail__last-full-update field field-block"
        }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").commitDetail.lastFullUpdate), h("p", { class: "body-regular-s" }, formatDate(this.updateFrom.lastFullUpdate))))), h("div", { class: "filter-container spacing-body-inline" }, h("div", { class: "filter field-group" }, h("ch-edit", {
            // search
            class: "input filter__search", disabled: disableControls, startImgSrc: SEARCH_ICON, accessibleName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.searchAccessibleName, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.searchPlaceholder, type: "search", onInput: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_searchInputHandler, "f"), debounce: config.inputDebounce
        }), h("ch-combo-box-render", {
            // types
            class: "combo-box filter__types", disabled: disableControls, model: this.typesComboBoxModel, value: this.selectedType, accessibleName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.typeAccesibleName, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.typePlaceholder, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_typeChangedHandler, "f")
        }), h("ch-combo-box-render", {
            // actions
            class: "combo-box filter__actions", disabled: disableControls, model: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_actionsComboBoxModel, "f"), value: this.selectedAction, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_actionChangedHandler, "f"), accessibleName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.actionAccesibleName, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.actionPlaceholder
        }), h("ch-checkbox", {
            // kb properties
            class: "checkbox filter__kb-properties", caption: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.kbProperties, checkedValue: CHECKBOX_CHECKED_VALUE, value: CHECKBOX_UNCHECKED_VALUE, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_kbPropertiesChangedHandler, "f"), disabled: disableControls
        }), h("div", { class: "buttons-spacer filter__buttons" }, h("button", {
            // reload button
            class: "button-secondary button-icon-and-text", disabled: disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_reloadClickedHandler, "f")
        }, h("ch-image", { class: "icon-m", src: REFRESH_ICON }), __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.reload), h("button", {
            // update button
            class: "button-primary button-update", disabled: !this.atLeastOneObjectIsChecked || disableControls, onClick: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_updateCheckedClickedHandler, "f")
        }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").filter.update)))), h("div", { class: "main spacing-body" }, !this.loading ? (h("ch-tabular-grid", { class: {
                "tabular-grid": true,
                "objects-tabular-grid": true,
                "disabled-custom-selector": this.updating,
                "empty-result": gridIsEmpty
            }, keyboardNavigationMode: "focus", rowSelectionMode: "multiple", onRowMarkingChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, "f"), onRowContextMenu: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_onRowContextMenuHandler, "f").call(this), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, el, "f")) }, h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: COLUMNS_IDS.name, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.name, columnType: "rich", richRowSelector: !this.allPendingAreUpdated, richRowSelectorMode: "mark", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), onColumnSelectorClicked: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_columnSelectorClickedCallback, "f"), size: "max-content" }), h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: COLUMNS_IDS.type, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.type, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: "max-content" }), h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: COLUMNS_IDS.description, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.description, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: config.tabularGrid.colSize.description }), h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: COLUMNS_IDS.modifiedOn, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.modifiedOn, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: "max-content" }), h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: COLUMNS_IDS.action, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.action, settingable: false, sortable: false, size: "max-content" }), h("ch-tabular-grid-column", {
            // size of this column should the enough for the largest pill, and no more.
            // this prevents layout shifts when pills state changes.
            class: "tabular-grid-column", columnId: COLUMNS_IDS.status, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.status, settingable: false, sortable: false, size: "100px"
        })), !gridIsEmpty
            ? [
                h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.pending), __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_renderRows, "f").call(this, "pending")),
                h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.ignored), __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_renderRows, "f").call(this, "ignored"))
            ]
            : null, h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, gridIsEmpty && (h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { class: "empty-state", isAnimated: true, stateIconSrc: FILTER_ICON, stateTitle: "No object matched your filter" })))))) : (h("gx-ide-loader", { cancelLabel: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").loader.cancelLabel, loaderTitle: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").loader.description, show: true, class: "loader" }))))));
    }
    static get assetsDirs() { return ["gx-ide-assets/team-dev-update"]; }
    get el() { return getElement(this); }
    static get watchers() { return {
        "markedObjectsSet": ["markedObjectsSetChanged"],
        "alreadyUpdatedObjectsIdsSet": ["alreadyUpdatedObjectsIdsSetChanged"],
        "objectsStatusMap": ["objectsStatusMapChanged"],
        "pendingAndIgnored": ["pendingAndIgnoredChanged"]
    }; }
};
_GxIdeTeamDevUpdate_componentLocale = new WeakMap(), _GxIdeTeamDevUpdate_actionsComboBoxModel = new WeakMap(), _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser = new WeakMap(), _GxIdeTeamDevUpdate_chGridPendingForUpdateEl = new WeakMap(), _GxIdeTeamDevUpdate_updateCheckedClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_reloadClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updateObjectsHandler = new WeakMap(), _GxIdeTeamDevUpdate_renderActionCellContent = new WeakMap(), _GxIdeTeamDevUpdate_updateSingleObject = new WeakMap(), _GxIdeTeamDevUpdate_renderObjectStatus = new WeakMap(), _GxIdeTeamDevUpdate_renderRows = new WeakMap(), _GxIdeTeamDevUpdate_rowMarkingChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updatePendingCheckedItems = new WeakMap(), _GxIdeTeamDevUpdate_searchInputHandler = new WeakMap(), _GxIdeTeamDevUpdate_actionChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_typeChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_setInitialObjectsStatus = new WeakMap(), _GxIdeTeamDevUpdate_loadData = new WeakMap(), _GxIdeTeamDevUpdate_markPendingObjects = new WeakMap(), _GxIdeTeamDevUpdate_applyClientFilter = new WeakMap(), _GxIdeTeamDevUpdate_onRowContextMenuHandler = new WeakMap(), _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_kbPropertiesChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_sortTabularGridColumnCallback = new WeakMap(), _GxIdeTeamDevUpdate_columnSelectorClickedCallback = new WeakMap();
GxIdeTeamDevUpdate.style = updateCss;

export { GxIdeTeamDevUpdate as gx_ide_team_dev_update };

//# sourceMappingURL=gx-ide-team-dev-update.entry.js.map