Angular Material এর <mat-expansion-panel>
কম্পোনেন্টটি ব্যবহারকারীদের জন্য একটি খুব কার্যকরী UI উপাদান, যা ট্যাবের মতো কাজ করে। এটি সাধারণত কনটেন্ট বা ফর্মের বিভিন্ন অংশ একসাথে আড়াল করতে বা প্রদর্শন করতে ব্যবহৃত হয়। এটি এক্সপ্যান্ডেবল এবং কোল্লাপসেবল কনটেন্ট ব্লক তৈরি করতে সাহায্য করে, যা বিশেষভাবে যখন অনেক কনটেন্ট একসাথে দেখানো হয়, তখন খুব কার্যকরী।
এখানে আমরা দেখবো কিভাবে Angular Material Expansion Panel ব্যবহার করে ফর্মের বিভিন্ন অংশ বা ইনপুট ফিল্ডগুলো প্রদর্শন এবং আড়াল করতে পারি।
প্রথমে, আপনাকে MatExpansionModule এবং ReactiveFormsModule ইমপোর্ট করতে হবে।
import { MatExpansionModule } from '@angular/material/expansion';
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
MatExpansionModule,
ReactiveFormsModule
]
})
export class AppModule { }
এখন, আমরা mat-expansion-panel
কম্পোনেন্ট ব্যবহার করে ফর্মের ইনপুট ফিল্ডগুলো একটি এক্সপ্যানশন প্যানেলে রাখব। যখন ব্যবহারকারী প্যানেল এক্সপ্যান্ড করবেন, তখন ফর্মের ফিল্ডগুলো দেখা যাবে এবং যখন কোলাপ্স হবে, তখন ফিল্ডগুলো আড়াল হয়ে যাবে।
<mat-accordion>
<mat-expansion-panel [expanded]="isExpanded" (expandedChange)="onExpansionChange($event)">
<mat-expansion-panel-header>
<mat-panel-title>
Personal Information
</mat-panel-title>
</mat-expansion-panel-header>
<form [formGroup]="form">
<mat-form-field>
<mat-label>Name</mat-label>
<input matInput formControlName="name" required>
</mat-form-field>
<mat-form-field>
<mat-label>Email</mat-label>
<input matInput formControlName="email" required>
</mat-form-field>
<mat-form-field>
<mat-label>Phone</mat-label>
<input matInput formControlName="phone">
</mat-form-field>
</form>
</mat-expansion-panel>
</mat-accordion>
এখানে:
এখন, টাইপস্ক্রিপ্ট ফাইলে ফর্মের জন্য একটি FormGroup
তৈরি করতে হবে এবং expanded
প্রপার্টি ব্যবহার করে এক্সপ্যানশন প্যানেলের অবস্থান নিয়ন্ত্রণ করতে হবে।
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
form: FormGroup;
isExpanded: boolean = true;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({
name: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
phone: ['']
});
}
onExpansionChange(event: boolean) {
console.log("Panel expanded:", event);
}
}
এখানে:
mat-expansion-panel এর কিছু সাধারণ স্টাইল কাস্টমাইজেশন করা যায়। যেমন, আপনি প্যানেলের ব্যাকগ্রাউন্ড রঙ, প্যাডিং, অথবা শ্যাডো পরিবর্তন করতে পারেন।
mat-expansion-panel {
margin-bottom: 15px;
background-color: #f1f1f1;
}
mat-expansion-panel-header {
background-color: #007bff;
color: white;
}
mat-form-field {
width: 100%;
}
এখানে:
একাধিক এক্সপ্যানশন প্যানেল তৈরি করার জন্য, আপনি mat-accordion ব্যবহার করতে পারেন, যা সব প্যানেল একসাথে গ্রুপ করে রাখবে।
<mat-accordion>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
Section 1
</mat-panel-title>
</mat-expansion-panel-header>
<p>Content for Section 1</p>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title>
Section 2
</mat-panel-title>
</mat-expansion-panel-header>
<p>Content for Section 2</p>
</mat-expansion-panel>
</mat-accordion>
এখানে, mat-accordion ব্যবহার করে একাধিক এক্সপ্যানশন প্যানেল তৈরি করা হয়েছে। একবারে একটি প্যানেল এক্সপ্যান্ড হবে এবং অন্যটি কোলাপ্স হবে।
Angular Material Expansion Panel ফর্মের সাথে ব্যবহার করে আপনি একটি অত্যন্ত কার্যকরী এবং ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস তৈরি করতে পারেন। এক্সপ্যানশন প্যানেল ব্যবহারকারীদের জন্য অতিরিক্ত কনটেন্ট বা ইনপুট ফিল্ডগুলো আড়াল বা প্রদর্শন করার সুবিধা প্রদান করে, যা অ্যাপ্লিকেশনের ক্লিন এবং সুশৃঙ্খল ডিজাইনের জন্য অত্যন্ত উপকারী। Angular Material এর এক্সপ্যানশন প্যানেল সহজেই কাস্টমাইজ এবং স্টাইল করা যায়, যা আপনার অ্যাপ্লিকেশনের জন্য আরো ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব অভিজ্ঞতা তৈরি করে।
Read more