Interactivity এবং Events (ইন্টারঅ্যাক্টিভিটি এবং ইভেন্টস)

Web Development - অ্যাঙ্গুলার গুগল চার্ট (Angular Google Charts) -

Google Charts API ব্যবহার করে আপনি আপনার চার্টে Interactivity (ইন্টারঅ্যাকটিভিটি) এবং Events (ইভেন্টস) যোগ করতে পারেন, যা ব্যবহারকারীর অভিজ্ঞতাকে আরও উন্নত এবং সক্রিয় করে তোলে। ইন্টারঅ্যাকটিভিটি এবং ইভেন্টগুলি ব্যবহারকারীদের চার্টের উপরে হোভার বা ক্লিক করার মাধ্যমে বিভিন্ন ধরনের অ্যাকশন ট্রিগার করতে সাহায্য করে। এটি ডেটা ভিজুয়ালাইজেশনকে আরও শক্তিশালী এবং তথ্যপূর্ণ করে তোলে।

Interactivity এবং Events এর ভূমিকা

  1. Interactivity (ইন্টারঅ্যাকটিভিটি): ব্যবহারকারীর সাথে চার্টের সম্পর্কিত প্রতিক্রিয়া প্রদান। যেমন, চার্টে ক্লিক বা হোভার করার মাধ্যমে তথ্য বা ডেটা দেখানো।
  2. Events (ইভেন্টস): ব্যবহারকারীর কার্যকলাপ (যেমন ক্লিক, হোভার ইত্যাদি) অনুসারে বিশেষ কিছু একশন বা প্রক্রিয়া চালানো।

Interactivity in Google Charts

Google Charts ইন্টারঅ্যাকটিভিটি সমর্থন করে, অর্থাৎ ব্যবহারকারী যখন চার্টের কোন অংশের উপর হোভার বা ক্লিক করে, তখন তা একটি প্রতিক্রিয়া তৈরি করে। এই ইন্টারঅ্যাকটিভিটি সাধারণত টুলটিপ (Tooltips), ইভেন্ট হ্যান্ডলিং (Event Handling) এবং সিলেকশন (Selection) এর মাধ্যমে করা হয়।


Events in Google Charts

Events Google Charts-এ ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, click, hover, select ইত্যাদি ইভেন্ট ব্যবহারকারীর কার্যকলাপ অনুযায়ী ট্রিগার হয়। এই ইভেন্টগুলি ডেটা দেখানোর বা অন্য কোনও কার্যকলাপ সম্পাদন করার জন্য ব্যবহৃত হয়।

1. Chart Click Event

চার্টে ক্লিক করার ইভেন্টটি ব্যবহারকারী ক্লিক করার পর click ইভেন্ট ট্রিগার করে। এই ইভেন্টটি ব্যবহার করে আপনি ক্লিক করা ডেটার বিস্তারিত দেখাতে পারেন।

Example: Click Event in Pie Chart

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Google Chart with Click Event';

  chartType = 'PieChart';
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ];
  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,
    width: 600,
    height: 400
  };

  // Click Event Handler
  handleChartClick(event) {
    let selection = event.selection;
    if (selection.length > 0) {
      let selectedItem = selection[0];
      let selectedTask = this.chartData[selectedItem.row + 1][0]; // Get the task name
      alert('You clicked on: ' + selectedTask);
    }
  }
}

HTML:

<h1>{{ title }}</h1>

<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions" 
  (select)="handleChartClick($event)">
</google-chart>

এখানে, handleChartClick ফাংশনটি ব্যবহারকারীর ক্লিক করার পর চার্টের উপর নির্বাচন করা আইটেমের তথ্য দেখাবে।


2. Hover Event

Hover ইভেন্টটি ব্যবহারকারীর মাউস চার্টের উপর নিয়ে আসার (হোভার) সময় একটি প্রতিক্রিয়া তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত tooltip প্রদর্শন বা ডেটার কোনো বৈশিষ্ট্য প্রদর্শনের জন্য ব্যবহার করা হয়।

chartOptions = {
  tooltip: {
    trigger: 'selection', // Tooltip appears when the user hovers over a slice
    isHtml: true
  }
};

এখানে, tooltip সক্রিয় থাকবে যখন ইউজার চার্টের কোন অংশের উপর হোভার করবে।


3. Selection Event

Selection ইভেন্টটি ব্যবহারকারী যখন চার্টের কোনও অংশ নির্বাচন করেন (যেমন বার, পাই স্লাইস বা ডেটা পয়েন্ট), তখন এটি ট্রিগার হয়। এই ইভেন্টটি ব্যবহারকারীর নির্বাচিত অংশের উপর তথ্য প্রদর্শন করতে ব্যবহৃত হয়।

