- Create a new Angular project or use an existing one if you have a suitable one.
- Create a new VenicleModule and a VenicleService for it.
- Create a method inside the VenicleService that returns an Observable of an array of venicles. Each venicle should have a make (brand), model, year and type (car | truck). All venicles that are returned should be of type - car.
- Create a Venicle component that displays the information for a single venicle. The component should have a black border around itself and a box shadow. The box shadow should only be visible based on the value of a component's @Input.
- Display all venicles when the application loads.
- Create a new TruckService for the VenicleModule and provide it whenever the VenicleService is requested.
- *The TruckService should also return an Observable of an array of venicles, but all of them should be of type - truck. (Only trucks should be displayed when the application loads)
- Create a new injection token that has a type of VenicleDefaultOptions. VenicleDefaultOptions should have a field for controlling whether the box shadow of the venicle should be visible if token is provided.
- Provide the injection token for the entire application and disable the box shadow of all venicles through it.
- Create a new ColorService that has a public color property ('red' | 'blue'). Provide the service in the app component and the venicle component with different colors. The color from the app component should be used.