"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Table = exports.MultiTableModeV4 = exports.TableViewExtension = exports.LRTableView = exports.LRChartView = exports.ALPTable = exports.TableViewSettings = exports.CommonViewSettings = exports.ALPChart = exports.TableSettings = exports.QuickVariantSelectionV4 = exports.ViewPersonalizationType = exports.PersonalizationType = void 0;
exports.checkViewOrder = checkViewOrder;
exports.exportPersonalization = exportPersonalization;
exports.exportPersonalizationProperty = exportPersonalizationProperty;
exports.deletePersonalizationProperty = deletePersonalizationProperty;
exports.exportCreationModeProperty = exportCreationModeProperty;
exports.deleteCreationModeProperty = deleteCreationModeProperty;
const ux_specification_types_1 = require("@sap/ux-specification-types");
const common_1 = require("../../../common");
const decorators_1 = require("../../../common/decoration/decorators");
const application_1 = require("../../application");
const sync_rules_1 = require("../../sync-rules");
/**
 * Special edition of the global function getManifestSectionByPathV4 that initializes the views array if empty.
 *
 * @param manifest - manifest.json
 * @param path - path to the views array in manifest
 * @returns the paths array of the views
 */
const getManifestSectionByPathV4 = (manifest, path) => {
    let manifestSection = manifest;
    for (const element of path.split('/')) {
        if (!manifestSection[element]) {
            if (element === 'paths') {
                manifestSection[element] = [];
            }
            else {
                manifestSection[element] = {};
            }
        }
        manifestSection = manifestSection[element];
    }
    return manifestSection;
};
/**
 * Common function for determining the path in manifest of a list report view's path.
 *
 * @param pageName - page name in manifest
 * @param manifest - manifest.json
 * @param _targetAnnotationEncoded - target annotation (not used here)
 * @param viewKey - value of the key property of the view
 * @param _targetAnnotation - target annotation used for additional configuration
 * @param configObject - configuration object containing key-value pairs for the view
 * @returns the path to the entry in manifest
 */
function getSettingsPathForLRViewsPath(pageName, manifest, _targetAnnotationEncoded, viewKey, _targetAnnotation, configObject) {
    const viewsPath = (0, application_1.getSettingsPathForLRViewsPaths)(pageName);
    const manifestSection = getManifestSectionByPathV4(JSON.parse(JSON.stringify(manifest)), viewsPath);
    let path;
    for (let index = 0; index < manifestSection.length; index++) {
        const view = manifestSection[index];
        if (view && (view[ux_specification_types_1.SchemaTag.key] === configObject?.['key'] || view[ux_specification_types_1.SchemaTag.key] === viewKey)) {
            path = `${viewsPath}/[]/${index}`;
            break;
        }
    }
    if (!path) {
        path = `${viewsPath}/[]`;
    }
    return path;
}
/**
 * Subroutine of checkViewOrder that creates a new list of views for the manifest with updated order.
 *
 * @param manifestSection - The section of the manifest containing the views.
 * @param keyInConfig - The key of the view in the configuration object.
 * @param newIndex - The new index for the view in the manifest.
 * @param minIndex - The minimum index of the range to be reordered.
 * @param maxIndex - The maximum index of the range to be reordered.
 * @param direction - The direction of reordering, where -1 indicates moving down and 1 indicates moving up.
 * @returns A new array of objects representing the reordered views.
 */
function fillNewlyOrderedViews(manifestSection, keyInConfig, newIndex, minIndex, maxIndex, direction) {
    const newlyOrderedViews = JSON.parse(JSON.stringify(manifestSection));
    const viewKeys = Object.keys(manifestSection);
    for (const index of viewKeys) {
        const indexInManifest = Number(index);
        const view = manifestSection[index];
        if (keyInConfig === view['key']) {
            newlyOrderedViews[newIndex] = view;
        }
        else {
            if (indexInManifest >= minIndex && indexInManifest <= maxIndex) {
                newlyOrderedViews[Math.max(0, indexInManifest + direction)] = view;
            }
            else {
                newlyOrderedViews[index] = view;
            }
        }
    }
    return newlyOrderedViews;
}
/**
 * If a view index was changed we need to adapt the order of views in manifest.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 */
