انتقل إلى المحتوى

جدول البيانات ​

UI.table يقسم قاعدة البيانات من الجزء السفلي من اللوحة القماشية: عقد الرسم البياني و الحواف كشبكة قابلة للفرز والاختيار. إنه موجود لأن تخطيط القوة هيكلي سيئ في ثلاثة أشياء يفعلها الناس باستمرار: قراءة القيم الدقيقة، والاختيار على نطاق واسع، و العمل من أين تبدأ.

الحلقة المقصودة هي ** يمكن العثور عليها، لوحة قماشية لفهمها، شريط جانبي للقراءة**: فرز حسب درجة لتحديد المحاور، ثم انقر مع الضغط على مفتاح Shift فوق العشرين العلوية، وقم بالتصرف عليها باستخدام الشريط الجانبي الإجراءات السائبة.

ts
const options = {
    UI: { mode: 'full' },
}

هذا هو كل ما يتطلبه الأمر. في الوضع full، يوجد الرصيف في الأسفل مطويًا على رأسه شريط; انقر على شارة الرتبة الخاصة بها — أو اضغط على Shift+T — لإظهار الجدول. UI.table: false يزيله تماما.

لا يوجد زر شريط أدوات لذلك بشكل متعمد. الشريط هو التحكم: الحبوب الموجودة في يفتح الشريط العلوي شيئًا ما فوق اللوحة القماشية، في حين أن الرصيف عبارة عن منطقة مقسمة بالفعل يظهر لك شيفرون الخاصة بها.

الإرساء هو الوضع full فقط — وهو عبارة عن صف شبكي بجوار الشريط الجانبي، والأوضاع الأخرى وعد بلوحة قماشية بدون الكثير من الكروم.

الجدول لا يغير شيئا لم تطلبه منه

قفص الاتهام لا يتغير شيئا. إنه يعكس الرسم البياني ويحدد التحديد؛ يختبئ و تثبيت البقاء مع الإجراءات المجمعة في الشريط الجانبي، واستعادة العقدة المخفية يبقى مع لوحة التصفية. ما يضيفه الرصيف هو أداة أفضل بكثير لـ بناء الاختيار الذي يعمل عليه.

الشيء الوحيد الذي يمكن تغييره هو ما تظهره اللوحة القماشية ****، وعند الطلب فقط: زر تطبيق على الرسم البياني يخفي العناصر التي تتجاهلها مرشحات العمود. وإلى أن تضغط عليه، يكون تضييق العمود بمثابة قراءة، وليس تصفية.

يسرد الرسم البياني بأكمله ​

الطاولة لا تعكس اللوحة القماشية لا. فهو يسرد كل عقدة - وفي علامة التبويب "الحواف" كل عقدة الحافة — بما في ذلك تلك المخفية حاليًا، والعمود Visibility البادئ يشير إلى المكان يقف كل واحد:

القيمةالتصميممعنى
visibleهادئ، غير ملونعلى القماش الآن
filteredرقاقة العنبرمخفي بواسطة مرشح - مرشح العقدة، أو بالنسبة للحافة، يتم إيقاف تشغيل layer. قم بتغيير الفلتر لاستعادته
excludedشريحة حمراءعقدة مخفية باليد؛ استعادته من قائمة العقد المخفية في لوحة التصفية
nestedمخطط متقطععقدة داخل كتلة أغلقتها اللوحة القماشية، أو حافة لها نهاية في واحدة: يتم رسم خطها إلى المجموعة. لا شيء تمت تصفيته. افتح المجموعة لرؤيتها
endpointمخطط محايدحافة تم تصفية نهايتها. لم يتم فعل أي شيء على الحافة نفسها

تختلف كل ولاية في الوزن والحدود وكذلك اللون، لذلك يقرأ العمود بدون الاعتماد على هوى. كما يتراجع الصف الكامل للعنصر المخفي، مع مراقبة ما هو موجود مرسومة في الواقع.

