import { r as registerInstance, d as getIonMode, h, j as config, H as Host, e as getElement, k as isPlatform } from './core-880715f2.js';
var App = /** @class */ (function () {
    function App(hostRef) {
        registerInstance(this, hostRef);
    }
    App.prototype.componentDidLoad = function () {
        {
            rIC(function () {
                var isHybrid = isPlatform(window, 'hybrid');
                if (!config.getBoolean('_testing')) {
                    import('./tap-click-9cf5d0f6.js').then(function (module) { return module.startTapClick(config); });
                }
                if (config.getBoolean('statusTap', isHybrid)) {
                    import('./status-tap-c41cafd7.js').then(function (module) { return module.startStatusTap(); });
                }
                if (config.getBoolean('inputShims', needInputShims())) {
                    import('./input-shims-c96fb210.js').then(function (module) { return module.startInputShims(config); });
                }
                if (config.getBoolean('hardwareBackButton', isHybrid)) {
                    import('./hardware-back-button-dbf97d0e.js').then(function (module) { return module.startHardwareBackButton(); });
                }
                import('./focus-visible-f5bcca71.js').then(function (module) { return module.startFocusVisible(); });
            });
        }
    };
    App.prototype.render = function () {
        var _a;
        var mode = getIonMode(this);
        return (h(Host, { class: (_a = {},
                _a[mode] = true,
                _a['ion-page'] = true,
                _a['force-statusbar-padding'] = config.getBoolean('_forceStatusbarPadding'),
                _a) }));
    };
    Object.defineProperty(App.prototype, "el", {
        get: function () { return getElement(this); },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(App, "style", {
        get: function () { return "html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}"; },
        enumerable: true,
        configurable: true
    });
    return App;
}());
var needInputShims = function () {
    return isPlatform(window, 'ios') && isPlatform(window, 'mobile');
};
var rIC = function (callback) {
    if ('requestIdleCallback' in window) {
        window.requestIdleCallback(callback);
    }
    else {
        setTimeout(callback, 32);
    }
};
export { App as ion_app };