function checkViewOrder(manifestSection, configObject) {
    const keyInConfig = configObject['key'];
    const oldIndex = manifestSection.findIndex((view) => {
        return view?.['key'] === keyInConfig;
    });
    const newIndex = configObject['index'];
    if (oldIndex > -1 && oldIndex !== newIndex) {
        const direction = newIndex > oldIndex ? -1 : 1;
        const minIndex = Math.min(Number(oldIndex), newIndex);
        const maxIndex = Math.max(Number(oldIndex), newIndex);
        const newlyOrderedViews = fillNewlyOrderedViews(manifestSection, keyInConfig, newIndex, minIndex, maxIndex, direction);
        for (const index of Object.keys(newlyOrderedViews)) {
            manifestSection[index] = newlyOrderedViews[index];
        }
    }
}
/**
 * Common sync rule function for export of creation for personalization object.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
function exportPersonalization(manifestSection, configObject, key, manifestKey) {
    const value = configObject[key];
    const oldValue = manifestSection[manifestKey];
    if (typeof value === 'object') {
        if (!Object.keys(value).length && typeof oldValue === 'object' && Object.keys(oldValue).length) {
            // Delete property
            delete manifestSection[manifestKey];
        }
        else if (Object.keys(value).length) {
            manifestSection[manifestKey] = value;
        }
    }
    else if (typeof value === 'boolean') {
        manifestSection[manifestKey] = value;
    }
}
/**
 * Common sync rule function for export of personalization properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
function exportPersonalizationProperty(manifestSection, configObject, key, manifestKey) {
    if (typeof manifestSection['personalization'] === 'boolean' || !manifestSection['personalization']) {
        manifestSection['personalization'] = {};
    }
    manifestSection['personalization'][manifestKey] = configObject[key];
}
/**
 * Common sync rule function for the deletion of any property of personalization.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param _configObject - page config object
 * @param _key - key or property in page config object
 * @param manifestKey - key or property in manifest
 */
function deletePersonalizationProperty(manifestSection, _configObject, _key, manifestKey) {
    if (typeof manifestSection['personalization'] === 'object' &&
        manifestSection['personalization'][manifestKey] !== undefined) {
        delete manifestSection['personalization'][manifestKey];
        if (Object.keys(manifestSection['personalization']).length === 0) {
            delete manifestSection['personalization'];
        }
    }
    else if (typeof manifestSection['personalization'] === 'string' &&
        manifestSection['personalization'] !== undefined) {
        delete manifestSection['personalization'];
    }
}
/**
 * Sync rule deleting a view if the index gets deleted.
 *
 * @param manifestSection - manifest section of the given view
 * @param configObject - section of the configuration JSON
 * @param _configPropertyKey - The key of the property in the configuration object (not used here)
 * @param _manifestKey - The key or property in the manifest (not used here)
 * @param syncRuleKey - key of the view
 * @param config - the complete config JSON
 */
function deleteView(manifestSection, configObject, _configPropertyKey, _manifestKey, syncRuleKey, config) {
    let deletedViewIndex;
    if (!configObject || Object.keys(configObject).length === 0) {
        const viewsInManifest = manifestSection;
        Object.keys(viewsInManifest).forEach((index) => {
            if (viewsInManifest[index] && viewsInManifest[index].key === syncRuleKey) {
                manifestSection[Number(index)] = {};
                deletedViewIndex = index;
            }
        });
    }
    if (deletedViewIndex) {
        const viewsInConfig = config['table']?.['views'];
        for (const key in viewsInConfig) {
            if (viewsInConfig[key].index > deletedViewIndex) {
                viewsInConfig[key].index--;
            }
        }
    }
}
/**
 * Sync rule function for export of creationMode properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 */
function exportCreationModeProperty(manifestSection, configObject, key) {
    if (typeof manifestSection['creationMode'] === 'object') {
        manifestSection['creationMode'][key] = configObject[key];
    }
    else if (typeof manifestSection['creationMode'] === 'string') {
        manifestSection['creationMode'] = configObject;
    }
}
/**
 * Sync rule function for the deletion of creationMode properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param manifestKey - key or property in manifest
 */
