This project is mirrored from https://*****@github.com/iqb-berlin/verona-modules-aspect.git.
Pull mirroring updated .
- Jun 23, 2023
-
-
jojohoch authored
- Basic implementation
-
- Jun 15, 2023
-
-
rhenck authored
Also restructure files containing interfaces.
-
- Nov 20, 2022
-
-
rhenck authored
- Part of the properties panel for every element (like delete and duplicate) - This allows interacting with elements, generating events and inpect their usage. Usually this is unwanted since it might interfere with dragging the overlay, but sometimes you want to get a feel for the element or check it's contents (GeoGebra for example)
-
- Oct 21, 2022
-
-
jojohoch authored
- A HotspotImage has an image and divs placed on it, which are used as hotspots - Inherits from FormElementComponent, which is why the hotspots are kept as a list in the value property. - Can be validated as required and uses its own custom validator
-
- Aug 08, 2022
-
-
rhenck authored
-
- Aug 02, 2022
-
-
rhenck authored
- Move props to separate files - Fix typing
-
- Jun 09, 2022
-
-
rhenck authored
-
- Jun 03, 2022
-
-
rhenck authored
Remove 'any's be adding proper types and using 'never'.
-
- May 17, 2022
-
-
rhenck authored
This way elements can handle their logic themselves without having to rely on outside utility classes. Also restructure files in common in a more logical way.
-
- May 05, 2022
- Apr 14, 2022
- Apr 06, 2022
-
-
rhenck authored
-
- Apr 04, 2022
-
-
rhenck authored
The LikertColumn is actually just an image-text-combo. Has a generalized name now. The other interface was not needed anymore and has been deleted.
-
- Mar 30, 2022
-
-
rhenck authored
This helps identifying the selected element.
-
- Feb 21, 2022
-
-
rhenck authored
- Use sub components to reduce the size of the templates - Introduce field sets for input groups like dimensions and position - Improve logic to determine when to show some fields
-
- Feb 18, 2022
-
-
rhenck authored
- Unify font and surface props - Use intersection type for additional properties - Also rework editor props panel to properly create the combined properties recursively, passing the results to its child panel (tabs). New algorithm works without lodash, therefore the package is removed.
-
- Feb 17, 2022
-
-
rhenck authored
This removes all the classes and goes back to simple interfaces for unit, pages etc and all elements. This makes creating them easier and cleaner. Things like specific needs when setting element properties and most importantly compatibility handling is done by a special service module, that knows all the elements and how to repair old their potentially outdated definitions.
-
- Feb 09, 2022
-
-
rhenck authored
This is done according to the Angular best practices and minimizes namespace collisions when using other packages which might use the same selectors. Technically the selectors are not even becessary since we use an Angular component factory to create element components but it is still useful for the DOM element naming, for debugging purposes for example.
-
- Jan 07, 2022
-
-
rhenck authored
The copy is needed to not have cross references between elements.
-
- Dec 10, 2021
-
-
rhenck authored
Was not correctly creating new instances of non-primitive values. Now uses "JSON.parse(JSON.stringify(element))" for deep copying the element first. Also refactor by moving the method to the UnitService, where all ID handling should take place.
-
- Dec 03, 2021
-
-
rhenck authored
-
- Dec 02, 2021
- Dec 01, 2021
-
- Nov 30, 2021
-
-
rhenck authored
Use a copy of the original elements to avoid accidentally changing them.
-
rhenck authored
The change of moving some properties to sub objects broke the creation of the combinedProperties object, which can't deal with nested objects. To circumvent that all elements are now flattened before being combined. The connected property panels now again look for the properties on the element itself and not in sub-objects.
-
rhenck authored
- Dnd values now have a special type that has an ID, a string and another string for an image path. - A new dialog exists for editing thoe options. Similarly to the likert header.
-
- Nov 26, 2021
-
-
rhenck authored
The problem being solved is that compound-sub-elements must not have all the properties other elements have. For exampe positioning info. Sub-Elements are positioned inline. To avoid having similar class inheritance structures for positioned and inline elements, we use interface. Positioning is done via interface and is therefore optional. Those optional properties are kept in an object in a variable. This allows to hide specifics from element classes and removes the need to initialize all the fields in every class using the interface. The elements mostly care about their own specific properties anyway. The same technique is used for font and surface elements. Here we also don't want to initialize all the styles in every class. Changing values of element properties works like before. Just set the property as if it would be a direkt prop of the element. The element itself puts the value in the currect sub-object (positioningProps, fontProps etc). For reading the values there is a similar method, but it is not used anywhere by now. Since the properties panel operates on the raw values anyway (refer CombinedProperties) and for element components this would mean calling a function in the template, which caused change detection to run the function very often and is therefore bad practice. Additional notes and refactorings: - Restructure all files in common. UIElements in the same folder etc. - Move all interfaces to the UIElement file. This avoids circular imports, which would be needed to allow PositionedElement to extend UIElement. - Interface initializers also handle reading values in the old form. - Add PositionedElement for use in canvas overlays. This is a UIElement with guaranteed postionProps. - Don't export all Material packages from common, only the ones used in player and editor. The rest is only used in common and does not need to be exported.
-
- Nov 20, 2021
-
-
rhenck authored
No longer needs the appropriate section, but instead loops through all page sections. It was somewhat complicated to know the corresponding section and this solution solves that. Though at the price of some unnecessary element lookup. Another upside is that elements from different sections can be deleted simultaneously.
-
- Nov 11, 2021
-
-
rhenck authored
Move the first tab to it's own component. File still is way to long and unwieldy.
-
rhenck authored
This structure moves closer to the structure template the team decided on. Components and services are kept in dedicated folders instead of following the logical code structure. This is still not the case here as the unit-view component is still nested, but it's closer.
-
- Nov 10, 2021
-
-
rhenck authored
This change mainly helps the editor. The idea is to make the element components have the correct value of their model and don't rely on the formcontrol value. The formcontrol can be hard to manipulate, especially in compound elements. Setting the model value is way easier. The formcontrols are kept and should not interfere.
-
- Nov 08, 2021
-
-
rhenck authored
This element has a list of string as editable options. Those strings form draggable elements which may be reordered or moved between different DropList elements. Also refactor option change logic to allow any property not just the text property.
-
- Nov 02, 2021
- Nov 01, 2021
-
-
rhenck authored
This is necessary to reset elements like radio button group. We use null for that instead of undefined. The check was in place before to make sure input fields only accept valid values (no text in a number field for example). Angular thinks a null value is valid so we have to do this extra check. This is now done directly in the template before calling the updateModel method.
-
- Oct 25, 2021
-
-
rhenck authored
-
- Oct 22, 2021
-
-
rhenck authored
-