تقرأ الحافة endpoint بدلاً من filtered، لأن هذا هو السبب وراء حصولك على للإصلاح أولاً: أثناء اختفاء العقدة التي تلامسها، لا يمكن إعادة تشغيل طبقتها مرة أخرى الحافة مرة أخرى.

هذا متعمد. "23 عقدة مخفية" هو ادعاء يجب أن تكون قادرًا على فحصه، وأ الجدول الذي يسقط الصفوف التي تبحث عنها بهدوء هو أسوأ من عدم وجود جدول. الترتيب حسب Visibility لمعرفة ما الذي أخذه الفلتر بالضبط.

العقد داخل المجموعات ​

تحصل محتويات المجموعة على صفوف أيضًا، مثل peers من العقد الخاصة بالرسم البياني، مع عمود Cluster يوضح المسار الذي أتوا منه (Team B / Squad، الأبعد أولاً) و عمود أطفال يوضح حجم كل مجموعة. يظهر كلا العمودين كلما كان الرسم البياني لديه مجموعات. يقوم مفتاح Nested العقد الخاص بالرأس بإخراج هذه الصفوف مرة أخرى إذا كنت تريد المستوى الأعلى فقط، ولا تقدمه UI.table.nested: false أبدًا على الإطلاق.

لقد تم إدراجها بشكل مسطح بدلاً من وضع مسافة بادئة تحت مجموعتها عن قصد: الجدول موجود للإجابة على الأسئلة التي لا تستطيع اللوحة القماشية الإجابة عليها - ما هي العقد التي تمثل المحاور، والتي تقع على مدى العتبة - والتي تستمر في العمل فقط إذا وصل الفرز أو المرشح إلى كل صف بالتساوي. أ الشجرة يمكنها فقط فرز الأشقاء.

ما يستحق المعرفة هو أن العقدة المتداخلة لا يتم رسمها بواسطة هذا الرسم البياني. كتلة مفتوحة يعرض رسمًا بيانيًا فرعيًا منفصلاً خاصًا به، لذلك:

  • Visibility يقرأ nested أثناء إغلاق أي مجموعة فوق العقدة، وvisible مرة واحدة كلها مفتوحة. إنه ليس أبدًا filtered — لا يوجد مرشح يضعه هناك.
  • Degree يحسب الحواف الحقيقية للعقدة. بينما تكون مجموعتها مغلقة، فإن القماش يرسمها إلى المجموعة بدلاً من ذلك، لذلك هذا هو عدد العقدة الخاصة بدلاً من وصفها الصورة.
  • يؤدي النقر فوق الصف إلى تحديد العقدة، بحيث يمكن للشريط الجانبي إظهارها - وغالبًا ما تكون الطريقة الوحيدة لذلك الوصول إليه. تحلق اللوحة القماشية حول المجموعة المغلقة التي تمثلها. النقر المزدوج يفتح تلك المجموعة، مستوى واحد لكل ضغطة. مع render.enableNodeExpansion: false ال تظل المجموعة مغلقة ويتركز العرض عليها بدلاً من ذلك.

الفرز والتضييق ​

انقر فوق أي عنوان عمود للفرز؛ انقر مرة أخرى للعكس. تنمو الأعمدة القابلة للتصفية أ التحكم في الرأس الذي يضيق الصفوف — كل عمود في المجموعة المشتقة بها واحد، والعمود الذي تعلن عن نفسك يحصل على واحد عن طريق طلبه filterable: true.

التحكم الذي تحصل عليه يتبع العمود type، لذا يمكنك سؤال العمود عن هويته في الواقع قادر على الإجابة:

typeالسيطرةمباريات
numberRangeزوج Min / Maxداخل الفاصل؛ يمكن ترك أي من الطرفين فارغًا
select · multiselect · booleanقائمة منسدلة من القيم التي يحملها العمودتلك القيمة بالضبط، أو العضوية عندما تكون الخلية عبارة عن قائمة
text · regex · غير مكتوبمربع النصسلسلة فرعية غير حساسة لحالة الأحرف