Example: Selection Event

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Google Chart with Selection Event';

  chartType = 'PieChart';
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ];
  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,
    width: 600,
    height: 400
  };

  // Selection Event Handler
  handleChartSelection(event) {
    let selection = event.selection;
    if (selection.length > 0) {
      let selectedItem = selection[0];
      let selectedTask = this.chartData[selectedItem.row + 1][0]; // Get the task name
      alert('You selected: ' + selectedTask);
    }
  }
}

HTML:

<h1>{{ title }}</h1>

<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions" 
  (select)="handleChartSelection($event)">
</google-chart>

এখানে, handleChartSelection ফাংশনটি ব্যবহারকারী যখন চার্টের কোনও অংশ নির্বাচন করবেন তখন সেই অংশের নাম প্রদর্শন করবে।


Chart Interactivity Features

  1. Tooltips: Google Charts-এ টুলটিপ ইন্টারঅ্যাকটিভিটির একটি গুরুত্বপূর্ণ অংশ। ব্যবহারকারী যখন চার্টের কোনও অংশে হোভার করবে, তখন টুলটিপে তথ্য প্রদর্শিত হবে। আপনি tooltip কাস্টমাইজ করতে পারেন এবং এটিকে HTML কন্টেন্ট এবং স্টাইল দিয়ে সাজাতে পারেন।
  2. Selection: আপনি selection ইভেন্ট ব্যবহার করে ব্যবহারকারীর নির্বাচিত তথ্যকে সংগ্রহ করতে পারেন। এটি বিভিন্ন ধরনের চার্টে ব্যবহারযোগ্য, যেমন PieChart, BarChart, ColumnChart ইত্যাদি।
  3. Click Events: চার্টের বিভিন্ন অংশে ক্লিক করলে ইভেন্ট ট্রিগার হয়। এটি ব্যবহারকারীর সাথে আরও গভীর যোগাযোগ তৈরি করতে এবং নতুন তথ্য প্রদর্শন করতে ব্যবহৃত হয়।

Event Handling with Google Charts in Angular

Google Charts-এ ইভেন্ট হ্যান্ডলিং Angular অ্যাপে খুবই সহজ। আপনি select ইভেন্ট এবং অন্যান্য ইভেন্টগুলির মাধ্যমে ব্যবহারকারীর ইন্টারঅ্যাকশন অনুযায়ী কাজ করতে পারেন।

Example: Event Handling in Angular with Google Charts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Interactive Google Chart';

  chartType = 'PieChart';
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ];
  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,
    width: 600,
    height: 400
  };

  // Handling the selection event
  handleChartSelection(event) {
    const selection = event.selection;
    if (selection.length > 0) {
      const selectedItem = selection[0];
      const selectedTask = this.chartData[selectedItem.row + 1][0]; // Get the task name
      alert('You selected: ' + selectedTask);
    }
  }
}

HTML:

<h1>{{ title }}</h1>

<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions" 
  (select)="handleChartSelection($event)">
</google-chart>

এখানে, handleChartSelection ফাংশনটি ব্যবহারকারী যখন চার্টের কোনও অংশ নির্বাচন করবেন তখন ওই অংশের তথ্য দেখাবে।


Conclusion

Interactivity এবং Events ব্যবহার করে Google Charts অ্যাপে আপনি ব্যবহারকারীর সাথে আরও সক্রিয় যোগাযোগ করতে পারেন। বিভিন্ন ইভেন্ট যেমন click, hover, select ইত্যাদি ব্যবহারকারীর ইন্টারঅ্যাকশনের উপর ভিত্তি করে তথ্য প্রদর্শন বা অ্যাকশন ট্রিগার করতে সহায়তা করে। Angular এর মাধ্যমে Google Charts এর event handling অত্যন্ত সহজ এবং এই ইভেন্টগুলি চার

্টের ইউজার অভিজ্ঞতাকে আরও উন্নত করতে পারে।

Content added By

Chart Interactivity এবং User Interaction

Google Charts API ইন্টারঅ্যাকটিভ এবং ইউজার ফ্রেন্ডলি চার্ট তৈরিতে সহায়তা করে। এর মাধ্যমে, আপনি চার্টের বিভিন্ন উপাদানের সাথে ইউজারের ইন্টারঅ্যাকশন তৈরি করতে পারেন, যেমন হোভার, ক্লিক, জুম, ড্র্যাগ ইত্যাদি। এই ইন্টারঅ্যাকশনগুলো ইউজারের অভিজ্ঞতাকে উন্নত করে এবং ডেটা ভিজুয়ালাইজেশনকে আরও কার্যকরী করে তোলে।

Chart Interactivity:

Google Charts ইন্টারঅ্যাকটিভ ফিচার যেমন tooltip, click events, selection events, এবং hover effects সাপোর্ট করে, যা ব্যবহারকারীদের চার্টের সাথে সরাসরি যোগাযোগ করতে সহায়তা করে।


1. Tooltip Interactivity (টুলটিপ ইন্টারঅ্যাকশন)

Tooltip চার্টের উপরে হোভার করার সময় প্রদর্শিত হয়, যা অতিরিক্ত তথ্য দেখানোর জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীর জন্য ডেটা আরও স্পষ্টভাবে উপস্থাপন করতে সহায়তা করে।

উদাহরণ:

chartOptions = {
  tooltip: {
    trigger: 'focus', // Tooltip trigger: focus, selection
    isHtml: true, // Enable HTML content in tooltip
    textStyle: {
      color: 'black', // Tooltip text color
      fontSize: 14 // Tooltip text size
    }
  }
};

এখানে, trigger অপশন দ্বারা আপনি নির্ধারণ করতে পারেন কবে টুলটিপটি প্রদর্শিত হবে—যেমন হোভার বা নির্বাচন (selection)।


2. Click Event Interactivity (ক্লিক ইভেন্ট ইন্টারঅ্যাকশন)

আপনি click event ব্যবহার করে চার্টে ক্লিক করার মাধ্যমে বিভিন্ন অ্যাকশন ট্রিগার করতে পারেন। এই ইন্টারঅ্যাকশনের মাধ্যমে ইউজারকে চার্টের ভিতরে ক্লিক করার পর কোনো নতুন তথ্য দেখানো বা কোনো অ্যাকশন শুরু করা যায়।

উদাহরণ:

chartOptions = {
  // Chart options
  tooltip: { trigger: 'selection' }
};

// Event Listener for click event
google.visualization.events.addListener(chart, 'select', function() {
  var selectedItem = chart.getSelection()[0];
  if (selectedItem) {
    var item = chartData.getValue(selectedItem.row, 0);
    alert('You selected: ' + item);
  }
});

এখানে, select ইভেন্ট ব্যবহার করে ইউজার যখন চার্টের একটি অংশে ক্লিক করবে, তখন একটি এলার্ট বা অন্য কোনো অ্যাকশন ট্রিগার হবে।


3. Selection Event Interactivity (সিলেকশন ইভেন্ট ইন্টারঅ্যাকশন)

Selection event ব্যবহারকারীদের চার্টের অংশ নির্বাচন করার সুযোগ দেয়। এই ইভেন্টের মাধ্যমে ইউজারের নির্বাচিত ডেটা বা অংশ নিয়ে অন্যান্য অ্যাকশন করা যায়।

উদাহরণ:

chartOptions = {
  selectionMode: 'multiple', // Allow multiple selection
};

// Selection event listener
google.visualization.events.addListener(chart, 'select', function() {
  var selectedItem = chart.getSelection()[0];
  if (selectedItem) {
    var item = chartData.getValue(selectedItem.row, 0);
    console.log('Selected item: ' + item);
  }
});

এখানে, getSelection() ফাংশনের মাধ্যমে ইউজার যে অংশে ক্লিক করেছে বা নির্বাচিত করেছে তার তথ্য পাওয়া যাবে।


4. Hover Effect (হোভার ইফেক্ট)

Hover effect দ্বারা ইউজার যখন চার্টের কোনো অংশে হোভার করবে, তখন সেই অংশের উপর কিছু অতিরিক্ত তথ্য দেখানো যাবে, যেমন রঙ পরিবর্তন বা ডেটার বিস্তারিত বিবরণ।

উদাহরণ:

chartOptions = {
  tooltip: {
    trigger: 'focus', // Show tooltip on hover
    isHtml: true, // Enable HTML content
    textStyle: {
      color: 'black', // Tooltip text color
      fontSize: 14 // Tooltip font size
    }
  }
};

এই কাস্টমাইজেশনের মাধ্যমে আপনি হোভার করার সময় চার্টের বিভিন্ন অংশে টুলটিপ বা অতিরিক্ত তথ্য দেখাতে পারবেন।


5. Zoom and Pan (জুম এবং প্যান)

Google Charts API কিছু চার্টে zoom এবং pan ফিচারও সাপোর্ট করে, বিশেষ করে Timeline Chart এবং Scatter Chart এ। এটি ব্যবহারকারীদের চার্টে ইনপুট বা ডেটা সেটের মধ্যে নেভিগেট করতে সহায়তা করে।

উদাহরণ:

chartOptions = {
  explorer: { actions: ['dragToZoom', 'rightClickToReset'], axis: 'horizontal', keepInBounds: true }
};

