/**
 * @file development/issues/open/210.mjs
 * @url https://gitlab.schukai.com/oss/libraries/javascript/monster/-/issues/210
 * @description initializing of reloaded html fields
 * @issue 210
 */

import "../../../source/components/style/property.pcss";
import "../../../source/components/style/color.pcss";
import "../../../source/components/style/normalize.pcss";
import "../../../source/components/style/typography.pcss";
import "../../../source/components/style/form.pcss";

import "../../../source/components/datatable/datasource/rest.mjs";
import "../../../source/components/datatable/save-button.mjs";
import "../../../source/components/form/form.mjs";
import "../../../source/components/form/field-set.mjs";
import "../../../source/components/form/select.mjs";
import "../../../source/components/form/context-help.mjs";
import "../../../source/components/form/context-error.mjs";
import {domReady} from "../../../source/dom/ready.mjs";

domReady.then(() => {

    // get html from server '/issue-210.html' and insert after last field in form
    fetch('/issue-210.html')
        .then(response => response.text())
        .then(html => {
            const form = document.querySelector('monster-form');
            const fieldSet = document.querySelector('monster-field-set');
            if (!fieldSet) {
                return;
            }
            fieldSet.insertAdjacentHTML('beforeend', html);
            
            
//            form.refresh();
            
        });


});



/**
 * Interne Daten löschen, nicht übertragen
 * Änderungen werden global geändert
 * diese Werte stehen nach dem speichern nicht mehr zur Verfügung

for (const [key, value] of Object.entries(data.dataset)) {
    for (const [k, v] of Object.entries(data.dataset[key])) {
        if (k.indexOf(internalDataPrefix) !== -1) {
            delete data.dataset[key][k];
        };
    }
}

//nicht mit den Original daten arbeiten 
//da sich so auch die Originaldaten ändern
let currentData = clone(data);

let d = diff(currentData.dataset,lastData.dataset);

/**
 * Daten für den nächsten Vergleich speichern

lastData = clone(currentData);

let changedKeys = [];
for (const [key, value] of Object.entries(d)) {
    let index = value.path[0]
    if(changedKeys.includes(index)===false){
        changedKeys.push(index);
    }
}

/**
 * Daten die sich nicht geändert haben löschen

let updateData = [];
for (const [key, value] of Object.entries(currentData.dataset)) {
    if(changedKeys.includes(key)===true){
        updateData.push(currentData.dataset[key]);
    }
};


/**
 * Zeit umformatieren für die Daten die noch
 * übertragen werden sollen

for (const [key, value] of Object.entries(updateData)) {
    let time = updateData[key]?.scheduler?.time;
    if (time !== undefined) {
        /**
         * Locale Zeit '2024-03-22T11:22:33'

        let d = new Date(Date.parse(time));
        /**
         * UTC Zeit '2024-03-22T10:22:33.000Z'

        d = d.toISOString();
        updateData[key].scheduler.time = d;
    }

}

return updateData;

*/