يتم إنشاء القائمة المنسدلة من قيم العمود الخاصة بدلاً من قائمة الخيارات المعلنة، لذلك فهو لا يقدم أبدًا خيارًا قد يعود فارغًا. فوق 50 قيمة مميزة فإنه يخطو جانبًا بالنسبة لمربع النص - فالقائمة المنسدلة الطويلة ليست عنصر تحكم يمكن لأي شخص استخدامها.

مرشح الصف ليس مرشح الرسم البياني. إنه يغير ما أنت عليه تقرأ: اللوحة القماشية هي لم يمسها ويستمر العمود Visibility في نقل الحقيقة بجانبه، فيستطيع الاثنان نختلف دون أن يكون أي منهما مخطئا. يعد دفع التضييق على القماش أمرًا منفصلاً والفعل الصريح - انظر أدناه.

يعكس عدد الرصيف كلا من: 40 nodes يصبح 12 of 40 nodes بمجرد التضييق.

تطبيق المرشحات على الرسم البياني ​

تطبيق على الرسم البياني، في شريط الأدوات في شريط الأدوات، يخفي العناصر التي تتركها مرشحات العمود الخاص بك خارج. وهو الجسر بين نوعين من التصفية: تضييق الصفوف حتى الطاولة يسرد ما يهمك، ثم اضغط عليه مرة واحدة وستعرض اللوحة القماشية نفس الشيء.

إنها دفعة واحدة، وليست رابطًا مباشرًا، والزر يوضح أي حالة من الحالات الثلاث أنت في:

زرمعنى
Apply to graph، غير مضاءةلا شيء يتم دفعه. يتم تعطيله حتى يقوم مرشح الأعمدة بتضييق شيء ما.
Clear، مضاءةتمت تصفية الرسم البياني، وهو يتوافق مع عوامل التصفية الخاصة بك. اضغط لاستعادته.
Apply to graph، مضاءةتتم تصفية الرسم البياني بالضغط سابقًا وتنتقل عوامل التصفية الخاصة بك. اضغط لتحديثه.

هناك خاصيتان تستحقان المعرفة، لأنهما تجعلان الدفعة قابلة للتنبؤ بها:

  • إنه يخفي ** بالضبط الصفوف التي تركتها المرشحات** - لا "تظهر هذه فقط". إذن عقدة تمت إضافته بعد أن يبقى الدفع على القماش. ما دفعته هو بيان عن لحظة، ليس استعلامًا دائمًا. يضيق الجزء الداخلي للكتلة المفتوحة فقط بقدر الصفوف الخاصة بها كانوا من بين الذين تم استبعادهم. مع إيقاف تشغيل صفوف متداخلة، لا يوجد أي أسماء لهم والداخلية لم يمسها.
  • العمود Visibility هو أبدًا جزء من الدفع، على الرغم من أنه لا يزال يضيق الصفوف مثل أي شيء آخر. قيمها هي حالة مرشح الرسم البياني، لذا فإن دفعها سيؤدي إلى إخفاء أي شيء موجود حاليًا على القماش ومن ثم يختلف مع نفسه.

أثناء الدفع المباشر، يُبلغ العد عن كلا النصفين — 12 of 40 nodes · 28 hidden — و لوحة التصفية تنمو صف من الجدول يسميها ويمكن مسحها، لذا فإن الدفع ليس أبدًا مرشحًا لا يمكنك العثور عليه بمجرد طي الرصيف بعيدًا.

يهبط الضغط كمرشح واحد تحت مفتاح محجوز، مما يعني أنه يتكون مع لوحة التصفية بدلاً من التنافس معها: لا شيء تقوم بتعيينه في النموذج الخاص بتلك اللوحة على الإطلاق يضغط على الدفعة، والدفعة لا تؤدي أبدًا إلى مسح مرشحات اللوحة. يتم الجمع بين الاثنين، لذلك أ العقدة يجب أن تنجو من كليهما.

مرر filterGraph: false للوصول إلى الرصيف الذي لا يمكن لعناصر التحكم فيه لمس اللوحة القماشية على الإطلاق:

ts
const options = {
    UI: { mode: 'full', table: { filterGraph: false } },
}

