blockly

חבילת Blockly

שיעורים

מחלקה תיאור
חסימה כיתה לבלוק אחד. בדרך כלל לא קוראים לפונקציה הזו ישירות, עדיף להשתמש בפונקציה workspace.newBlock().
BlockFlyoutInflater המחלקות שאחראיות ליצירת בלוקים בחלונות קופצים.
BlockNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת מתוך בלוק.
BlockSvg המחלקות לייצוג SVG של בלוק. בדרך כלל לא קוראים לפונקציה הזו ישירות, עדיף להשתמש בפונקציה workspace.newBlock().
ButtonFlyoutInflater המחלקות שאחראיות ליצירת לחצנים בחלונות קופצים.
CodeGenerator Class for a code generator that translates the blocks into a language.
CollapsibleToolboxCategory כיתה לקטגוריה בארגז כלים שאפשר לכווץ.
ComponentManager חשבון ניהול לכל הפריטים שרשומים ב-Workspace.
חיבור הכיתה לחיבור בין בלוקים.
ConnectionChecker Class for connection type checking logic.
ConnectionDB מסד נתונים של חיבורים. הקשרים מאוחסנים לפי הרכיב האנכי שלהם. כך אפשר לחפש במהירות קשרים באזור מסוים באמצעות חיפוש בינארי.
ConnectionNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת מחיבור.
ContextMenuRegistry המחלקות לרישום של פריטים בתפריט ההקשר. הכוונה היא שזה יהיה singleton. אין ליצור מופע חדש, אלא לגשת לכיתה הזו רק מ-ContextMenuRegistry.registry.
DeleteArea מחלקת בסיס לרכיב שיכול למחוק בלוק או בועה שמועברים מעליו.
DragTarget מחלקה מופשטת לרכיב עם התנהגות מותאמת אישית כשגוררים בלוק או בועה מעליו או משחררים אותו מעליו.
FieldCheckbox המחלקת של שדה תיבת הסימון.
FieldDropdown הכיתה של שדה נפתח שניתן לעריכה.
FieldImage הסיווג של תמונה בבלוק.
FieldLabel Class for a non-editable, non-serializable text field.
FieldLabelSerializable Class for a non-editable, serializable text field.
FieldNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת משדה.
FieldNumber מחלקת שדות מספרים שניתנים לעריכה.
FieldTextInput המחלקות של שדה טקסט שאפשר לערוך.
FieldVariable מחלקה לשדה של תפריט נפתח של משתנה.
FlyoutButton הסיווג של כפתור או תווית בחלונית הנפתחת.
FlyoutButtonNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת מתוך לחצן נפתח.
FlyoutItem ייצוג של פריט שמוצג בחלון קופץ.
FlyoutMetricsManager חישוב מדדים של סביבת עבודה בחלונית צדדית. המדדים משמשים בעיקר לקביעת הגודל של פסי הגלילה בחלון הקופץ.
FlyoutNavigationPolicy מדיניות ניווט כללית שמאפשרת ניווט בין פריטים בתפריט הנפתח.
FlyoutNavigator
FlyoutSeparator ייצוג של רווח בין אלמנטים בתפריט נפתח.
FlyoutSeparatorNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת ממפריד בחלון קופץ. זהו placeholder ללא פעולה, כי אי אפשר לנווט אל מפרידים בתפריט הנפתח.
FocusableTreeTraverser כלי עזר להטמעות של IFocusableTree, שמסייע במעברים נפוצים בין צמתים בעץ.
FocusManager

סינגלטון לכל דף שמנהל את המיקוד של Blockly בכמה רכיבי IFocusableTree, ומסנכרן את המיקוד הזה עם ה-DOM באופן דו-כיווני.

מתקשרים שרוצים לשנות באופן מפורש את מיקוד הקלט עבור רכיבי Blockly נבחרים בדף צריכים להשתמש בפונקציות המיקוד במנהל הזה.

