ফিল্ড ক্লাস
একটি সম্পাদনাযোগ্য ক্ষেত্রের জন্য বিমূর্ত শ্রেণী।
স্বাক্ষর:
export declare abstract class Field<T = any> implements IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
প্রয়োগ: IKeyboard অ্যাক্সেসযোগ্য , নিবন্ধনযোগ্য , ISerializable , IFocusableNode
কনস্ট্রাক্টর
কনস্ট্রাক্টর | সংশোধক | বর্ণনা |
---|---|---|
(নির্মাণকারী)(মান, যাচাইকারী, কনফিগারেশন) | Field ক্লাসের একটি নতুন উদাহরণ তৈরি করে |
বৈশিষ্ট্য
সম্পত্তি | সংশোধক | টাইপ | বর্ণনা |
---|---|---|---|
সীমান্তরেক্ট_ | protected | SVGRectElement | নাল | রেন্ডার করা ক্ষেত্রের SVG সীমানা উপাদান। |
ক্লিক টার্গেট_ | protected | উপাদান | নাল | যে উপাদানটিতে ক্লিক হ্যান্ডলার আবদ্ধ। |
ধ্রুবক_ | protected | ধ্রুবক প্রদানকারী | নাল | উৎস ব্লকের রেন্ডারারের সাথে যুক্ত ধ্রুবক। |
DEFAULT_VALUE | টি | নাল | **ফিল্ড**-এ সেট করা ডিফল্ট মানটিকে ওভাররাইট করতে, সরাসরি প্রোটোটাইপ আপডেট করুন। উদাহরণ: | |
সম্পাদনাযোগ্য | বুলিয়ান | সম্পাদনাযোগ্য ক্ষেত্রগুলি সাধারণত কিছু ধরণের UI দেখায় যা নির্দেশ করে যে সেগুলি সম্পাদনাযোগ্য৷ তারা সিরিয়ালাইজার দ্বারা সংরক্ষণ করা হবে. | |
সক্রিয়_ | protected | বুলিয়ান | একটি সম্পাদনাযোগ্য ব্লকে সম্পাদক ব্যবহার করে ক্ষেত্রের মান পরিবর্তন করা যেতে পারে? |
ফিল্ড গ্রুপ_ | protected | SVGGE উপাদান | নাল | রেন্ডার করা ক্ষেত্রের SVG গ্রুপ উপাদান। |
নোংরা_ | protected | বুলিয়ান | এই ব্লক পুনরায় রেন্ডার করা প্রয়োজন? |
সর্বোচ্চ প্রদর্শনের দৈর্ঘ্য | সংখ্যা | একটি উপবৃত্ত যোগ করার আগে প্রদর্শনের জন্য পাঠ্যের সর্বাধিক অক্ষর৷ | |
নাম? | স্ট্রিং | (ঐচ্ছিক) ক্ষেত্রের নাম। প্রতিটি ব্লকের মধ্যে অনন্য। স্ট্যাটিক লেবেল সাধারণত নামহীন হয়. | |
এনবিএসপি | | (ঘোষিত নয়) | নন-ব্রেকিং স্পেস। |
সিরিয়ালাইজেবল | বুলিয়ান | ক্রমিকযোগ্য ক্ষেত্রগুলি সিরিয়ালাইজার দ্বারা সংরক্ষণ করা হয়, অ-ক্রমিক ক্ষেত্রগুলি নয়। সম্পাদনাযোগ্য ক্ষেত্রগুলিও ক্রমিক হতে হবে। এটি ডিফল্টভাবে হয় না যাতে SERIALIZABLE পিছনের দিকে সামঞ্জস্যপূর্ণ হয়। | |
আকার_ | protected | আকার | এই ক্ষেত্রের আকার পায়. যেহেতু getSize() এবং updateSize() এর পার্শ্বপ্রতিক্রিয়া রয়েছে, এটি অবাঞ্ছিত রেন্ডারিং বা অন্যান্য পার্শ্ব প্রতিক্রিয়া ট্রিগার না করে আকার নির্ধারণ/পাওয়ার সময় ফিল্ড বাউন্ড সামঞ্জস্য করতে চায় এমন সাবক্লাসগুলির জন্য একটি শিম হিসাবে কাজ করে। মনে রাখবেন যে উপশ্রেণিগুলি অবশ্যই ওভাররাইড করতে হবে *উভয়* get এবং সেট যদি উভয়ই ওভাররাইড করা হয়; বাস্তবায়ন শুধুমাত্র সুপার থেকে সরাসরি কল করতে পারে, তবে এটি অবশ্যই জেএস স্পেকের জন্য বিদ্যমান থাকতে হবে। |
SKIP_SETUP | | অনন্য প্রতীক | একটি ফিল্ডের কনস্ট্রাক্টর যখন ফিল্ডের মান *সেট* না করে বা কনফিগার চালায়_ তখন সংকেত দিতে ব্যবহৃত একটি মান, এবং এর পরিবর্তে একটি সাবক্লাসকে এটি করার অনুমতি দেওয়া উচিত। |
উৎস ব্লক_ | protected | ব্লক | নাল | ব্লক এই ক্ষেত্র সংযুক্ত করা হয়. শূন্য হিসাবে শুরু হয়, তারপর init এ সেট করুন। |
পাঠ্য বিষয়বস্তু_ | protected | পাঠ্য | নাল | রেন্ডার করা ক্ষেত্রের পাঠ্য বিষয়বস্তুর উপাদান। |
পাঠ্য উপাদান_ | protected | SVGTextElement | নাল | রেন্ডার করা ক্ষেত্রের SVG পাঠ্য উপাদান। |
যাচাইকারী_ | protected | ফিল্ড ভ্যালিডেটর <T> | নাল | যখন ব্যবহারকারী একটি সম্পাদনাযোগ্য ক্ষেত্র সম্পাদনা করে তখন বৈধকরণ ফাংশন বলা হয়। |
মান_ | protected | টি | নাল | |
দৃশ্যমান_ | protected | বুলিয়ান | ক্ষেত্রটি কি দৃশ্যমান, বা ব্লকটি ধসে পড়ার কারণে লুকানো আছে? |
পদ্ধতি
পদ্ধতি | সংশোধক | বর্ণনা |
---|---|---|
রঙ প্রয়োগ করুন() | ব্লকের রঙ/স্টাইলের সাথে মেলে ফিল্ড আপডেট করে। যদি ক্ষেত্রের রঙ ব্লকের রঙের উপর নির্ভর করে তবে অ-বিমূর্ত উপ-শ্রেণীগুলি এটি বাস্তবায়ন করতে ইচ্ছুক হতে পারে। এটি স্বয়ংক্রিয়ভাবে প্রাসঙ্গিক সময়ে কল করা হবে, যেমন যখন প্যারেন্ট ব্লক বা রেন্ডারার পরিবর্তন হয়। আরও তথ্যের জন্য ফিল্ড ডকুমেন্টেশন দেখুন, বা উদাহরণের জন্য FieldDropdown দেখুন। | |
bindEvents_() | protected | ইভেন্টগুলিকে মাঠের সাথে আবদ্ধ করুন। কাস্টম ইনপুট হ্যান্ডলিং করার প্রয়োজন হলে সাবক্লাস দ্বারা ওভাররাইড করা যেতে পারে। |
হতে পারে ফোকাসড() | IFocusableNode.canBeFocused দেখুন। | |
কনফিগার_(কনফিগার) | protected | ক্ষেত্রে পাস করা কনফিগারেশন মানচিত্র প্রক্রিয়া করুন। |
CreateBorderRect_() | protected | একটি ফিল্ড বর্ডার রেক্ট এলিমেন্ট তৈরি করুন। সাবক্লাস দ্বারা ওভাররাইড করা যাবে না। পরিবর্তে initView-এর ভিতরে ফাংশনের ফলাফল পরিবর্তন করুন, অথবা কল করার জন্য একটি পৃথক ফাংশন তৈরি করুন। |
CreateTextElement_() | protected | একটি ক্ষেত্র পাঠ্য উপাদান তৈরি করুন। সাবক্লাস দ্বারা ওভাররাইড করা যাবে না। পরিবর্তে initView-এর ভিতরে ফাংশনের ফলাফল পরিবর্তন করুন, অথবা কল করার জন্য একটি পৃথক ফাংশন তৈরি করুন। |
নিষ্পত্তি() | এই সম্পাদনাযোগ্য ক্ষেত্রের অন্তর্গত সমস্ত DOM বস্তু এবং ইভেন্ট নিষ্পত্তি করুন। | |
doClassValidation_(নতুন মান) | protected | একটি ক্ষেত্রের মান সেট করার আগে পরিবর্তনগুলি যাচাই করুন৷ সাবক্লাস বাস্তবায়নের উদাহরণের জন্য **ফিল্ডড্রপডাউন** দেখুন। **দ্রষ্টব্য:** বৈধকরণ |
doClassValidation_(নতুন মান) | protected | |
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected | একটি অবৈধ মান ইনপুট ছিল ক্ষেত্র বিজ্ঞপ্তি ব্যবহৃত. সাবক্লাস দ্বারা ওভাররাইড করা যেতে পারে, FieldTextInput দেখুন। ডিফল্টরূপে কোন অপশন. |
doValueUpdate_(নতুন মান) | protected | একটি ক্ষেত্রের মান আপডেট করতে ব্যবহৃত হয়। বাহ্যিক জিনিসগুলির মানগুলির কাস্টম স্টোরেজ/আপডেট করতে সাবক্লাস দ্বারা ওভাররাইড করা যেতে পারে। |
forceRerender() | এই ক্ষেত্রটি যে ব্লকে ইনস্টল করা আছে তার একটি পুনঃরেন্ডার বাধ্যতামূলক করুন, যা এই ক্ষেত্রটিকে পুনরায় রেন্ডার করবে এবং যেকোনো আকার পরিবর্তনের জন্য সামঞ্জস্য করবে। একই ব্লকের অন্যান্য ক্ষেত্রগুলি পুনরায় রেন্ডার করা হবে না, কারণ তাদের আকার ইতিমধ্যে রেকর্ড করা হয়েছে৷ | |
Json(_বিকল্প) থেকে | static | একটি JSON arg অবজেক্ট থেকে তাদের ফিল্ড সাবক্লাস তৈরি করতে সাবক্লাসগুলিকে এই পদ্ধতিটি পুনরায় প্রয়োগ করা উচিত। ফিল্ডরেজিস্ট্রিতে একটি ফিল্ড সাবক্লাস নিবন্ধন করার চেষ্টা করা একটি ত্রুটি যদি সেই সাবক্লাসটি এই পদ্ধতিটি ওভাররাইড না করে থাকে। |
এক্সএমএল থেকে (ক্ষেত্রের উপাদান) | প্রদত্ত XML উপাদানের উপর ভিত্তি করে ক্ষেত্রের মান সেট করে। শুধুমাত্র Blockly.Xml দ্বারা কল করা উচিত। | |
getAbsoluteXY_() | protected | এই ক্ষেত্রের উপরের-বাম কোণে পরম স্থানাঙ্কগুলি ফেরত দিন। মূল (0,0) হল পৃষ্ঠার মূল অংশের উপরের-বাম কোণে। |
getBorderRect() | protected | সীমানা আয়তক্ষেত্র উপাদান পায়। |
getClickTarget_() | protected | ক্লিক হ্যান্ডলারকে আবদ্ধ করার উপাদান। স্পষ্টভাবে সেট করা না থাকলে, ক্ষেত্রের SVG রুটে ডিফল্ট হয়। যখন এই উপাদানটি একটি সম্পাদনাযোগ্য ক্ষেত্রে ক্লিক করা হয়, তখন সম্পাদক খুলবে। |
getConstants() | রেন্ডারার ধ্রুবক প্রদানকারী পান. | |
getDisplayText_() | protected | ব্লকে প্রদর্শনের জন্য এই ক্ষেত্র থেকে পাঠ্য পান। উপবৃত্তাকার এবং অন্যান্য বিন্যাসের কারণে getText থেকে ভিন্ন হতে পারে। |
getFlipRtl() | আমাদের RTL এ ফিল্ড ফ্লিপ করা উচিত কিনা তা রিটার্ন করে। | |
GetFocusable Element() | IFocusableNode.getFocusableElement দেখুন। | |
GetFocusableTree() | IFocusableNode.getFocusableTree দেখুন। | |
getSize() | ক্ষেত্রের উচ্চতা এবং প্রস্থ প্রদান করে। এটিই *সাধারণভাবে* একমাত্র স্থান হওয়া উচিত যেখান থেকে রেন্ডার_ কল করা হয়। | |
getSourceBlock() | এই ক্ষেত্র সংযুক্ত ব্লক পান. | |
getSvgRoot() | এই সম্পাদনাযোগ্য ক্ষেত্রের জন্য গ্রুপ উপাদান পায়। আকার পরিমাপ এবং অবস্থানের জন্য ব্যবহৃত হয়। | |
getText_() | protected | এই ক্ষেত্রের প্রত্যাবর্তিত পাঠ্যকে ওভাররাইড করতে একটি বিকাশকারী হুক৷ ওভাররাইড করুন যদি এই ক্ষেত্রের মানের টেক্সট উপস্থাপনা শুধুমাত্র এর মানের একটি স্ট্রিং কাস্ট না হয়। একটি স্ট্রিং কাস্ট অবলম্বন করতে নাল ফিরে যান। |
getText() | এই ক্ষেত্র থেকে পাঠ্য পান. একটি স্ট্রিং-এ মান কাস্ট করার চেয়ে ভিন্ন আচরণ প্রদান করতে getText_ ওভাররাইড করুন। | |
getTextContent() | protected | পাঠ্য বিষয়বস্তু পায়. |
getTextElement() | protected | পাঠ্য উপাদান পায়। |
getTooltip() | এই ক্ষেত্রের জন্য টুলটিপ পাঠ্য প্রদান করে। | |
getValidator() | সম্পাদনাযোগ্য ক্ষেত্রগুলির জন্য বৈধতা ফাংশন পায়, বা সেট না থাকলে শূন্য। | |
getValue() | ক্ষেত্রের বর্তমান মান পান। | |
initModel() | এটি একটি ব্লকে ইনস্টল করার পরে ক্ষেত্রের মডেলটি শুরু করে। ডিফল্টরূপে কোন অপশন. | |
initView() | protected | এই ক্ষেত্রের জন্য ব্লক UI তৈরি করুন। |
ক্লিকযোগ্য() | এই ক্ষেত্রটি showEditor_ ফাংশন সংজ্ঞায়িত করে কিনা তা পরীক্ষা করুন। | |
isClickableInFlyout(অটোক্লোজিংফ্লাইআউট) | ব্লকটি ফ্লাইআউটে থাকাকালীন ক্ষেত্রটি ক্লিকযোগ্য হবে কিনা তা পরীক্ষা করুন। ডিফল্ট হল যে ক্ষেত্রগুলি সর্বদা-খোলা ফ্লাইআউটগুলিতে যেমন সাধারণ টুলবক্সে ক্লিকযোগ্য, তবে স্বয়ংক্রিয়ভাবে বন্ধ হওয়া ফ্লাইআউট যেমন বিভাগ টুলবক্সে নয়। এই আচরণ পরিবর্তন করতে সাবক্লাস এই ফাংশন ওভাররাইড করতে পারে। মনে রাখবেন যে কোন প্রভাব ফেলতে এটির জন্য isClickable অবশ্যই সত্যে ফিরে আসবে। | |
বর্তমানে সম্পাদনাযোগ্য() | এই ক্ষেত্রটি বর্তমানে সম্পাদনাযোগ্য কিনা তা পরীক্ষা করুন। কিছু ক্ষেত্র কখনই সম্পাদনাযোগ্য নয় (যেমন পাঠ্য লেবেল)। অন্যান্য ক্ষেত্রগুলি সম্পাদনাযোগ্য হতে পারে তবে অসম্পাদনযোগ্য ব্লকগুলিতে বিদ্যমান থাকতে পারে বা বর্তমানে নিষ্ক্রিয় হতে পারে৷ | |
সক্রিয় () | উৎস ব্লক সম্পাদনাযোগ্য হলে সম্পাদক ব্যবহার করে এই ক্ষেত্রের মান পরিবর্তন করা যায় কিনা তা পরীক্ষা করুন। | |
ক্রমানুযায়ী() | XML রেন্ডারার দ্বারা এই ক্ষেত্রটি সিরিয়াল করা উচিত কিনা তা পরীক্ষা করুন৷ পিছনের সামঞ্জস্য এবং অসঙ্গতিপূর্ণ অবস্থার জন্য যুক্তি পরিচালনা করে। | |
isvisible() | এই সম্পাদনাযোগ্য ক্ষেত্রটি দৃশ্যমান কিনা তা পায়। | |
লোড লিগ্যাসিস্টেট (কলিংক্লাস, রাষ্ট্র) | পুরানো XML হুক ব্যবহার করে প্রদত্ত অবস্থা লোড করে, যদি সেগুলি ব্যবহার করা উচিত। লোডিং পরিচালনা করা হয়েছে নির্দেশ করার জন্য সত্য ফেরত দেয়, অন্যথায় মিথ্যা। | |
লোডস্টেট(স্টেট) | প্রদত্ত রাষ্ট্র মানের উপর ভিত্তি করে ক্ষেত্রের অবস্থা সেট করে। শুধুমাত্র সিরিয়ালাইজেশন সিস্টেম দ্বারা কল করা উচিত. | |
অবস্থান পরিবর্তন(_) | ক্ষেত্রটিকে অবহিত করে যে এটি অবস্থান পরিবর্তন করেছে। | |
onMouseDown_(e) | protected | একটি মাঠে একটি পয়েন্টারডাউন ইভেন্ট পরিচালনা করুন। |
অননোডব্লার() | IFocusableNode.onNodeBlur দেখুন। | |
onNodeFocus() | IFocusableNode.onNodeFocus দেখুন। | |
অনশর্টকাট(_শর্টকাট) | প্রদত্ত কীবোর্ড শর্টকাট পরিচালনা করে। | |
positionBorderRect_() | protected | একটি আকার পরিবর্তনের পরে একটি ক্ষেত্রের সীমানা রেক্টের অবস্থান করুন। |
positionTextElement_(xOffset, contentWidth) | protected | একটি আকার পরিবর্তনের পরে একটি ক্ষেত্রের পাঠ্য উপাদান অবস্থান করুন। এটি LTR এবং RTL উভয় পজিশনিং পরিচালনা করে। |
রেফারেন্স ভেরিয়েবল() | এই ক্ষেত্রটি কোন Blockly ভেরিয়েবল উল্লেখ করে কিনা। যদি সত্য হয় তবে এটি সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশনের সময় ভিন্নভাবে পরিচালনা করা প্রয়োজন হতে পারে। উপশ্রেণী এটি ওভাররাইড করতে পারে। | |
রিফ্রেশ ভেরিয়েবল নাম() | এই ক্ষেত্রের দ্বারা উল্লেখ করা ভেরিয়েবলের নামটি রিফ্রেশ করুন যদি এই ক্ষেত্রটি ভেরিয়েবল উল্লেখ করে। | |
রেন্ডার_() | protected | যেকোনো DOM উপাদান সরাতে/পুনঃআকার করতে getSize() দ্বারা ব্যবহৃত হয় এবং নতুন আকার পেতে। ব্লকের আকার/আকৃতিতে প্রভাব ফেলে এমন সমস্ত রেন্ডারিং এখানে করা উচিত এবং getSize() দ্বারা ট্রিগার করা উচিত। |
RepositionForWindowResize() | একটি উইন্ডোর আকার পরিবর্তন করার সময় WidgetDiv-এর স্থান পরিবর্তন করার জন্য একটি বিকাশকারী হুক৷ যদি আপনার ক্ষেত্রের একটি WidgetDiv থাকে যা উইন্ডোটির আকার পরিবর্তন করার সময় নিজেকে পুনরায় অবস্থান করতে হবে তাহলে আপনাকে এই হুকটি সংজ্ঞায়িত করতে হবে। উদাহরণস্বরূপ, টেক্সট ইনপুট ক্ষেত্রগুলি এই হুকটিকে সংজ্ঞায়িত করে যাতে ইনপুট WidgetDiv একটি উইন্ডো রিসাইজ ইভেন্টে নিজেকে পুনঃস্থাপন করতে পারে। এটি বিশেষ করে গুরুত্বপূর্ণ যখন মোডাল ইনপুটগুলি অক্ষম করা হয়েছে, কারণ সফ্ট কীবোর্ড খোলার সময় অ্যান্ড্রয়েড ডিভাইসগুলি একটি উইন্ডো রিসাইজ ইভেন্ট ফায়ার করবে৷ আপনি যদি চান WidgetDiv পুনরায় অবস্থানের পরিবর্তে নিজেকে লুকিয়ে রাখুক, তাহলে মিথ্যা ফেরত দিন। এটি ডিফল্ট আচরণ। DropdownDivs ইতিমধ্যেই তাদের নিজস্ব পজিশনিং লজিক পরিচালনা করে, তাই আপনার ক্ষেত্রে শুধুমাত্র একটি DropdownDiv থাকলে আপনাকে এই ফাংশনটিকে ওভাররাইড করার দরকার নেই। | |
সেভ লিগ্যাসিস্টেট (কলিং ক্লাস) | protected | XML অবস্থার একটি স্ট্রিংফাইড সংস্করণ প্রদান করে, যদি এটি ব্যবহার করা উচিত। অন্যথায় এটি শূন্য প্রদান করে, ক্ষেত্রটিকে সংকেত দিতে তার নিজস্ব সিরিয়ালাইজেশন ব্যবহার করা উচিত। |
saveState(_doFullSerialization) | এই ক্ষেত্রগুলির মানকে এমন কিছু হিসাবে সংরক্ষণ করে যা JSON-এ সিরিয়ালাইজ করা যেতে পারে। শুধুমাত্র সিরিয়ালাইজেশন সিস্টেম দ্বারা কল করা উচিত. | |
সেট সক্ষম (সক্ষম) | উৎস ব্লক সম্পাদনাযোগ্য হলে সম্পাদক ব্যবহার করে এই ক্ষেত্রের মান পরিবর্তন করা যাবে কিনা তা সেট করুন। | |
সেটসোর্সব্লক(ব্লক) | একটি ব্লক এই ক্ষেত্র সংযুক্ত করুন. | |
setTooltip(নতুন টিপ) | এই ক্ষেত্রের জন্য টুলটিপ সেট করে। | |
সেট ভ্যালিডেটর(হ্যান্ডলার) | সম্পাদনাযোগ্য ক্ষেত্রগুলির জন্য একটি নতুন বৈধতা ফাংশন সেট করে বা পূর্বে সেট করা একটি বৈধতা সাফ করে। ভ্যালিডেটর ফাংশনটি নতুন ফিল্ড মান নেয় এবং যাচাইকৃত মান প্রদান করে। যাচাইকৃত মানটি হতে পারে ইনপুট মান, ইনপুট মানের একটি পরিবর্তিত সংস্করণ বা পরিবর্তনটি বাতিল করার জন্য নাল। যদি ফাংশন কিছু ফেরত না দেয় (অথবা অনির্ধারিত প্রদান করে) নতুন মান বৈধ হিসাবে গৃহীত হয়। এটি একটি ক্ষেত্র-স্তরের পরিবর্তন ইভেন্ট বিজ্ঞপ্তি হিসাবে বৈধ ফাংশন ব্যবহার করে ক্ষেত্রগুলির জন্য অনুমতি দেওয়ার জন্য। | |
setValue(newValue, fireChangeEvent) | ক্ষেত্রের মান পরিবর্তন করতে ব্যবহৃত হয়। বৈধতা এবং ঘটনা পরিচালনা করে। সাবক্লাসগুলিকে এই পদ্ধতির পরিবর্তে doClassValidation_ এবং doValueUpdate_ ওভাররাইড করা উচিত। | |
showEditor_(_e) | protected | ক্ষেত্রের জন্য একটি সম্পাদক তৈরি করতে একটি বিকাশকারী হুক৷ এটি ডিফল্টরূপে নো-অপ, এবং একটি সম্পাদক তৈরি করতে ওভাররাইড করা আবশ্যক৷ |
toXml(ক্ষেত্রের উপাদান) | XML-এ এই ক্ষেত্রের মানকে সিরিয়ালাইজ করে। শুধুমাত্র Blockly.Xml দ্বারা কল করা উচিত। | |
আপডেট সম্পাদনাযোগ্য() | এই ক্ষেত্রটি সম্পাদনাযোগ্য কিনা তা নির্দেশ করে UI যোগ করুন বা সরান৷ | |
আপডেট সাইজ_(মার্জিন) | protected | পাঠ্যের উপর ভিত্তি করে ক্ষেত্রের আকার আপডেট করে। |