اختيار ​

لفتةتأثير
انقر فوق صفحدد هذا العنصر
Ctrl / كمد انقرإضافة أو إزالة صف واحد
انقر مع الضغط على مفتاح Shiftخذ نطاقًا بالترتيب المدرج حاليًا
اختر الكلكل صف مدرج حاليًا - الفرز اللاحق، والتصفية اللاحقة
انقر نقرا مزدوجاحدد و قم بتوسيط اللوحة القماشية عليها
تحومتسليط الضوء على العنصر على القماش
انقر بزر الماوس الأيمنالعنصر قائمة السياق; يؤدي صف التحديد المتعدد إلى فتح التحديدات

إنه يعمل في كلا الاتجاهين: ربط مجموعة من القماش على القماش والصفوف المطابقة تم وضع علامة عليها وتمريرها إلى. التحديد هو نفسه الذي تقرأه الإجراءات المجمعة للشريط الجانبي، لذا يتم إغلاق الحلقة دون أي أسلاك إضافية.

يتم تحديد الصفوف المخفية مثل أي صفوف أخرى - وهذا هو الهدف من إدراجها.

الأعمدة ​

مع عدم الإعلان عن columns، يعمل الرصيف على حل المشكلة لك، في ثلاث مستويات:

  1. تم الإعلان عنها — UI.table.columns يفوز تمامًا.
  2. من وجوهكم — وإلا فإن أعلنتم UI.filter.facets، تُبنى منها الأعمدة. وصف الخاص بك البيانات مرة واحدة وتتفق لوحة التصفية والجدول عليها.
  3. الممسوحة ضوئيًا — وإلا ستتم قراءة البيانات، مرتبة حسب التغطية لذلك تأتي المفاتيح المأهولة جيدًا أولاً ويقع الذيل المتناثر في أقصى اليمين.

وفي كلتا الحالتين، تقوم الأعمدة المدركة للرسم البياني بتغليف البيانات. للعقد، Visibility و Label الرصاص - مزراب الحالة والاسم، الشيئين اللذين تقوم بمسحهما لأسفل للعثور على صف - انضم إليه Cluster على الرسم البياني الذي يحتوي على مجموعات، منذ صف متداخل يحتاج إلى أن يوضح من أين جاء. التهم إغلاقه: Degree، بالإضافة إلى Children على رسم بياني يحتوي على مجموعات. التهم تجلس في النهاية لأنها الحسابية للرسم البياني وليس بيانات العنصر الخاصة، وهي عبارة عن أعمدة ضيقة ذات عرض ثابت بحيث تتكون من رقمين لا تأخذ أبدًا حصة الصف التي يحتاجها الاسم. تحافظ الحواف على نفس Visibility الحضيض و ثم اقرأ جملة — Source / Label / Target.

الفرز الافتراضي هو العمود Label، وليس العمود السابق: الفرز حسب Visibility في open لا يخبرك بأي شيء بينما لا يزال كل صف يقرأ visible.

يتم عرض كل شيء بشكل افتراضي، ويتم تمرير الشبكة بشكل جانبي بدلاً من إسقاطها أي شيء. في العقد ذات الخصائص الثقيلة، استخدم منتقي Columns لإيقاف ما لا تفعله need - والذي يزيل أيضًا التحكم في الفلتر من الرأس.

الأعمدة المشتقة قابلة للتصفية. يتم استنتاج جميع تسمياتها وأنواعها ومحاذاتها بالفعل، ويتم استنتاج مرشح الصف من نفس النوع - لذا فإن الجدول الذي لم يتم تكوينه مطلقًا وهو أمر لا يزال بإمكانك تضييق نطاقه. الأعمدة المعلنة هي عكس ذلك: تحصل عليه المجموعة التي كتبتها بالضبط، filterable: false إلا إذا قلت خلاف ذلك.

الأعمدة المدمجة ​

tableColumns يحمل الأعمدة التي لا يمكن لأي شبكة عامة حسابها، لأنها تتعلق بـ مكان العنصر في الرسم البياني بدلاً من بياناته:

js
import { Pivotick, tableColumns } from 'pivotick'

new Pivotick(el, data, {
    UI: {
        mode: 'full',
        table: {
            open: true,
            // Reference a built-in's key through the object rather than typing it —
            // the key itself is namespaced so it can never clash with a data key.
            sort: { key: tableColumns.degree.key, direction: 'desc' },
            columns: [
                tableColumns.visibility,
                { ...tableColumns.degree, label: 'Links' },
                tableColumns.label,
                { key: 'severity', label: 'Severity', type: 'numberRange', filterable: true },
            ],
        },
    },
})

label · degree · degreeIn · degreeOut · visibility · pinned · children · cluster بالإضافة إلى source وtarget للحواف. استنساخ واحد لضبطه، على النحو الوارد أعلاه.

أ TableColumn هو FilterFacet مع بعض إضافات العرض التقديمي (width، align، sortable، filterable، hidden، format)، ولهذا السبب يمكن للوجه أن يمكن استخدامه كعمود دون تغيير.

تصدير ​

الأزرار CSV و JSON تكتب بالضبط ما تنظر إليه: علامة التبويب هذه، هذه الأعمدة المرئية بهذا الترتيب، وهذا الفرز، ومرشح هذا الصف. القيم الخام، أبدا أ إخراج العمود format، بحيث يظل الملف قابلاً للقراءة آليًا.

ليس الرسم البياني بأكمله — وهو graph.getNodes() متاح لأي شخص لديه رمز. تمرير export: false لترك الأزرار خارجاً.

التنزيلات في صفحة مضمنة

يمكن لإطار iframe المحمي بوضع الحماية أن يمنع التنزيل تمامًا. عندما يحدث ذلك، يقول الرصيف ذلك بدلاً من ترك زر يبدو أنه لا يفعل شيئًا.

مقياس ​

فوق virtualizeAbove صف (200 بشكل افتراضي) الصفوف هي نافذة: فقط ما يناسبها يوجد إطار العرض بالإضافة إلى الهامش في DOM، بينما لا يزال شريط التمرير يقيس الكل dataset. يؤدي الفرز إلى إعادة ترتيب المصفوفة الأساسية، وليس DOM أبدًا، وإعادة البناء تحافظ على كليهما موقف التمرير الخاص بك واختيارك.

يتم عرض كل صف أسفل العتبة، مما يجعل الحالة العادية بسيطة فحص.

الخيارات ​

الخيارالافتراضيماذا يفعل
enabledtruefalse (أو UI.table: false) يزيل المرسى بالكامل
tabs['nodes', 'edges']مشاهدات الجدول الخاصة. لا يوجد شريط داخلي
columns / edgeColumnsمشتقةانظر الأعمدة
openغير محدديبدأ Unset مطويًا على الشريط. true يبدأ بالتوسع؛ false لا يترك أي رصيف على الإطلاق (Shift+T لا يزال يحضره)
collapsedمطويةمطوية إلى شريط الرأس الخاص بها. مع open: true، 'auto' يتبع الغرفة المتاحة حتى تختارها بنفسك
height0.35عدد البكسل، أو جزء صغير من اللوحة القماشية. مثبتة بحيث تحافظ اللوحة القماشية على الحد الأدنى القابل للاستخدام
sortالعمود Label{ key, direction }
rowActivate'select''selectAndCenter' يقوم أيضًا بتحريك اللوحة القماشية؛ 'none' يجعل الصفوف خاملة
filterGraphtrueالعرض تنطبق على الرسم البياني. false لرسو السفن الذي لا يمكنه تصفية القماش أبدًا
nestedtrueقم بإدراج محتويات المجموعة كصفوف خاصة بها. انظر العقد داخل المجموعات
export['csv', 'json']false يخفي الأزرار
virtualizeAbove200عدد الصفوف التي يتم عرض الصفوف فوقها

الرصيف يحمل أكثر من الطاولة ​

الجدول عبارة عن جزء واحد في قفص الاتهام، وأي شيء آخر تقوم بتسجيله هو جزء آخر:

js
const dispose = graph.UIManager.addDockTab({
    label: 'Audit',
    render: () => myAuditPane(),        // called once, the first time the pane is opened
    toolbar: () => [clearButton],       // rebuilt on every activation
})

ثم يقرأ شريط الرصيف Table │ Audit. يؤدي التبديل إلى تبديل الجسم و الرأس الضوابط، منذ Select all، الصادرات و Columns تنتمي إلى الجدول والمتوسط لا شيء على جزء آخر. جزء واحد لا يعرض أي شريط على الإطلاق - لا ينبغي أن يشير أي شيء إلى أ التبديل مع إعداد واحد.

الجدول ليس حالة خاصة: فهو يأتي من خلال نفس addDockTab، لذا جزء منك التسجيل يساويه وليس ضيفه. order يضعها (تحفظ الطلبات المتساوية أمر التسجيل، ويتم تسجيل الجزء لاحقًا - كما هو الحال دائمًا في البرنامج الإضافي - بعد ذلك المدمج فيها). يقوم المتخلص المرتجع بإزالته.

هناك منطقة واحدة، لذلك هناك ارتفاع واحد وطية واحدة، مهما كانت الأجزاء الموجودة فيها. لا يمكن لكل لوحين أن يقفا على شريط يمكن تغيير حجمه ويتقاتلان على القماش.

لذلك يمكن إضافة جزء ** دون إظهاره: فهو يربط الشريط بالشريط المطوي مضمن، وينتظر أن يتم النقر عليه. activateDockTab هو الفعل المنفصل لجلب واحد إلى الأمام، والشيء الوحيد الذي يتكشف قفص الاتهام.

مستويين للتبديل ولماذا يبدوان مختلفين ​

Nodes و Edges هما ** علامات التبويب** الخاصة بالجدول، وليس في قفص الاتهام. وهما وجهتا نظر أ جزء واحد، لذلك لم يتم إدراجها بجانب Audit — وهذا من شأنه المطالبة بعرض الجدول والجزء المنفصل هما نفس الشيء.

يتم رسم المستويين بشكل مختلف حتى يتمكنوا من الجلوس بجانب بعضهم البعض وما زالوا يقرأون كما هو الخارجي والداخلي:

يبدوفئة
Table │ Auditعلامات تبويب كاملة الارتفاع، يتم وضع خط تحتها عندما تكون نشطة، ويتم إغلاقها بقاعدةpvt-dock-tabs / pvt-dock-tab
Nodes │ Edgesمجموعة حبوب صغيرة مجزأةpvt-dock-views / pvt-dock-view

يقوم الجزء الذي له طرق العرض الخاصة به بما يفعله الجدول: ارسم المفتاح في toolbar، و اتصل بالرقم refresh() على المقبض لتغيير الجسم. الطبقات الداخلية عامة، لذلك الخاص بك Switch هو المفتاح المدمج وليس إعادة صياغته:

js
function viewSwitch(current, pick) {
    const strip = document.createElement('div')
    strip.className = 'pvt-dock-views'
    for (const view of VIEWS) {
        const button = document.createElement('button')
        button.className = 'pvt-dock-view'
        button.textContent = view.label
        button.classList.toggle('active', view.key === current)
        button.addEventListener('click', () => pick(view.key))
        strip.appendChild(button)
    }
    return strip
}

graph.UIManager.addDockTab({
    label: 'Audit',
    toolbar: (pane) => [viewSwitch(current, (key) => { current = key; pane.refresh() })],
    render: () => renderCurrentView(),
})

كلا المستويين يأخذان لهجتهما النشطة من --pvt-theme-primary، لذا فإن المستهلك يعيد السمة إلى الرصيف معها ؛ تجاوز أي فئة للذهاب أبعد من ذلك.

refresh() ليس أدبًا اختياريًا — يحتفظ الرصيف بالعنصر render الذي سلمه، لذا الجزء الذي قام بتبديل DOM الخاص به سيترك الرصيف يعيد ربط عقدة قديمة في اليوم التالي الوقت الذي وصل فيه إلى الأمام.