האחריות של המנהל היא לטפל באירועי מיקוד מ-DOM (שעשויים לנבוע מלחיצה של משתמשים על רכיבי דף) ולוודא שצמתים תואמים של IFocusableNode מסומנים בבירור כהדגשה פעילה או פסיבית, באותו אופן שבו זה היה מיוצג באמצעות קריאות ל-focusNode().

תנועה כיתה לתנועה אחת.
Grid מחלקת רשת של סביבת עבודה.
HorizontalFlyout הסיווג של התפריט הנפתח.
קלט כיתה לקלט עם שדות אופציונליים.
InsertionMarkerPreviewer
KeyboardNavigationController המחלק KeyboardNavigationController מטפל בתיאום של התנהגות הניווט במקלדת ב-Blockly, כמו הפעלה או השבתה של ויזואליזציה מלאה של הסמן.
LabelFlyoutInflater המחלקות שאחראיות ליצירת תוויות בחלונות קופצים.
LineCursor מחלקת קורס לסמן שורה.
סמן הכיתה של סמן. המאפיין הזה משמש בניווט באמצעות מקלדת כדי לשמור מיקום ב-Blockly AST.
MarkerManager מחלקת ניהול של כמה סמנים ושל הסמן בסביבת עבודה.
תפריט מחלקה בסיסית של תפריט.
MenuItem מחלקת ייצוג של פריט בתפריט.
MetricsManager החשבון הראשי לכל החישובים של מדדי סביבת העבודה.
שמות מחלקת מסד נתונים של שמות ישויות (משתנים, פרוצדורות וכו').
Navigator המחלקות שאחראיות לקביעה לאן המיקוד צריך לעבור בתגובה לפקודות ניווט במקלדת.
אפשרויות ניתוח האפשרויות שהמשתמש ציין, תוך שימוש בערכי ברירת מחדל סבירים במקרים שבהם ההתנהגות לא צוינה.
RenderedConnection מחלקת חיבור בין בלוקים שאפשר לעבד במסך.
פס גלילה מחלקה עבור פס גלילה של SVG טהור. הטכניקה הזו מציעה פס גלילה שמובטח שיפעל, אבל יכול להיות שהוא לא ייראה או יתנהג כמו פסי הגלילה של המערכת.
ScrollbarPair מחלקה לזוג סרגלי גלילה. אופקי ואנכי.
SeparatorFlyoutInflater המחלקות שאחראיות ליצירת מפרידים בחלונות קופצים.
ShortcutRegistry Class for the registry of keyboard shortcuts. הכוונה היא שזה יהיה singleton. לא מומלץ ליצור מופע חדש, אלא לגשת לכיתה הזו רק מ-ShortcutRegistry.registry.
עיצוב הכיתה שבה משתמשים בעיצוב.
ThemeManager מחלקת אחסון ועדכון של עיצוב ורכיבי ממשק משתמש של סביבת עבודה.
הודעה קופצת מחלקת Notification שמאפשרת הצגה וסגירה של התראות זמניות.
Toolbox Class for a Toolbox. יוצר את ה-DOM של ארגז הכלים.
ToolboxCategory Class לקטגוריה בארגז כלים.
ToolboxItem הכיתה של פריט בארגז הכלים.
ToolboxSeparator הסיווג של מפריד ארגז הכלים. זהו הקו החזותי הדק שמופיע בארגז הכלים. אי אפשר לקיים אינטראקציה עם הפריט הזה.
פח אשפה מחלקה לפח אשפה.
UnattachedFieldError מייצג שגיאה שבה השדה מנסה לגשת לבלוק שלו או למידע על הבלוק לפני שהוא מצורף לבלוק.
VariableMap מחלקה למפה של משתנה. הוא מכיל מבנה נתונים של מילון עם סוגי משתנים כמפתחות ורשימות של משתנים כערכים. רשימת המשתנים היא הסוג שמצוין על ידי המפתח.
VariableModel מחלקה למודל משתנה. המשתנה מכיל מידע, כולל שם, מזהה וסוג.
VerticalFlyout הסיווג של התפריט הנפתח.
Workspace הכיתה של סביבת העבודה. זהו מבנה נתונים שמכיל בלוקים. אין ממשק משתמש, ואפשר ליצור אותו ללא ראש.
WorkspaceAudio מחלקת טעינה, אחסון והפעלה של אודיו בסביבת עבודה.
WorkspaceDragger הכיתה של רכיב הגרירה של סביבת העבודה. היא מזיזה את סביבת העבודה כשגוררים אותה באמצעות עכבר או מגע.
WorkspaceNavigationPolicy קבוצת כללים ששולטת בניווט במקלדת מסביבת עבודה.
WorkspaceSvg הכיתה של סביבת העבודה. זהו אזור במסך עם אפשרויות כמו פח אשפה, סרגלי גלילה, בועות וגרירה.
ZoomControls הסיווג של אמצעי הבקרה לשינוי מרחק התצוגה.

מחלקות אבסטרקטיות

מחלקת אבסטרקט תיאור
שדה מחלקה מופשטת לשדה שניתן לערוך.
Flyout הסיווג של התפריט הנפתח.

ערכי ספירה

ספירה תיאור
ConnectionType סוג החיבור או הקלט.

פונקציות

פונקציה תיאור
getFocusManager() פונקציית נוחות ל-FocusManager.getFocusManager.
hasBubble(obj) פונקציית type guard שבודקת אם האובייקט הנתון הוא IHasBubble.
hideChaff(opt_onlyClosePopups) סגירת הסברים קצרים, תפריטי הקשר, בחירות בתפריטים נפתחים וכו'.
inject(container, opt_options)‎ הוספת עורך Blockly לרכיב הקונטיינר שצוין (בדרך כלל div).
isCopyable(obj)
isDeletable(obj) הפונקציה מחזירה תשובה אם האובייקט הנתון הוא IDeletable.
isDraggable(obj) הפונקציה מחזירה תשובה אם האובייקט הנתון הוא IDraggable או לא.
isIcon(obj) בודק אם האובייקט הנתון הוא IIcon.
isPaster(obj)
isRenderedElement(obj)
isSelectable(obj) בודקת אם האובייקט הנתון הוא ISelectable.
isSerializable(obj) Type guard שבודק אם האובייקט הנתון הוא ISerializable.
isVariableBackedParameterModel(param) הפונקציה מחזירה תשובה אם האובייקט הנתון הוא משתנה או לא.
navigateBlock(current, delta) מחזירה את הפריט הבא שאפשר לנווט אליו ביחס לצאצא של הבלוק שצוין.
navigateStacks(current, delta) הפונקציה מחזירה את המיקום הבא או הקודם בערימה ביחס למיקום של הרכיב הנתון בערימה.
setLocale(locale)

מגדירה את הלוקאל (כלומר, את ההודעות/הטקסטים/וכו' שמותאמים לשוק המקומי) ללוקאל שצוין.

השיטה הזו לא שימושית או נחוצה כשמבצעים טעינה מתג סקריפט, כי ההודעות נטענות אוטומטית לאובייקט Blockly.Msg. אבל אנחנו מספקים אותו גם בהקשר של תג script וגם בהקשר של תג שאינו script, כדי שה-tscompiler יוכל ליצור בצורה תקינה את קובצי הגדרת הטיפוסים שלנו.

ממשקים

ממשק תיאור
BlocklyOptions אפשרויות של Blockly.
FieldCheckboxConfig אפשרויות ההגדרה של שדה תיבת הסימון.
FieldCheckboxFromJsonConfig אפשרויות ההגדרה של fromJson לשדה של תיבת הסימון.
FieldConfig אפשרויות הגדרה נוספות לשדה הבסיס.
FieldDropdownFromJsonConfig הגדרת fromJson לשדה של התפריט הנפתח.
FieldImageConfig אפשרויות הגדרה לשדה התמונה.
FieldImageFromJsonConfig אפשרויות ההגדרה של fromJson לשדה התמונה.
FieldLabelConfig אפשרויות הגדרה לשדה התווית.
FieldLabelFromJsonConfig אפשרויות ההגדרה של fromJson לשדה התווית.
FieldNumberConfig אפשרויות ההגדרה של שדה המספר.
FieldNumberFromJsonConfig אפשרויות ההגדרה של fromJson לשדה המספר.
FieldTextInputFromJsonConfig אפשרויות ההגדרה של fromJson לשדה קלט הטקסט.
FieldVariableConfig אפשרויות ההגדרה של שדה המשתנה.
FieldVariableFromJsonConfig אפשרויות ההגדרה של fromJson לשדה המשתנה.
IAutoHideable ממשק לרכיב שאפשר להסתיר באופן אוטומטי.
IBoundedElement ממשק של רכיב מוגבל.
IBubble ממשק בועות.
ICollapsibleToolboxItem ממשק לפריט בארגז הכלים שאפשר לכווץ.
IComponent הממשק של רכיב בסביבת עבודה שאפשר לרשום ב-ComponentManager.
IConnectionChecker Class for connection type checking logic.
IConnectionPreviewer מציג תצוגות מקדימות חזותיות של המקום שבו יתחבר בלוק אם הוא יושמט.
IContextMenu
ICopyable
IDeletable הממשק של אובייקט שאפשר למחוק.
IDeleteArea ממשק לרכיב שיכול למחוק בלוק או בועה שמועברים מעליו.
IDraggable מייצג אובייקט שאפשר לגרור.
IDragger
IDragStrategy
IDragTarget ממשק לרכיב עם התנהגות מותאמת אישית כשגוררים בלוק או בועה מעליו או משחררים אותם מעליו.
IFlyout ממשק של חלונית צד.
IFlyoutInflater
IFocusableNode מייצג כל דבר שיכול להיות ממוקד לקלט.
IFocusableTree

מייצג עץ של רכיבים שאפשר להתמקד בהם עם הקשר פוקוס פעיל/סביל משלו.

הערה: המיקוד מטופל על ידי FocusManager, ובכל רגע נתון יכול להיות מיקוד לכל היותר של IFocusableNode אחד בהטמעות של עץ. אם המיקוד הוא על העץ עצמו, הצומת הממוקד בעץ נחשב 'פעיל' ('לא פעיל' אם המיקוד הוא על עץ אחר).

המיקוד משותף בין עץ אחד או יותר, כאשר לכל עץ יכול להיות בדיוק צומת פעיל או פסיבי אחד (ובכל רגע נתון יכול להיות רק צומת פעיל אחד בכל הדף). הרעיון של מיקוד פסיבי הוא לספק למשתמשים הקשר לגבי המיקום שבו המיקוד ישוחזר כשהם יחזרו לעץ שבו היה מיקוד קודם.

הערה: אם נדרש הצומת הנוכחי שמוקד עליו (פסיבי או פעיל) בעץ, אפשר להשתמש ב-FocusableTreeTraverser.findFocusedNode.

שימו לב: אם צריך לאחזר צמתים ספציפיים בעץ הזה, אפשר להשתמש ב-lookUpFocusableNode או ב-FocusableTreeTraverser.findFocusableNodeFor.

IHasBubble
IIcon
IKeyboardAccessible ממשק לאובייקט שמטפל במקשי קיצור.
ImageProperties הגדרה של אפשרות לתפריט נפתח של תמונות שאנשים יכולים לקרוא.
IMetricsManager ממשק לניהול מדדים.
IMovable הממשק של אובייקט שאפשר להזיז.
INavigationPolicy קבוצת כללים שמציינת לאן הניווט באמצעות המקלדת צריך להמשיך.
IPaster אובייקט שאפשר להדביק בו נתונים בסביבת עבודה.
IPositionable ממשק לרכיב שממוקם מעל סביבת העבודה.
IRegistrable הממשק של רכיב Blockly שאפשר לרשום.
IRenderedElement
ISelectable

הממשק של אובייקט שאפשר לבחור.

בדרך כלל, בהטמעות נעשה שימוש בהטמעות של onNodeFocus()‎ ו-onNodeBlur()‎ כדי לקרוא ל-setSelected()‎ עם עצמן ועם null, בהתאמה, כדי לוודא שהבחירות מתעדכנות בצורה נכונה ושהאירוע של שינוי הבחירה מופעל.

ISelectableToolboxItem ממשק לפריט בארגז הכלים שאפשר לבחור.
ISerializable
IStyleable ממשק לאובייקט שאפשר להוסיף לו סגנון.
IToolbox ממשק לארגז כלים.
IToolboxItem ממשק של פריט בארגז הכלים.
IVariableBackedParameterModel ממשק למודל פרמטר שמכיל מודל משתנה.
IVariableMap

מיפויי משתנים הם אובייקטים של מאגרי נתונים שאחראים לאחסון ולניהול של קבוצת המשתנים שמופיעים בהפניה בסביבת עבודה.

כל אחת מהשיטות האלה יכולה להגדיר אינווריאנטים לגבי שמות וסוגים חוקיים, ולזרוק אם הם לא מתקיימים.

IVariableModel
IVariableState מייצג את המצב של משתנה נתון.
ToastOptions אפשרויות תצוגה או הגדרה של התראות קופצות.

מרחבי שמות

מרחב שמות תיאור
חסימה
blockAnimations
blockRendering
browserEvents
בועות
bumpObjects
clipboard
CollapsibleToolboxCategory
תגובות
common
ComponentManager
constants
ContextMenu
ContextMenuItems
ContextMenuRegistry
Css
תיבת דו-שיח
גרירה
אירועים
תוספים
fieldRegistry
geras
סמלים
ICopyable
inputs
layers
libraryBlocks
MetricsManager
שמות
אפשרויות
תהליכים
registry
RenderedConnection
renderManagement
serialization
ShortcutItems
ShortcutRegistry
עיצוב
ThemeManager
עיצובים
thrasos
הודעה קופצת אפשרויות לקביעת רמת האגרסיביות שבה קוראי המסך יקראו את ההודעות הקצרות. הערכים תואמים לאלה של aria-live.
ToolboxCategory
ToolboxSeparator
הסבר קצר על
מגע
uiPosition
utils
משתנים
VariablesDynamic
WidgetDiv
Xml
zelos

משתנים

משתנה תיאור
חסימות מיפוי של שמות סוגי בלוקים לאובייקטים של אב טיפוס של בלוקים.
COLLAPSE_CHARS
COLLAPSED_FIELD_NAME
COLLAPSED_INPUT_NAME
config אובייקט שמכיל את כל הערכים ב-Blockly שאנחנו מצפים שמפתחים יוכלו לשנות.
defineBlocksWithJsonArray מגדירים בלוקים ממערך של הגדרות בלוקים ב-JSON, כמו אלה שעשויים להיווצר על ידי כלי הפיתוח של Blockly.
DELETE_VARIABLE_ID
DropDownDiv
getMainWorkspace מחזירה את סביבת העבודה הראשית. הפונקציה מחזירה את סביבת העבודה הראשית האחרונה שהייתה בשימוש (על סמך המיקוד). מומלץ להימנע משימוש בפונקציה הזו, במיוחד אם יש כמה מופעים של Blockly בדף.
getSelected מחזירה את האובייקט הנוכחי שאפשר להעתיק.
INPUT_VALUE
JavaScript
keyboardNavigationController מופע Singleton של בקר הניווט במקלדת.
Msg מילון של הודעות שמותאמות לשוק המקומי.
NEXT_STATEMENT
OPPOSITE_TYPE
OUTPUT_VALUE
PREVIOUS_STATEMENT
PROCEDURE_CATEGORY_NAME מחרוזת לשימוש במאפיין 'custom' של קטגוריה בקובץ XML של ארגז הכלים. המחרוזת הזו מציינת שהקטגוריה צריכה להתאכלס באופן דינמי עם בלוקים של פרוצדורות.
RENAME_VARIABLE_ID
setParentContainer מגדירים את מאגר התגים הראשי. זהו רכיב מאגר התגים שבו מתבצע העיבוד של WidgetDiv,‏ dropDownDiv ו-Tooltip בפעם הראשונה שמתבצעת קריאה ל-Blockly.inject. השיטה הזו היא NOP אם היא נקראת אחרי Blockly.inject הראשון.
svgResize הגדרת הגודל של תמונת ה-SVG כך שתמלא את הקונטיינר שלה. צריך להפעיל את הפונקציה הזו כשהתצוגה משנה את הגודל שלה (למשל, כשמשנים את הגודל של חלון או את כיוון המכשיר). אפשר לעיין ב-workspace.resizeContents כדי לשנות את הגודל של סביבת העבודה כשהתוכן משתנה (למשל, כשמוסיפים או מסירים בלוק). תיעוד הגובה והרוחב של תמונת ה-SVG.
TOOLBOX_AT_BOTTOM
TOOLBOX_AT_LEFT
TOOLBOX_AT_RIGHT
TOOLBOX_AT_TOP
VARIABLE_CATEGORY_NAME מחרוזת לשימוש במאפיין 'custom' של קטגוריה בקובץ XML של ארגז הכלים. המחרוזת הזו מציינת שהקטגוריה צריכה להתמלא באופן דינמי בחסימות משתנות.
VARIABLE_DYNAMIC_CATEGORY_NAME מחרוזת לשימוש במאפיין 'custom' של קטגוריה בקובץ XML של ארגז הכלים. המחרוזת הזו מציינת שהקטגוריה צריכה להתמלא באופן דינמי בחסימות משתנות.
VERSION גרסת הליבה של Blockly. סקריפט ה-build (npm run build) מחליף את הקבוע הזה בערך של הגרסה בקובץ package.json. הפעולה הזו מתבצעת על ידי Closure Compiler במשימת ה-gulp‏ buildCompressed. בגרסאות build מקומיות, אפשר להעביר את האפשרות ‎--define='Blockly.VERSION=X.Y.Z' לקומפיילר כדי לשנות את הקבוע הזה.

כינויי סוגים

סוג הכינוי תיאור
FieldCheckboxValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
FieldDropdownConfig אפשרויות ההגדרה של השדה בתפריט הנפתח.
FieldDropdownValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
FieldNumberValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
FieldTextInputConfig אפשרויות הגדרה לשדה הזנת הטקסט.
FieldTextInputValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
FieldValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
FieldVariableValidator פונקציה שמופעלת כדי לאמת שינויים בערך של השדה לפני שהם מוגדרים.
ICopyData
MenuGenerator מערך של אפשרויות בתפריט או פונקציה שיוצרת מערך של אפשרויות בתפריט עבור FieldDropdown או צאצאיו.
MenuGeneratorFunction פונקציה שיוצרת מערך של אפשרויות בתפריט עבור FieldDropdown או צאצאים שלו.
MenuOption אפשרות ספציפית בתפריט הנפתח. יכול להיות המחרוזת separator עבור פריט הפרדה בתפריט, או מערך עבור פריטים רגילים בתפריט הפעולות. במקרה השני, הרכיב הראשון הוא הערך שניתן לקריאה על ידי בני אדם (טקסט, אובייקט ImageProperties או רכיב HTML), והרכיב השני הוא הערך שאינו תלוי בשפה.
ReturnEphemeralFocus

הצהרת סוג להחזרת המיקוד אל FocusManager לאחר השלמת זרימת ממשק משתמש חולפת (כמו תיבת דו-שיח).

פרטים נוספים זמינים במאמר בנושא FocusManager.takeEphemeralFocus.