এখানে, explorer অপশন ব্যবহার করে আপনি জুম এবং প্যানিং ফিচার সক্ষম করতে পারেন, যা ব্যবহারকারীদের ডেটার মধ্যে গভীরভাবে অনুসন্ধান করতে সাহায্য করবে।


6. Animation Effects (এনিমেশন ইফেক্ট)

চার্টের প্রদর্শন এবং পরিবর্তনগুলোকে আরো আকর্ষণীয় করতে animation ব্যবহার করা যায়। এটি চার্টের লোডিং, ডেটা আপডেট, বা টাইটেল পরিবর্তন করার সময় এনিমেশন ইফেক্ট যোগ করতে পারে।

উদাহরণ:

chartOptions = {
  animation: {
    startup: true, // Animation starts when the chart is loaded
    easing: 'inAndOut', // Easing function for animation
    duration: 1000 // Animation duration in milliseconds
  }
};

এখানে, startup: true ব্যবহার করলে চার্ট লোড হওয়ার সময় এনিমেশন শুরু হবে।


Chart Interactivity Example

এখানে একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো যেখানে একটি Bar Chart ব্যবহার করা হয়েছে এবং এতে click event, selection event, এবং tooltip সহ আরও কিছু ইন্টারঅ্যাকটিভ ফিচার যুক্ত করা হয়েছে।

app.component.ts ফাইল:

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  title = 'Interactive Google Chart';
  
  chartType = 'BarChart'; // Chart Type
  chartData = [
    ['Year', 'Sales', 'Expenses'],
    ['2010', 1000, 400],
    ['2011', 1170, 460],
    ['2012', 660, 1120],
    ['2013', 1030, 540]
  ]; // Chart Data

  chartOptions = {
    title: 'Company Performance',
    hAxis: { title: 'Year' },
    vAxis: { title: 'Amount' },
    animation: {
      startup: true,
      easing: 'inAndOut',
      duration: 1000
    },
    tooltip: {
      trigger: 'focus', // Show tooltip on hover
      isHtml: true
    }
  };

  ngOnInit() {
    google.charts.load('current', { packages: ['corechart', 'bar'] });
    google.charts.setOnLoadCallback(this.drawChart.bind(this));
  }

  drawChart() {
    const data = google.visualization.arrayToDataTable(this.chartData);
    const chart = new google.visualization.BarChart(document.getElementById('chart_div'));
    
    google.visualization.events.addListener(chart, 'select', () => {
      const selection = chart.getSelection();
      if (selection.length > 0) {
        const item = selection[0];
        alert('You selected: ' + this.chartData[item.row + 1][0]);
      }
    });

    chart.draw(data, this.chartOptions);
  }
}

app.component.html ফাইল:

<h1>{{ title }}</h1>

<!-- Google Chart Component -->
<div id="chart_div" style="width: 900px; height: 500px;"></div>

এখানে, click event এবং tooltip ব্যবহার করা হয়েছে। ইউজার যখন চার্টের একটি অংশে ক্লিক করবে, তখন একটি এলার্ট প্রদর্শিত হবে।


সারাংশ

Chart Interactivity এবং User Interaction ব্যবহার করে Google Charts এর মাধ্যমে আপনি ইউজারদের জন্য আরও আকর্ষণীয় এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করতে পারেন। Tooltip, Click events, Selection events, Zoom, Animation, এবং Hover effects ব্যবহার করে আপনি ইউজারের সাথে চার্টের যোগাযোগকে আরও কার্যকরী এবং ইন্টারঅ্যাকটিভ করে তুলতে পারেন। এগুলি ডেটা ভিজুয়ালাইজেশনকে আরও গতিশীল এবং ব্যবহারকারী-বান্ধব করে তোলে।

Content added By

Chart Click Event এবং Data Selection Event ব্যবহার

Google Charts API তে Click Event এবং Data Selection Event ব্যবহারের মাধ্যমে আপনি চার্টের উপর ক্লিক করলে বা কোন ডেটা নির্বাচন করলে কিছু অ্যাকশন ট্রিগার করতে পারেন। এই ইভেন্টগুলোর মাধ্যমে আপনি ইউজার ইন্টারঅ্যাকশনকে আরও ইন্টারঅ্যাকটিভ এবং ডায়নামিক করতে পারেন।

নিচে Chart Click Event এবং Data Selection Event এর ব্যবহার দেখানো হলো:


1. Chart Click Event

Chart Click Event ব্যবহার করে আপনি যখন চার্টের কোনো একটি পয়েন্টে ক্লিক করবেন, তখন তার সাথে সম্পর্কিত ডেটা বা একটি নির্দিষ্ট কার্যকলাপ ট্রিগার করতে পারবেন।