شاهد بطاقة معرض إضافة جزء إرساء للبث المباشر واحد، وPlugins لمسار البرنامج الإضافي.

UI.dock — إعدادات المنطقة الخاصة ​

open وcollapsed وheight يصفون المنطقة، وليس الجدول، وUI.dock هو حيث ينتمون:

js
// A dock holding only a plugin's pane, open on load
UI: { mode: 'full', table: false, dock: { open: true, height: 0.3 } }

UI.table لا يزال يحمل نفس الإعدادات الثلاثة وكان يفعل ذلك دائمًا؛ يتم تكريم هؤلاء، و UI.dock يفوز حيث يتم تعيين كلاهما. الوصول إلى UI.dock عندما تكون الطاولة مغلقة — هذا هو الباب الوحيد الذي يتم إحضار علامة تبويب البرنامج الإضافي معه.

التحكم البرمجي ​

js
graph.openTable()
graph.closeTable()
graph.toggleTable()

كل منها محظور عند عدم وجود رصيف (أي وضع غير full أو UI.table: false). openTable() يقوم أيضًا بإحضار جزء الجدول إلى المقدمة، لذا يتم تسمية المكالمة باسم الجدول يظهر لك واحدة. لقيادة المنطقة دون ذلك:

js
graph.UIManager.dock?.setOpen(true)        // the region
graph.UIManager.activateDockTab('table')   // a pane, unfolding the dock if need be
graph.UIManager.getDockTabs()              // what is registered, in strip order

يقوم الرصيف بتشغيل واجهة برمجة تطبيقات التحديد العادية، لذا فإن أي شيء يقرأ التحديد يرى ماذا تم بناء الجدول:

js
graph.selectElements([nodeA, nodeB])   // replaces the selection
graph.addToSelection([nodeC])          // nodes only
graph.removeFromSelection([nodeA])

تغيير الحجم والطي ​

اسحب الفاصل على طول الحافة العلوية للمرسى لتغيير حجمه. القماش يحافظ على الأرضية أيًا كان ما تطلبه، فاللوحة القماشية التي لا يوجد بها ارتفاع ليست رسمًا بيانيًا.

تقوم شيفرون الانهيار بطي الرصيف إلى شريط الرأس الخاص به. تركت وحدها، collapsed: 'auto' يتخذ هذا القرار نيابةً عنك ويطوي الرصيف بعيدًا بتصميم قصير جدًا بالنسبة له و قماش صالح للاستخدام؛ في المرة الأولى التي تقوم فيها بطيها أو توسيعها يدويًا، أو سحب الفاصل، يتوقف عن اتخاذ القرار ويترك الأمر لك.

لا يزال الشريط المطوي يُسمي أجزاءه، وتظل عناصر التحكم النشطة فيه - عدد صفوف الجدول، مراجعة محورية تشير إلى أنه يتم جلبه. هذا هو ما يسمح للجزء بالوصول بينما يتم طي قفص الاتهام ويمكن ملاحظته دون أخذ الشاشة ليقول ذلك. النقر أ الجزء هناك يفتح قفص الاتهام عليه.

الجزء الذي كشف عن الرصيف ليُظهر نفسه يعيد المنطقة مرة أخرى عند إزالتها، لذلك الجزء الذي يأتي ويذهب يترك رصيفًا مغلقًا مغلقًا. طيها أو تغيير حجمها أو التبديل إلى جزء آخر ينتهي بما يلي: كل واحد هو قرار خاص بك بشأن المنطقة، ولا شيء يبطله نيابة عنك.

فتح الرصيف لا يؤدي إلى تحريك الرسم البياني أبدًا

تقوم المحاكاة بضبط نفسها على الحاوية، وليس اللوحة القماشية، لذلك يتم فتح الكروم ولا يمكن للإغلاق تغيير التخطيط. قم بتغيير حجم الرصيف بقدر ما تريد: يبقى الرسم البياني ضع، وإعادة التخطيط تعطي نفس النتيجة مع فتح الرصيف أو إغلاقه.