function deleteCreationModeProperty(manifestSection, manifestKey) {
    if (typeof manifestSection['creationMode'] === 'object' &&
        manifestSection['creationMode'][manifestKey] !== undefined) {
        delete manifestSection['creationMode'][manifestKey];
    }
    else if (typeof manifestSection['creationMode'] === 'string' && manifestSection['creationMode'] !== undefined) {
        delete manifestSection['creationMode'];
    }
}
/**
 * Sync rule for the import of the index of a table view.
 *
 * @param manifestSection - manifest section, as determined by synRule.path
 * @param _sectionId  - not used
 * @param _propertyKey - not used
 * @param breadcrumbs - list if breadcrumbs, includes the given view key
 * @returns index of the view in manifest, undefined if not found
 */
function determineIndexOfView(manifestSection, _sectionId, _propertyKey, breadcrumbs) {
    const viewIndex = manifestSection.findIndex((view) => view['key'] === breadcrumbs[0]);
    return viewIndex === -1 ? undefined : viewIndex;
}
/**
 * Sync class for PersonalizationType.
 */
class PersonalizationType {
}
exports.PersonalizationType = PersonalizationType;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR, // Here we are using path of parent to have correct value for manifestSection
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], PersonalizationType.prototype, "column", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR,
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], PersonalizationType.prototype, "sort", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR,
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], PersonalizationType.prototype, "filter", void 0);
class ViewPersonalizationType {
}
exports.ViewPersonalizationType = ViewPersonalizationType;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView, // Here we are using path of parent to have correct value for manifestSection
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], ViewPersonalizationType.prototype, "column", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView,
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], ViewPersonalizationType.prototype, "sort", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR,
            export: exportPersonalizationProperty,
            delete: deletePersonalizationProperty
        }
    })
], ViewPersonalizationType.prototype, "filter", void 0);
/****************************************
 * Sync class for QuickVariantSelectionV4
 */
class QuickVariantSelectionV4 {
}
exports.QuickVariantSelectionV4 = QuickVariantSelectionV4;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getQuickVariantPath
        }
    })
], QuickVariantSelectionV4.prototype, "paths", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getQuickVariantPath
        }
    })
], QuickVariantSelectionV4.prototype, "hideTableTitle", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getQuickVariantPath
        }
    })
], QuickVariantSelectionV4.prototype, "showCounts", void 0);
/****************************************
 * Sync class for TableSettings
 */
class TableSettings extends sync_rules_1.Decorator {
    /**
     * Returns the schema definition name to use for applying decorators.
     * The schema uses 'Table' as the definition name, not 'TableSettings'.
     *
     * @returns The class name 'Table'
     */
    getClassName() {
        return 'Table';
    }
}
exports.TableSettings = TableSettings;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/#/topic/7f844f1021cd4791b8f7408eac7c1cec')
], TableSettings.prototype, "type", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR,
            export: exportPersonalization
        }
    }),
    (0, decorators_1.validity)({
        since: '1.86.0'
    })
], TableSettings.prototype, "personalization", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/sdk/#/topic/116b5d82e8c545e2a56e1b51b8b0a9bd')
], TableSettings.prototype, "selectionMode", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableSettings.prototype, "selectAll", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableSettings.prototype, "selectionLimit", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/sdk/#/topic/4bab6f2043814257974b52d4dafe1dcd')
], TableSettings.prototype, "enableExport", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableSettings.prototype, "quickVariantSelection", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForLR
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/sdk/#/topic/f3cc057e405c4fd58ee2ed42c557797c')
], TableSettings.prototype, "condensedTableLayout", void 0);
/****************************************
 * Sync class for ALPChartView (renamed due to indirection in app schema)
 */
class ALPChart extends sync_rules_1.Decorator {
}
exports.ALPChart = ALPChart;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName) + '/views/paths/0/primary/0',
            delete: deleteView
        }
    })
], ALPChart.prototype, "annotationPath", void 0);
class CommonViewSettings extends sync_rules_1.Decorator {
}
exports.CommonViewSettings = CommonViewSettings;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath,
            delete: common_1.doNotDelete
        }
    })
], CommonViewSettings.prototype, "key", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getSettingsPathForLRViewsPaths,
            import: determineIndexOfView,
            export: (manifestSection, configObject) => {
                checkViewOrder(manifestSection, configObject);
            },
            delete: deleteView
        }
    })
], CommonViewSettings.prototype, "index", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath,
            delete: common_1.doNotDelete
        }
    })
], CommonViewSettings.prototype, "annotationPath", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        }
    })
], CommonViewSettings.prototype, "entitySet", void 0);
/****************************************
 * Sync class for view table settings
 */