উদাহরণ (Click Event):

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Google Charts - Click Event Example';

  chartType = 'PieChart';  // Chart Type: PieChart
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ];  // Initial Data

  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,  // Doughnut Style
    width: 600,
    height: 400
  };

  // Chart Click Event Handler
  onChartClick(event) {
    const selectedItem = event;
    if (selectedItem) {
      const itemIndex = selectedItem.row;
      alert(`You clicked on: ${this.chartData[itemIndex][0]} - ${this.chartData[itemIndex][1]} hours`);
    }
  }
}

HTML (app.component.html):

<h1>{{ title }}</h1>

<!-- Google Chart with Click Event -->
<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions"
  (chartClick)="onChartClick($event)">
</google-chart>

এখানে কী ঘটছে:

  • onChartClick ফাংশনটি chartClick ইভেন্টের মাধ্যমে কল করা হবে, যা তখন ঘটবে যখন ইউজার কোনো পয়েন্টে ক্লিক করবেন।
  • event পারামিটারটি চার্টের ক্লিক করা পয়েন্টের তথ্য সরবরাহ করবে।
  • itemIndex দিয়ে ক্লিক করা পয়েন্টের ডেটা পাওয়া যাবে, এবং সেই ডেটার সাথে একটি alert বার্তা প্রদর্শিত হবে।

2. Data Selection Event

Data Selection Event ব্যবহার করে আপনি যখন ইউজার কোনো চার্টের ডেটা নির্বাচন করবেন (যেমন একটি পয়েন্ট বা সেগমেন্ট), তখন ওই ডেটার উপর ভিত্তি করে একটি অ্যাকশন ট্রিগার করতে পারেন।

উদাহরণ (Data Selection Event):

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Google Charts - Data Selection Example';

  chartType = 'PieChart';  // Chart Type: PieChart
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ];  // Initial Data

  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,  // Doughnut Style
    width: 600,
    height: 400
  };

  // Data Selection Event Handler
  onDataSelection(event) {
    const selectedItem = event.selection;
    if (selectedItem.length > 0) {
      const itemIndex = selectedItem[0].row;
      alert(`You selected: ${this.chartData[itemIndex][0]} - ${this.chartData[itemIndex][1]} hours`);
    }
  }
}

HTML (app.component.html):

<h1>{{ title }}</h1>

<!-- Google Chart with Data Selection Event -->
<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions"
  (chartSelection)="onDataSelection($event)">
</google-chart>

এখানে কী ঘটছে:

  • onDataSelection ফাংশনটি chartSelection ইভেন্টের মাধ্যমে কল করা হবে, যা তখন ঘটবে যখন ইউজার চার্টে কোন পয়েন্ট বা সেগমেন্ট সিলেক্ট করবেন।
  • event.selection দ্বারা ইউজারের নির্বাচিত ডেটা পাওয়া যাবে।
  • itemIndex দিয়ে সিলেক্ট করা সেগমেন্ট বা পয়েন্টের ডেটা বের করা হবে, এবং সেই ডেটার সাথে একটি alert বার্তা প্রদর্শিত হবে।

Chart Click এবং Data Selection Event এর মধ্যে পার্থক্য

FeatureChart Click EventData Selection Event
Triggerইউজার যখন চার্টের একটি পয়েন্টে ক্লিক করেন।ইউজার যখন চার্টের একটি পয়েন্ট বা সেগমেন্ট নির্বাচন করেন।
Event Dataশুধুমাত্র ক্লিক করা পয়েন্টের ডেটা পাওয়া যায়।নির্বাচিত সেগমেন্ট বা পয়েন্টের ডেটা পাওয়া যায়।
Use Caseক্লিক করে ডেটা বা তথ্য দেখতে চাইলে ব্যবহার।সিলেক্ট করা ডেটার সাথে কাজ বা বিশ্লেষণ করার জন্য ব্যবহার।

সারাংশ

Chart Click Event এবং Data Selection Event ব্যবহার করে আপনি Google Charts-এ ইউজারের ইন্টারঅ্যাকশনকে আরো ইন্টারঅ্যাকটিভ করতে পারেন। যখন ইউজার চার্টে কোন পয়েন্টে ক্লিক করবেন বা নির্বাচন করবেন, তখন আপনি সেই তথ্য অনুযায়ী কিছু কার্যকলাপ চালাতে পারবেন। এগুলি ডেটা ভিজুয়ালাইজেশন অ্যাপ্লিকেশনগুলোতে ইউজারের কাছে আরও তথ্যপূর্ণ এবং ইন্টারঅ্যাকটিভ অভিজ্ঞতা প্রদান করতে সহায়তা করে।

Content added By

Mouse Hover এবং Tooltip Event Handling

