import { Global } from "./Globals" import * as Utility from "./Utility" import { Forms } from "./Forms" import * as JqueryExtensions from "./JQueryExtensions" import { loadCldr, setCulture, L10n } from "@syncfusion/ej2-base"; import * as Localization from "./Localization"; import LocalizationManager = Localization.LocalizationManager; import LocalizationSource = Localization.LocalizationSource; /** * Hilfklasse die alle notwendigen Basis-Moldule lädt und initialisiert */ class BootStrapper { private _global: Global; private _initialized: boolean = false; private _forms: Forms; constructor() { this._global = Global.getInstance(); this._global.appInitialized = false; if (!this._initialized) { //this.init(); this._forms = Forms.getInstance("is-invalid", "is-valid"); this._forms.resetValidation(); JqueryExtensions.extendJQueryStatic(); } } public async init() { var self = this; if (!self._initialized) { var currentCulture = $("html").prop("lang"); var localizationManager = LocalizationManager.getInstance(); if (currentCulture) { setCulture(currentCulture); var version = $("#jsVersion").val(); const getClientLocalizationPromise = $.getJSON($("#jsGetResourcesClientUrl").val().toString()); const getTextLocalizationPromise = $.getJSON($("#jsGetResourcesTextUrl").val().toString()); const getAnnotationsLocalizationPromise = $.getJSON($("#jsGetResourcesAnnotationsUrl").val().toString()); const getCldrGregorianPromise = $.get(`/lib/cldr-data/main/${currentCulture}/ca-gregorian.json?v=${version}`); const getCldrNumbersPromise = $.get(`/lib/cldr-data/main/${currentCulture}/numbers.json?v=${version}`); const getCldrTimezoneNamesPromise = $.get(`/lib/cldr-data/main/${currentCulture}/timeZoneNames.json?v=${version}`); const getCldrSubtagsPromise = $.get(`/lib/cldr-data/supplemental/likelySubtags.json?v=${version}`); const getCldrTimeDataPromise = $.get(`/lib/cldr-data/supplemental/timeData.json?v=${version}`); const getCldrWeekDataPromise = $.get(`/lib/cldr-data/supplemental/weekData.json?v=${version}`); const getCldrNumberingPromise = $.get(`/lib/cldr-data/supplemental/numberingSystems.json?v=${version}`); const getCldrEj2LocalePromise = $.get(`/lib/ej2-locale/${currentCulture}.json?v=${version}`); const getClientLocalization = await getClientLocalizationPromise; const getTextLocalization = await getTextLocalizationPromise; const getAnnotationsLocalization = await getAnnotationsLocalizationPromise; const getCldrGregorian = await getCldrGregorianPromise; const getCldrNumbers = await getCldrNumbersPromise; const getCldrTimeZoneNames = await getCldrTimezoneNamesPromise; const getCldrSubtags = await getCldrSubtagsPromise; const getCldrTimeData = await getCldrTimeDataPromise; const getCldrWeekData = await getCldrWeekDataPromise; const getCldrNumbering = await getCldrNumberingPromise; const getCldrEj2Locale = await getCldrEj2LocalePromise; localizationManager.setData(getClientLocalization, LocalizationSource.Client); localizationManager.setData(getTextLocalization, LocalizationSource.Text); localizationManager.setData(getAnnotationsLocalization, LocalizationSource.Annotations); loadCldr(getCldrGregorian); loadCldr(getCldrNumbers); loadCldr(getCldrTimeZoneNames); loadCldr(getCldrSubtags); loadCldr(getCldrTimeData); loadCldr(getCldrWeekData); loadCldr(getCldrNumbering); L10n.load(getCldrEj2Locale); Globalize.load(getCldrGregorian); Globalize.load(getCldrNumbers); Globalize.load(getCldrSubtags); Globalize.load(getCldrTimeData); Globalize.load(getCldrWeekData); Globalize.load(getCldrNumbering); Globalize.locale(currentCulture); // Normalize $.get results, we only need the JSON, not the request statuses. //return [].slice.apply(arguments, [0]).map(result => result[0]); } //Zeitzonen setzen var offset = Utility.getTimezoneOffsetInHours(); $("input[name='jsTimezoneId']").each(function () { $(this).val(offset); }); //Polyfill Object.values (Object).values = (Object).values ? (Object).values : function (obj) { var allowedTypes = ["[object String]", "[object Object]", "[object Array]", "[object Function]"]; var objType = Object.prototype.toString.call(obj); if (obj === null || typeof obj === "undefined") { throw new TypeError("Cannot convert undefined or null to object"); } else if (!~allowedTypes.indexOf(objType)) { return []; } else { // if ES6 is supported if (Object.keys) { return Object.keys(obj).map(function (key) { return obj[key]; }); } var result = []; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { result.push(obj[prop]); } } return result; } }; self._initialized = true; } } } export let bootStrapper: BootStrapper = new BootStrapper();