फ़ील्ड क्लास
बदलाव किए जा सकने वाले फ़ील्ड के लिए ऐब्स्ट्रैक्ट क्लास.
हस्ताक्षर:
export declare abstract class Field<T = any> implements IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
इस्तेमाल करता है: IKeyboardAccessible, IRegistrable, ISerializable, IFocusableNode
निर्माता
निर्माता | मॉडिफ़ायर | ब्यौरा |
---|---|---|
(constructor)(value, validator, config) | Field क्लास का नया इंस्टेंस बनाता है |
प्रॉपर्टी
प्रॉपर्टी | मॉडिफ़ायर | टाइप | ब्यौरा |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | रेंडर किए गए फ़ील्ड का SVG बॉर्डर एलिमेंट. |
clickTarget_ | protected |
एलिमेंट | null | वह एलिमेंट जिस पर क्लिक हैंडलर बाउंड है. |
constants_ | protected |
ConstantProvider | null | सोर्स ब्लॉक के रेंडरर से जुड़े कॉन्स्टेंट. |
DEFAULT_VALUE | T | null | **फ़ील्ड** में सेट की गई डिफ़ॉल्ट वैल्यू को बदलने के लिए, सीधे प्रोटोटाइप को अपडेट करें. उदाहरण: |
|
बदलाव किया जा सकता है | बूलियन | बदलाव किए जा सकने वाले फ़ील्ड में आम तौर पर कोई यूज़र इंटरफ़ेस (यूआई) दिखता है, जिससे पता चलता है कि उनमें बदलाव किया जा सकता है. इन्हें सीरियलाइज़र भी सेव करेगा. | |
enabled_ | protected |
बूलियन | क्या बदलाव किए जा सकने वाले ब्लॉक में, एडिटर का इस्तेमाल करके फ़ील्ड की वैल्यू बदली जा सकती है? |
fieldGroup_ | protected |
SVGGElement | null | रेंडर किए गए फ़ील्ड का SVG ग्रुप एलिमेंट. |
isDirty_ | protected |
बूलियन | क्या इस ब्लॉक को फिर से रेंडर करने की ज़रूरत है? |
maxDisplayLength | संख्या | एलिप्सिस जोड़ने से पहले, टेक्स्ट के ज़्यादा से ज़्यादा वर्ण. | |
name? | स्ट्रिंग | (ज़रूरी नहीं) फ़ील्ड का नाम. हर ब्लॉक में यूनीक होना चाहिए. आम तौर पर, स्टैटिक लेबल के नाम नहीं होते. | |
NBSP |
|
(एलान नहीं किया गया) | नॉन-ब्रेकिंग स्पेस. |
SERIALIZABLE | बूलियन | सीरियलाइज़र, सीरियलाइज़ किए जा सकने वाले फ़ील्ड को सेव करता है, लेकिन सीरियलाइज़ नहीं किए जा सकने वाले फ़ील्ड को सेव नहीं करता. बदलाव किए जा सकने वाले फ़ील्ड, सीरियलाइज़ किए जा सकने वाले होने चाहिए. ऐसा डिफ़ॉल्ट रूप से नहीं होता, ताकि SERIALIZABLE पुराने सिस्टम के साथ काम कर सके. | |
size_ | protected |
साइज़ | इस फ़ील्ड का साइज़ दिखाता है. getSize() और updateSize() के साइड इफ़ेक्ट होते हैं. इसलिए, यह उन सबक्लास के लिए शिम के तौर पर काम करता है जो साइज़ सेट करने/पाने के दौरान, फ़ील्ड के बाउंड में बदलाव करना चाहते हैं. ऐसा, अनचाहे रेंडरिंग या अन्य साइड इफ़ेक्ट को ट्रिगर किए बिना किया जाता है. ध्यान दें कि अगर किसी सबक्लास में get या set में से किसी एक को बदला जाता है, तो उसे *दोनों* को बदलना होगा. इसे लागू करने के लिए, सीधे तौर पर super को कॉल किया जा सकता है. हालांकि, यह JS स्पेसिफ़िकेशन के मुताबिक मौजूद होना चाहिए. |
SKIP_SETUP |
|
यूनीक सिंबल | यह वैल्यू, फ़ील्ड के कन्स्ट्रक्टर को फ़ील्ड की वैल्यू सेट करने या configure_ को चलाने से रोकने के लिए इस्तेमाल की जाती है. साथ ही, यह किसी सबक्लास को ऐसा करने की अनुमति देती है. |
sourceBlock_ | protected |
ब्लॉक करें | null | वह ब्लॉक जिससे यह फ़ील्ड जुड़ा है. यह वैल्यू शुरू में null होती है. इसके बाद, इसे init फ़ंक्शन में सेट किया जाता है. |
textContent_ | protected |
टेक्स्ट | null | रेंडर किए गए फ़ील्ड का टेक्स्ट कॉन्टेंट एलिमेंट. |
textElement_ | protected |
SVGTextElement | null | रेंडर किए गए फ़ील्ड का SVG टेक्स्ट एलिमेंट. |
validator_ | protected |
FieldValidator<T> | null | पुष्टि करने वाला फ़ंक्शन, जब उपयोगकर्ता बदलाव किए जा सकने वाले फ़ील्ड में बदलाव करता है, तब उसे कॉल किया जाता है. |
value_ | protected |
T | null | |
visible_ | protected |
बूलियन | क्या फ़ील्ड दिख रहा है या ब्लॉक को छोटा करने की वजह से छिपा हुआ है? |
तरीके
तरीका | मॉडिफ़ायर | ब्यौरा |
---|---|---|
applyColour() | ब्लॉक के रंग/स्टाइल से मैच करने के लिए फ़ील्ड को अपडेट करता है. अगर फ़ील्ड का रंग ब्लॉक के रंग पर निर्भर करता है, तो नॉन-अब्स्ट्रैक्ट सब-क्लास इसे लागू कर सकते हैं. यह ज़रूरी समय पर अपने-आप कॉल हो जाएगा. जैसे, जब पैरंट ब्लॉक या रेंडरर बदलता है. ज़्यादा जानकारी के लिए, फ़ील्ड का दस्तावेज़ देखें या उदाहरण के लिए, FieldDropdown देखें. |
|
bindEvents_() | protected |
इवेंट को फ़ील्ड से बांधें. अगर सबक्लास को कस्टम इनपुट मैनेज करने की ज़रूरत है, तो वे इस वैल्यू को बदल सकते हैं. |
canBeFocused() | IFocusableNode.canBeFocused देखें. | |
configure_(config) | protected |
फ़ील्ड में पास किए गए कॉन्फ़िगरेशन मैप को प्रोसेस करें. |
createBorderRect_() | protected |
फ़ील्ड बॉर्डर रेक्ट एलिमेंट बनाएं. सबक्लास से बदला नहीं जा सकता. इसके बजाय, initView में फ़ंक्शन के नतीजे में बदलाव करें या कॉल करने के लिए कोई अलग फ़ंक्शन बनाएं. |
createTextElement_() | protected |
फ़ील्ड टेक्स्ट एलिमेंट बनाएं. सबक्लास से बदला नहीं जा सकता. इसके बजाय, initView में फ़ंक्शन के नतीजे में बदलाव करें या कॉल करने के लिए कोई अलग फ़ंक्शन बनाएं. |
dispose() | बदलाव किए जा सकने वाले इस फ़ील्ड से जुड़े सभी DOM ऑब्जेक्ट और इवेंट हटाएं. | |
doClassValidation_(newValue) | protected |
फ़ील्ड की वैल्यू में बदलाव सेट होने से पहले, उनकी पुष्टि करें. सबक्लास लागू करने का उदाहरण देखने के लिए, **FieldDropdown** देखें. **ध्यान दें:** पुष्टि करने पर, |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected |
इसका इस्तेमाल, फ़ील्ड को यह सूचना देने के लिए किया जाता है कि अमान्य वैल्यू डाली गई है. सबक्लास से बदला जा सकता है. इसके लिए, FieldTextInput देखें. डिफ़ॉल्ट रूप से कोई कार्रवाई नहीं की जाती. |
doValueUpdate_(newValue) | protected |
इसका इस्तेमाल, किसी फ़ील्ड की वैल्यू अपडेट करने के लिए किया जाता है. वैल्यू का कस्टम स्टोरेज करने/बाहरी चीज़ों को अपडेट करने के लिए, सबक्लास इसे बदल सकते हैं. |
forceRerender() | इस फ़ील्ड को इंस्टॉल किए गए ब्लॉक को फिर से रेंडर करने के लिए मजबूर करें. इससे, यह फ़ील्ड फिर से रेंडर हो जाएगा और साइज़ में हुए किसी भी बदलाव के हिसाब से अडजस्ट हो जाएगा. उसी ब्लॉक के दूसरे फ़ील्ड फिर से रेंडर नहीं होंगे, क्योंकि उनके साइज़ पहले से ही रिकॉर्ड किए जा चुके हैं. | |
fromJson(_options) | static |
सबक्लास को JSON आर्ग ऑब्जेक्ट से अपना फ़ील्ड सबक्लास बनाने के लिए, इस तरीके को फिर से लागू करना चाहिए. अगर किसी फ़ील्ड सबक्लास ने इस तरीके को बदला नहीं है, तो FieldRegistry में फ़ील्ड सबक्लास को रजिस्टर करने की कोशिश करना गड़बड़ी है. |
fromXml(fieldElement) | दिए गए एक्सएमएल एलिमेंट के आधार पर, फ़ील्ड की वैल्यू सेट करता है. इसे सिर्फ़ Blockly.Xml से कॉल किया जाना चाहिए. | |
getAbsoluteXY_() | protected |
इस फ़ील्ड के सबसे ऊपर बाएं कोने के सटीक निर्देशांक दिखाता है. ऑरिजिन (0,0) पेज के मुख्य हिस्से के सबसे ऊपर बाएं कोने में होता है. |
getBorderRect() | protected |
बॉर्डर रेक्टैंगल एलिमेंट को दिखाता है. |
getClickTarget_() | protected |
वह एलिमेंट जिस पर क्लिक करने पर क्लिक हैंडलर काम करेगा. अगर इसे साफ़ तौर पर सेट नहीं किया जाता है, तो यह फ़ील्ड के SVG रूट पर डिफ़ॉल्ट रूप से सेट हो जाता है. बदलाव किए जा सकने वाले फ़ील्ड पर इस एलिमेंट पर क्लिक करने से, एडिटर खुल जाएगा. |
getConstants() | रेंडरर का कॉन्स्टेंट प्रोवाइडर पाएं. | |
getDisplayText_() | protected |
ब्लॉक पर दिखाने के लिए, इस फ़ील्ड से टेक्स्ट पाएं. एलिप्सिस और अन्य फ़ॉर्मैटिंग की वजह से, यह getText से अलग हो सकता है. |
getFlipRtl() | यह बताता है कि हमें फ़ील्ड को आरटीएल में फ़्लिप करना चाहिए या नहीं. | |
getFocusableElement() | IFocusableNode.getFocusableElement देखें. | |
getFocusableTree() | IFocusableNode.getFocusableTree देखें. | |
getSize() | फ़ील्ड की ऊंचाई और चौड़ाई दिखाता है. *आम तौर पर*, render_ को सिर्फ़ यहां से कॉल किया जाना चाहिए. |
|
getSourceBlock() | वह ब्लॉक पाएं जिससे यह फ़ील्ड जुड़ा है. | |
getSvgRoot() | बदलाव किए जा सकने वाले इस फ़ील्ड के लिए ग्रुप एलिमेंट पाता है. इसका इस्तेमाल साइज़ को मेज़र करने और पोज़िशनिंग के लिए किया जाता है. | |
getText_() | protected |
इस फ़ील्ड से मिले टेक्स्ट को बदलने के लिए डेवलपर हुक. अगर इस फ़ील्ड की वैल्यू का टेक्स्ट, सिर्फ़ वैल्यू की स्ट्रिंग कास्ट नहीं है, तो बदलें. स्ट्रिंग कास्ट का इस्तेमाल करने के लिए, शून्य दिखाएं. |
getText() | इस फ़ील्ड से टेक्स्ट पाएं. वैल्यू को स्ट्रिंग में कास्ट करने के बजाय, अलग तरह का व्यवहार देने के लिए getText_ को बदलें. | |
getTextContent() | protected |
टेक्स्ट कॉन्टेंट पाता है. |
getTextElement() | protected |
टेक्स्ट एलिमेंट को दिखाता है. |
getTooltip() | इस फ़ील्ड के लिए टूलटिप टेक्स्ट दिखाता है. | |
getValidator() | बदलाव किए जा सकने वाले फ़ील्ड के लिए पुष्टि करने वाला फ़ंक्शन दिखाता है. अगर यह सेट नहीं है, तो शून्य दिखाता है. | |
getValue() | फ़ील्ड की मौजूदा वैल्यू पाएं. | |
initModel() | ब्लॉक पर इंस्टॉल होने के बाद, फ़ील्ड के मॉडल को शुरू करता है. डिफ़ॉल्ट रूप से कोई कार्रवाई नहीं की जाती. | |
initView() | protected |
इस फ़ील्ड के लिए ब्लॉक यूज़र इंटरफ़ेस बनाएं. |
isClickable() | देखें कि यह फ़ील्ड, showEditor_ फ़ंक्शन को तय करता है या नहीं. | |
isClickableInFlyout(autoClosingFlyout) | देखें कि फ़्लाईआउट में ब्लॉक होने पर, फ़ील्ड पर क्लिक किया जा सकता है या नहीं. डिफ़ॉल्ट रूप से, फ़ील्ड हमेशा खुले रहने वाले फ़्लाईआउट में क्लिक किए जा सकते हैं, जैसे कि आसान टूलबॉक्स. हालांकि, कैटगरी टूलबॉक्स जैसे अपने-आप बंद होने वाले फ़्लाईआउट में, फ़ील्ड क्लिक नहीं किए जा सकते. इस व्यवहार को बदलने के लिए, सबक्लास इस फ़ंक्शन को बदल सकते हैं. ध्यान दें कि isClickable के सही होने पर ही, इस फ़ंक्शन का असर पड़ेगा. |
|
isCurrentlyEditable() | देखें कि इस फ़ील्ड में फ़िलहाल बदलाव किया जा सकता है या नहीं. कुछ फ़ील्ड में कभी भी बदलाव नहीं किया जा सकता. जैसे, टेक्स्ट लेबल. अन्य फ़ील्ड में बदलाव किया जा सकता है, लेकिन हो सकता है कि वे ऐसे ब्लॉक में मौजूद हों जिनमें बदलाव नहीं किया जा सकता या फ़िलहाल वे बंद हों. | |
isEnabled() | देखें कि सोर्स ब्लॉक में बदलाव करने की सुविधा होने पर, एडिटर का इस्तेमाल करके इस फ़ील्ड की वैल्यू बदली जा सकती है या नहीं. | |
isSerializable() | देखें कि इस फ़ील्ड को एक्सएमएल रेंडरर से क्रम में लगाया जाना चाहिए या नहीं. पुराने सिस्टम के साथ काम करने की सुविधा और अलग-अलग स्थितियों के लिए लॉजिक को मैनेज करता है. | |
isVisible() | यह पता लगाता है कि बदलाव किए जा सकने वाले इस फ़ील्ड को दिखाया जा रहा है या नहीं. | |
loadLegacyState(callingClass, state) | अगर पुराने एक्सएमएल हुक का इस्तेमाल किया जाना चाहिए, तो दिए गए स्टेटस को लोड करता है. लोडिंग की प्रोसेस पूरी हो जाने पर 'सही' दिखाता है. ऐसा न होने पर 'गलत' दिखाता है. | |
loadState(state) | दी गई स्थिति की वैल्यू के आधार पर, फ़ील्ड की स्थिति सेट करता है. इसे सिर्फ़ सीरियलाइज़ेशन सिस्टम से कॉल किया जाना चाहिए. | |
onLocationChange(_) | फ़ील्ड को सूचना देता है कि उसकी जगह बदल गई है. | |
onMouseDown_(e) | protected |
किसी फ़ील्ड पर pointerdown इवेंट को हैंडल करना. |
onNodeBlur() | IFocusableNode.onNodeBlur देखें. | |
onNodeFocus() | IFocusableNode.onNodeFocus देखें. | |
onShortcut(_shortcut) | दिए गए कीबोर्ड शॉर्टकट को मैनेज करता है. | |
positionBorderRect_() | protected |
साइज़ बदलने के बाद, फ़ील्ड के बॉर्डर रेक्ट की पोज़िशन तय करना. |
positionTextElement_(xOffset, contentWidth) | protected |
साइज़ बदलने के बाद, फ़ील्ड के टेक्स्ट एलिमेंट की पोज़िशन तय करना. यह LTR और RTL, दोनों तरह की पोज़िशनिंग को मैनेज करता है. |
referencesVariables() | यह फ़ील्ड, Blockly के किसी वैरिएबल का रेफ़रंस देता है या नहीं. अगर यह सही है, तो हो सकता है कि इसे सीरियलाइज़ेशन और डीसीरियलाइज़ेशन के दौरान अलग तरीके से मैनेज करना पड़े. सबक्लास इसे बदल सकते हैं. | |
refreshVariableName() | अगर इस फ़ील्ड में वैरिएबल का रेफ़रंस दिया गया है, तो इस फ़ील्ड से रेफ़र किए गए वैरिएबल के नाम को रीफ़्रेश करें. | |
render_() | protected |
getSize() का इस्तेमाल, किसी भी डीओएम एलिमेंट को मूव करने/उसका साइज़ बदलने और नया साइज़ पाने के लिए किया जाता है. ब्लॉक के साइज़/आकार पर असर डालने वाली सभी रेंडरिंग यहां की जानी चाहिए. साथ ही, इसे getSize() से ट्रिगर किया जाना चाहिए. |
repositionForWindowResize() | विंडो के साइज़ में बदलाव होने पर, WidgetDiv की जगह बदलने के लिए डेवलपर हुक. अगर आपके फ़ील्ड में कोई WidgetDiv है, जिसे विंडो का साइज़ बदलने पर अपने-आप फिर से पोज़िशन करना है, तो आपको यह हुक तय करना होगा. उदाहरण के लिए, टेक्स्ट इनपुट फ़ील्ड इस हुक को तय करते हैं, ताकि इनपुट विजेटDiv, विंडो के साइज़ में बदलाव होने पर अपने-आप अपनी जगह बदल सके. यह खास तौर पर तब ज़रूरी होता है, जब मॉडल इनपुट बंद कर दिए गए हों. ऐसा इसलिए, क्योंकि Android डिवाइसों पर सॉफ़्ट कीबोर्ड खुलने पर, विंडो का साइज़ बदलने वाला इवेंट ट्रिगर होगा. अगर आपको WidgetDiv को जगह बदलने के बजाय छिपाना है, तो false दिखाएं. यह डिफ़ॉल्ट व्यवहार है. DropdownDivs पहले से ही अपनी पोज़िशनिंग लॉजिक को मैनेज करते हैं. इसलिए, अगर आपके फ़ील्ड में सिर्फ़ DropdownDiv है, तो आपको इस फ़ंक्शन को बदलने की ज़रूरत नहीं है. |
|
saveLegacyState(callingClass) | protected |
अगर एक्सएमएल स्टेटस का इस्तेमाल किया जाना चाहिए, तो यह फ़ंक्शन उस स्टेटस का स्ट्रिंग फ़ॉर्मैट में बदला हुआ वर्शन दिखाता है. ऐसा न होने पर, यह null दिखाता है, ताकि फ़ील्ड को अपने सीरियलाइज़ेशन का इस्तेमाल करना चाहिए. |
saveState(_doFullSerialization) | इस फ़ील्ड की वैल्यू को ऐसी वैल्यू के तौर पर सेव करता है जिसे JSON में सीरियलाइज़ किया जा सकता है. इसे सिर्फ़ सीरियलाइज़ेशन सिस्टम से कॉल किया जाना चाहिए. | |
setEnabled(enabled) | सेट करें कि सोर्स ब्लॉक में बदलाव करने की सुविधा होने पर, एडिटर का इस्तेमाल करके इस फ़ील्ड की वैल्यू बदली जा सकती है या नहीं. | |
setSourceBlock(block) | इस फ़ील्ड को किसी ब्लॉक से अटैच करें. | |
setTooltip(newTip) | इस फ़ील्ड के लिए टूलटिप सेट करता है. | |
setValidator(handler) | बदलाव किए जा सकने वाले फ़ील्ड के लिए, पुष्टि करने का नया फ़ंक्शन सेट करता है या पहले से सेट किए गए पुष्टि करने वाले प्रोग्राम को हटा देता है. पुष्टि करने वाला फ़ंक्शन, फ़ील्ड की नई वैल्यू लेता है और पुष्टि की गई वैल्यू दिखाता है. पुष्टि की गई वैल्यू, इनपुट वैल्यू, इनपुट वैल्यू का बदला गया वर्शन या बदलाव को रोकने के लिए शून्य हो सकती है. अगर फ़ंक्शन कोई वैल्यू नहीं दिखाता है या कोई वैल्यू नहीं दिखाता है, तो नई वैल्यू को मान्य माना जाता है. ऐसा इसलिए किया जाता है, ताकि पुष्टि किए गए फ़ंक्शन का इस्तेमाल, फ़ील्ड-लेवल पर बदलाव की सूचना देने वाले इवेंट के तौर पर किया जा सके. |
|
setValue(newValue, fireChangeEvent) | इसका इस्तेमाल, फ़ील्ड की वैल्यू बदलने के लिए किया जाता है. पुष्टि और इवेंट को मैनेज करता है. सबक्लास को इस तरीके के बजाय, doClassValidation_ और doValueUpdate_ को ओवरराइड करना चाहिए. | |
showEditor_(_e) | protected |
फ़ील्ड के लिए एडिटर बनाने के लिए डेवलपर हुक. यह डिफ़ॉल्ट रूप से काम नहीं करता. एडिटर बनाने के लिए, इसे बदलना होगा. |
toXml(fieldElement) | इस फ़ील्ड की वैल्यू को एक्सएमएल में सीरियलाइज़ करता है. इसे सिर्फ़ Blockly.Xml से कॉल किया जाना चाहिए. | |
updateEditable() | इस फ़ील्ड में बदलाव किया जा सकता है या नहीं, यह बताने वाला यूज़र इंटरफ़ेस (यूआई) जोड़ें या हटाएं. | |
updateSize_(margin) | protected |
टेक्स्ट के आधार पर फ़ील्ड का साइज़ अपडेट करता है. |