Mouse Hover এবং Tooltip হল ওয়েব ডেভেলপমেন্টে দুটি অত্যন্ত গুরুত্বপূর্ণ ইউজার ইন্টারঅ্যাকশন যা ওয়েব পেজের ইউজার অভিজ্ঞতা (UX) উন্নত করতে ব্যবহৃত হয়। Mouse Hover এর মাধ্যমে ইউজার যখন মাউসের কার্সর একটি নির্দিষ্ট এলিমেন্টের উপর রাখে, তখন কিছু ইন্টারঅ্যাকশন ঘটে। Tooltip হল একটি ছোট তথ্য প্রদর্শন যা সাধারণত একটি এলিমেন্টের উপর মাউস হোভার করার সময় দৃশ্যমান হয়।

Angular-এ এই ধরনের ইভেন্ট হ্যান্ডলিং সহজে করা যায়। এখানে আমরা Mouse Hover এবং Tooltip Event Handling নিয়ে কাজ করার জন্য দুটি প্রধান বিষয় নিয়ে আলোচনা করব।


Step 1: Mouse Hover Event Handling in Angular

Angular-এ mouse hover ইভেন্টটি হ্যান্ডল করার জন্য আপনি (mouseenter) এবং (mouseleave) ইভেন্ট ব্যবহার করতে পারেন।

উদাহরণ: Mouse Hover Event Handling

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Mouse Hover Example';
  hoverMessage: string = 'Mouse not hovering';

  onMouseEnter() {
    this.hoverMessage = 'Mouse is hovering!';
  }

  onMouseLeave() {
    this.hoverMessage = 'Mouse is not hovering';
  }
}

app.component.html

<h1>{{ title }}</h1>

<div 
  (mouseenter)="onMouseEnter()" 
  (mouseleave)="onMouseLeave()" 
  style="width: 200px; height: 200px; background-color: lightblue; text-align: center; padding-top: 80px;">
  Hover over this box
</div>

<p>{{ hoverMessage }}</p>
  • (mouseenter): এই ইভেন্টটি তখন ট্রিগার হয় যখন ইউজার মাউস কার্সর একটি এলিমেন্টের উপর নিয়ে আসে।
  • (mouseleave): এই ইভেন্টটি তখন ট্রিগার হয় যখন ইউজার মাউস কার্সর এলিমেন্টের বাইরে নিয়ে যায়।

এখানে, যখন আপনি div এর উপর মাউস হোভার করবেন, তখন একটি মেসেজ দেখাবে যা পরিবর্তিত হবে।


Step 2: Tooltip Event Handling in Angular

Angular-এ টুলটিপ তৈরি করার জন্য অনেক লাইব্রেরি পাওয়া যায়, তবে এখানে আমরা একটি সিম্পল টুলটিপ ইমপ্লিমেন্ট করব যা mouse hover ইভেন্টের মাধ্যমে প্রদর্শিত হবে।

উদাহরণ: Tooltip Event Handling

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  tooltipVisible: boolean = false;
  
  // Mouse hover event for showing tooltip
  showTooltip() {
    this.tooltipVisible = true;
  }

  // Mouse leave event for hiding tooltip
  hideTooltip() {
    this.tooltipVisible = false;
  }
}

app.component.html

<h1>Tooltip Example</h1>

<button 
  (mouseenter)="showTooltip()" 
  (mouseleave)="hideTooltip()" 
  style="position: relative; padding: 10px 20px;">
  Hover over me!
</button>

<!-- Tooltip -->
<div *ngIf="tooltipVisible" 
     style="position: absolute; background-color: #333; color: white; padding: 5px; border-radius: 5px; top: 40px; left: 0;">
  This is a Tooltip!
</div>
  • (mouseenter): যখন ইউজার বাটনে মাউস হোভার করবে, তখন showTooltip() ফাংশন কল হবে এবং টুলটিপটি প্রদর্শিত হবে।
  • (mouseleave): যখন ইউজার বাটন থেকে মাউস সরিয়ে নেবে, তখন hideTooltip() ফাংশন কল হবে এবং টুলটিপটি অদৃশ্য হয়ে যাবে।

এখানে tooltipVisible নামে একটি ভ্যারিয়েবল ব্যবহৃত হয়েছে যা টুলটিপের দৃশ্যমানতা নিয়ন্ত্রণ করে। *ngIf ডিরেক্টিভ ব্যবহার করা হয়েছে টুলটিপটি কেবল তখনই প্রদর্শিত হবে যখন tooltipVisible ভ্যালু true হবে।


Step 3: Tooltip Styling