class TableViewSettings extends CommonViewSettings {
    /**
     * Returns the schema definition name to use for applying decorators.
     * The schema uses 'LRTableView' as the definition name for table view settings.
     *
     * @returns The class name 'LRTableView'
     */
    getClassName() {
        return 'LRTableView';
    }
}
exports.TableViewSettings = TableViewSettings;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableViewSettings.prototype, "type", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.86.0'
    })
], TableViewSettings.prototype, "personalization", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableViewSettings.prototype, "selectionMode", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableViewSettings.prototype, "selectAll", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableViewSettings.prototype, "selectionLimit", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/sdk/#/topic/4bab6f2043814257974b52d4dafe1dcd')
], TableViewSettings.prototype, "enableExport", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    })
], TableViewSettings.prototype, "quickVariantSelection", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/sdk/#/topic/f3cc057e405c4fd58ee2ed42c557797c')
], TableViewSettings.prototype, "condensedTableLayout", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getTableSettingsPathForView
        }
    }),
    (0, decorators_1.validity)({
        since: '1.117.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/#/topic/7f844f1021cd4791b8f7408eac7c1cec')
], TableViewSettings.prototype, "hierarchyQualifier", void 0);
/****************************************
 * Sync class for ALPTableView (renamed due to indirection in app schema)
 */
class ALPTable extends TableViewSettings {
}
exports.ALPTable = ALPTable;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName) + '/views/paths/0/secondary/0',
            delete: common_1.doNotDelete
        }
    })
], ALPTable.prototype, "annotationPath", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName)
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/#/topic/9f4e1192f1384b85bc160288e17f69c4')
], ALPTable.prototype, "initialLoad", void 0);
/****************************************
 * Sync class for LRChartView
 */
class LRChartView extends CommonViewSettings {
}
exports.LRChartView = LRChartView;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        },
        generate: common_1.addPatternForBindingChangeOfEnumLR
    })
], LRChartView.prototype, "visible", void 0);
/****************************************
 * Sync class for LRTableView
 */
class LRTableView extends TableViewSettings {
}
exports.LRTableView = LRTableView;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        }
    })
], LRTableView.prototype, "keepPreviousPersonalization", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        },
        generate: common_1.addPatternForBindingChangeOfEnumLR
    })
], LRTableView.prototype, "visible", void 0);
class TableViewExtension {
}
exports.TableViewExtension = TableViewExtension;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        }
    })
], TableViewExtension.prototype, "key", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: application_1.getSettingsPathForLRViewsPaths,
            import: determineIndexOfView,
            export: (manifestSection, configObject) => {
                checkViewOrder(manifestSection, configObject);
            },
            delete: deleteView
        }
    })
], TableViewExtension.prototype, "index", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        }
    })
], TableViewExtension.prototype, "label", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        }
    })
], TableViewExtension.prototype, "template", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: getSettingsPathForLRViewsPath
        },
        generate: common_1.addPatternForBindingChangeOfEnumLR
    })
], TableViewExtension.prototype, "visible", void 0);
/**
 * LR multi-view: own class for properties on views' level
 */
class MultiTableModeV4 {
}
exports.MultiTableModeV4 = MultiTableModeV4;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName) + '/views'
        }
    })
], MultiTableModeV4.prototype, "showCounts", void 0);
/****************************************
 * Sync class for Table
 */
class Table extends TableSettings {
}
exports.Table = Table;
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName) + '/views/paths/0/secondary/0',
            delete: common_1.doNotDelete
        }
    })
], Table.prototype, "annotationPath", void 0);
__decorate([
    (0, decorators_1.syncRule)({
        manifest: {
            path: (pageName) => (0, application_1.getSettingsPathForPage)(pageName)
        }
    }),
    (0, decorators_1.validity)({
        since: '1.84.0'
    }),
    (0, decorators_1.descriptionSrcURL)('https://ui5.sap.com/#/topic/9f4e1192f1384b85bc160288e17f69c4')
], Table.prototype, "initialLoad", void 0);
//# sourceMappingURL=Table.js.map