আপনি টুলটিপের স্টাইল কাস্টমাইজ করতে পারেন। যেমন: টুলটিপের ব্যাকগ্রাউন্ড, রঙ, মার্জিন, প্যাডিং, ফন্ট সাইজ, এবং টুলটিপের অবস্থান নিয়ন্ত্রণ করতে পারেন।

/* Tooltip Style */
.tooltip {
  position: absolute;
  background-color: #333;
  color: white;
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 14px;
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
  opacity: 0.9;
}

এটি আপনার টুলটিপকে আরো আকর্ষণীয় এবং ব্যবহারকারী-বান্ধব করে তুলবে।


Step 4: Mouse Hover and Tooltip with Angular Material

Angular Material লাইব্রেরি ব্যবহার করে Tooltip আরো উন্নত এবং ইন্টারঅ্যাকটিভ করা যেতে পারে। এখানে আমরা দেখাবো কিভাবে Angular Material এর TooltipModule ব্যবহার করে টুলটিপ তৈরি করা যায়।

  1. Angular Material ইন্সটল করুন:
ng add @angular/material
  1. AppModule এ TooltipModule ইমপোর্ট করুন:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MatTooltipModule } from '@angular/material/tooltip'; // TooltipModule ইমপোর্ট

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    MatTooltipModule // TooltipModule যোগ করা হয়েছে
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
  1. HTML ফাইলে Tooltip ব্যবহার করুন:
<button mat-raised-button matTooltip="Click to perform action" matTooltipPosition="above">
  Hover over me!
</button>

এখানে, matTooltip ব্যবহার করা হয়েছে টুলটিপ দেখানোর জন্য এবং matTooltipPosition এর মাধ্যমে টুলটিপের অবস্থান নির্ধারণ করা হয়েছে (যেমন "above", "below", "left", "right")।


সারাংশ

  • Mouse Hover এবং Tooltip ওয়েব ইউআই ডিজাইনের অত্যন্ত গুরুত্বপূর্ণ অংশ, যেগুলি ইউজারের সাথে ইন্টারঅ্যাকশন তৈরির জন্য ব্যবহৃত হয়।
  • Angular-এ mouse hover ইভেন্টগুলি (mouseenter) এবং (mouseleave) এর মাধ্যমে হ্যান্ডল করা হয়।
  • Tooltip তৈরি করার জন্য আপনি সরাসরি Angular এর Mouse Hover ইভেন্ট ব্যবহার করতে পারেন অথবা Angular Material এর TooltipModule ব্যবহার করে আরও উন্নত টুলটিপ তৈরি করতে পারেন।
  • এই ইভেন্ট হ্যান্ডলিং এবং টুলটিপ কাস্টমাইজেশনের মাধ্যমে আপনার অ্যাপ্লিকেশন আরও ইন্টারঅ্যাকটিভ এবং ইউজার-বান্ধব হবে।
Content added By

Custom Events যোগ করা এবং ইন্টারঅ্যাক্টিভ চার্ট তৈরি

Google Charts API ব্যবহার করে আপনি আপনার চার্টে Custom Events যোগ করতে পারেন, যা চার্টের সাথে ইউজারের ইন্টারঅ্যাকশনকে আরও আকর্ষণীয় এবং কার্যকরী করে তোলে। আপনি যেমন, চার্টের উপরে ক্লিক, হোভার ইভেন্ট, সিলেকশন ইভেন্ট ইত্যাদি ব্যবহার করতে পারেন।

এখানে আমরা দেখব কিভাবে Custom Events যোগ করতে হয় এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করতে হয়।


Step 1: Angular প্রজেক্ট এবং লাইব্রেরি ইন্সটল করা

প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন (যদি আপনার আগে থেকেই একটি প্রজেক্ট থাকে, তবে সেটি ব্যবহার করতে পারেন):

ng new interactive-charts
cd interactive-charts

এখন angular-google-charts লাইব্রেরি ইন্সটল করুন:

npm install angular-google-charts

এটি ইনস্টল হওয়ার পর angular-google-charts প্যাকেজটি আপনার node_modules ফোল্ডারে যুক্ত হয়ে যাবে।


Step 2: GoogleChartsModule ইমপোর্ট করা

এখন, GoogleChartsModule ব্যবহার করার জন্য app.module.ts ফাইলে এটি ইমপোর্ট করুন:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { GoogleChartsModule } from 'angular-google-charts'; // GoogleChartsModule ইমপোর্ট

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    GoogleChartsModule // এখানে GoogleChartsModule যোগ করুন
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Step 3: Custom Event এবং ইন্টারঅ্যাকটিভ চার্ট তৈরি করা

এখন আমরা একটি Pie Chart তৈরি করব এবং তাতে Custom Event যোগ করব, যেমন ইউজার যখন চার্টের অংশে ক্লিক করবে, তখন একটি নির্দিষ্ট মেসেজ প্রদর্শিত হবে।

app.component.ts:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'Interactive Google Charts';

  chartType = 'PieChart'; // Chart Type
  chartData = [
    ['Task', 'Hours per Day'],
    ['Work', 8],
    ['Eat', 2],
    ['Commute', 2],
    ['Watch TV', 2],
    ['Sleep', 8]
  ]; // Chart Data

  chartOptions = {
    title: 'My Daily Activities',
    pieHole: 0.4,  // Doughnut Style
    width: 600,
    height: 400
  };

  // Custom event function
  onChartClick(event: any) {
    alert(`You clicked on: ${event.chart.getSelection()[0]?.row}`);
  }

  // Function to handle events when chart is ready
  onChartReady() {
    console.log('Chart is ready to use');
  }
}

এখানে, আমরা একটি Pie Chart তৈরি করেছি এবং onChartClick নামে একটি Custom Event ফাংশন তৈরি করেছি যা ইউজার যখন চার্টের কোন অংশে ক্লিক করবে, তখন একটি এলার্ট দেখাবে এবং ক্লিক করা সেগমেন্টের তথ্য প্রদর্শন করবে।


Step 4: HTML ফাইলে ইন্টারঅ্যাকটিভ চার্ট রেন্ডার করা

এখন, app.component.html ফাইলে আমরা google-chart কম্পোনেন্ট ব্যবহার করে চার্ট রেন্ডার করব এবং Custom Event-এর জন্য ইভেন্ট হ্যান্ডলার যোগ করব।

app.component.html:

<h1>{{ title }}</h1>

<!-- Google Chart কম্পোনেন্ট -->
<google-chart 
  [type]="chartType" 
  [data]="chartData" 
  [options]="chartOptions" 
  (chartReady)="onChartReady()" 
  (chartSelect)="onChartClick($event)">
</google-chart>

এখানে:

  • chartReady: এটি চার্ট রেন্ডার হওয়ার পরে কল হবে।
  • chartSelect: এটি ইউজার যখন চার্টের কোনও অংশে ক্লিক করবে, তখন কল হবে এবং আমরা সেই ইভেন্টকে onChartClick ফাংশনে পাঠাব।

Step 5: অ্যাপ্লিকেশন চালানো

এখন Angular অ্যাপ্লিকেশনটি চালাতে নিচের কমান্ডটি ব্যবহার করুন:

ng serve

এটি ডিফল্টভাবে অ্যাপ্লিকেশনটি http://localhost:4200 এ রান করবে। আপনার ব্রাউজারে গিয়ে আপনি Pie Chart দেখতে পাবেন এবং চার্টের কোন অংশে ক্লিক করলে এলার্ট দেখাবে, যা সেগমেন্টের উপর নির্ভর করবে।


Custom Events এর অন্যান্য উদাহরণ

Google Charts API তে Custom Events এর মাধ্যমে আপনি আরও বিভিন্ন ধরনের ইন্টারঅ্যাকশন যোগ করতে পারেন, যেমন:

1. Selection Event (সিলেকশন ইভেন্ট)

চার্টের উপর ক্লিক করার সময় সিলেক্টেড এলিমেন্টের তথ্য দেখতে চান, তখন chartSelect ইভেন্ট ব্যবহার করা হয়।

onChartClick(event: any) {
  const selection = event.chart.getSelection();
  if (selection.length > 0) {
    const item = selection[0];
    alert(`You selected: ${this.chartData[item.row][0]}`);
  }
}

2. Mouseover Event (মাউসওভার ইভেন্ট)

চার্টের উপরে মাউস হোভার করলে কোন ইনফরমেশন বা টুলটিপ প্রদর্শন করতে পারেন।

onMouseOver(event: any) {
  const row = event.chart.getSelection()[0]?.row;
  alert(`You hovered over: ${this.chartData[row][0]}`);
}

সারাংশ

Custom Events এবং Interactive Charts এর মাধ্যমে আপনি Google Charts-এ ইন্টারঅ্যাকশন এবং ইউজার ইভেন্ট পরিচালনা করতে পারেন। আপনি যেমন, chartSelect (ক্লিক ইভেন্ট), chartReady (চার্ট রেডি হওয়ার ইভেন্ট) ইত্যাদি ব্যবহার করে বিভিন্ন ধরনের ইন্টারঅ্যাকশন যুক্ত করতে পারেন। এই ইভেন্টগুলি আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব করে তোলে, যেখানে আপনি ইউজারের ইন্টারঅ্যাকশন অনুসারে চার্টে ডেটা বা ইনফরমেশন প্রদর্শন করতে পারবেন।

Content added By
Promotion