مرجع کتابخانه Looker Studio Community Component (dscc).

نمای کلی API

dscc (کامپوننت جامعه استودیو Looker) کتابخانه ای است برای کمک به ساخت مؤلفه های انجمن برای Looker Studio. کد منبع را می توان در GitHub یافت.

dscc سه تابع را نشان می دهد: getWidth() ، getHeight() و subscribeToData() .

getWidth()

نام مولفه های نوع برگشت شرح
getWidth() هیچ یک number عرض iframe را بر حسب پیکسل برمی گرداند

استفاده از getWidth()

// to get the width of the iframe
var width = dscc.getWidth();

getHeight()

نام مولفه های نوع برگشت شرح
getHeight() هیچ یک int ارتفاع iframe را بر حسب پیکسل برمی‌گرداند

استفاده از getHeight()

// to get the height of the iframe
var height = dscc.getHeight();

sendInteraction()

تابع sendInteraction() پیامی را به همراه داده های یک فیلتر به Looker Studio ارسال می کند.

مولفه های:

نام تایپ کنید شرح
شناسه اقدام string رشته ای که با actionId در پیکربندی مطابقت دارد
اثر متقابل enum(InteractionType) به استودیوی Looker در مورد تعامل می گوید
داده ها object(InteractionData) داده های مورد نیاز برای یک تعامل را فراهم می کند

InteractionType

در حال حاضر، تنها InteractionType معتبر FILTER است.

نام تایپ کنید شرح
dscc.InteractionType.FILTER Enum تعامل FILTER را شرح می دهد

با استفاده از sendInteraction


// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";

// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;

var fieldID = "qt_m9dtntutsb";
var dataValue = "Asia";

// sendInteraction expects data that tells you the concepts and the values of
// those concepts to use in constructing a filter.
var interactionData = {
  "concepts": [fieldId],
  "values": [[dataValue]]
}

dscc.sendInteraction(actionId, FILTER, interactionData);

interactionData

var interactionData = {
  "concepts": array(fieldId),
  "values": array(array(dataValue))
}
رشته تایپ کنید شرح
مفاهیم Array آرایه fieldIds
ارزش های Array<Array> آرایه تو در تو از مقادیر داده. هر زیرآرایه باید طول آرایه concepts باشد. هر مقدار در زیرآرایه مربوط به یک مقدار بعد است.

interactionData نمونه:

var interactionData = {
  "concepts": ["dim1Id", "dim2Id"],
  "values": [
    ["dim1Val1", "dim2Val1"],
    ["dim1Val2", "dim2Val2"]
    ]
}

استفاده از dscc.sendInteraction با interactionData فوق معادل عبارت SQL زیر است:

SELECT data WHERE
  (dim1 == dim1Val1 AND dim2 == dim2Val1)
  OR
  (dim1 == dim1Val2 AND dim2 == dim2Val2);

clearInteraction()

تابع clearInteraction() پیامی به استودیو Looker ارسال می کند تا فیلتری را که قبلاً توسط این تجسم تنظیم شده است پاک کند.

مولفه های:

نام تایپ کنید شرح
شناسه اقدام string رشته ای که با actionId در پیکربندی مطابقت دارد
اثر متقابل enum(InteractionType) به استودیوی Looker در مورد تعامل می گوید

استفاده از clearInteraction()


// the actionID can either be hardcoded or parsed from the returned data
var actionId = "interactionConfigId";

// dscc provides enums for the interaction types
var FILTER = dscc.InteractionType.FILTER;

dscc.clearInteraction(actionId, FILTER);

subscribeToData(callback, options)

تابع subscribeToData() مشترک پیام های Looker Studio می شود.

مولفه های:

نام تایپ کنید شرح
پاسخ به تماس (داده) function تابعی که داده های برگردانده شده توسط subscribeToData را می گیرد.
گزینه ها object فرمت بازگشت داده مورد نظر را تعریف می کند

شی گزینه ها به شکل زیر است:

{
  transform: dscc.tableTransform | dscc.objectTransform
}

ارزش برگشتی:

تایپ کنید شرح
function اشتراک callback پیام‌های دیگر از Looker Studio را لغو می‌کند

استفاده از subscribeToData()

// define and use a callback
var unsubscribe = dscc.subscribeToData(function(data){
  // console.log the returned data
  console.log(data);
}, {transform: dscc.tableTransform});

// to unsubscribe

unsubscribe();

data

این شیئی است که به callback ثبت شده با dscc.subscribeToData ارسال می شود. در زیر فیلدهایی هستند که بین dscc.objectFormat و dscc.tableFormat مشترک هستند.

{
  fields: object(fieldsByConfigId),
  style: object(styleById),
  interactions: object(interactionsById),
  theme: object(themeStyle),
  tables: object(tablesById),
  dateRanges: object(dateRangesById)
}
رشته تایپ کنید شرح
زمینه های object(fieldsByConfigId) یک شی که حاوی فیلدهایی است که توسط configId آنها نمایه شده است
سبک object(styleById) یک شی که شامل اشیاء سبک است که توسط configId آنها نمایه شده است
فعل و انفعالات object(interactionsById) یک شی که شامل اشیاء تعاملی است
موضوع themeStyle یک شیء themeStyle که حاوی اطلاعات استایل تم برای گزارش است
جداول object(tablesById) یک شی که حاوی tableObjects است
محدوده تاریخ object(dateRangesById) یک شی که حاوی dateRanges است

fieldsByConfigId

{
   configId: array(field)
}

شی fieldsByConfigId حاوی آرایه هایی از اشیاء فیلد است که توسط "id" تعریف شده در پیکربندی تجسم نمایه شده است. یک ورودی در این شی برای هر dataField تعریف شده در پیکربندی وجود دارد.

رشته تایپ کنید شرح
configId Array<field> آرایه ای از فیلد(های) مرتبط با dataField

رشته

{
  id: fieldId,
  name: string,
  description: string,
  type: fieldType,
  concept: enum(conceptType)
}

شی field اطلاعات مربوط به فیلدی را که کاربر در پنل ویژگی انتخاب می کند، ارائه می دهد.

رشته تایپ کنید شرح
شناسه string استودیوی Looker ID برای این فیلد ایجاد کرد
نام string نام فیلد قابل خواندن برای انسان
شرح string شرح رشته
نوع enum(fieldType) نوع معنایی فیلد
مفهوم enum(conceptType) مفهوم نوع زمینه

styleById

{
   configId: styleValue
}

شی styleById اطلاعات سبک نمایه شده توسط "id" تعریف شده در پیکربندی تجسم را فراهم می کند.

رشته تایپ کنید شرح
configId styleValue یک شی که حاوی مقدار سبک و مقدار سبک پیش فرض تعریف شده توسط پیکربندی است

styleValue

{
  value: string | object | bool | number,
  defaultValue: string | object | bool | number
}

شی styleValue هم مقدار سبک انتخاب شده توسط کاربر و هم مقدار پیش فرض تعریف شده در پیکربندی را ارائه می دهد. نوع value و defaultValue به عنصر style بستگی دارد.

رشته تایپ کنید شرح
ارزش string OR object OR bool OR number مقدار عنصر سبک از انتخاب کاربر در پانل ویژگی بازگردانده شده است
مقدار پیش فرض string OR object OR bool OR number مقدار پیش فرض عنصر style که در پیکربندی تجسم تعریف شده است

تعاملاتById

{

}

شی interactionsById داده های تعاملی را که توسط پیکربندی تجسم interactionId نمایه شده است، ارائه می دهد.

فهرست مطالب تایپ کنید شرح
configId interaction یک شی که حاوی داده های مرتبط با یک تعامل است

میدان تعامل

{
  value: object(interactionValue),
  supportedActions: array(InteractionType)
}

شی interactionField شامل آرایه supportedActions تعریف شده در پیکربندی، و همچنین مقادیر انتخاب شده توسط کاربر برای تعامل است.

رشته تایپ کنید شرح
ارزش string OR object OR bool OR number مقدار عنصر سبک از انتخاب کاربر در پانل ویژگی بازگردانده شده است
supportedActions Array<InteractionType> اقدامات پشتیبانی شده توسط این تعامل، همانطور که در پیکربندی تعریف شده است

interactionValue

شی interactionValue مقادیر انتخاب شده توسط کاربر را برای نوع تعامل ارائه می دهد. اگر کلید data وجود داشته باشد، شیء InteractionData وضعیت فعلی فیلتر را منعکس می کند. اگر کلید data وجود نداشته باشد، تجسم در حال حاضر به عنوان یک فیلتر پیکربندی نشده است.

{
  type: enum(InteractionType)
  data: object(interactionData) | None
}
رشته تایپ کنید شرح
نوع enum(InteractionType) InteractionType انتخاب شده توسط کاربر
داده ها object(InteractionData) داده های مرتبط با وضعیت فعلی فیلتر. اگر فیلتر در حال حاضر پاک شده باشد، این کلید وجود ندارد.

موضوع

{
  fillColor: {
    color: string,
    opacity: number
  },
  fontColor: {
    color: string,
    opacity: number
  },
  accentFillColor: {
    color: string,
    opacity: number
  },
  accentFontColor: {
    color: string,
    opacity: number
  },
  fontFamily: string,
  accentFontFamily: string,
  increaseColor: {
    color: string,
    opacity: number
  },
  decreaseColor: {
    color: string,
    opacity: number
  },
  gridColor: {
    color: string,
    opacity: number
  },
  seriesColor: [
    {
      color: string,
      opacity: number
    }
  ]
}

شی themeStyle اطلاعات موضوع گزارش را به تصویرسازی ارسال می کند.

رشته تایپ کنید شرح
fillColor object یک شی با فرمت {color: string, opacity: number}
رنگ قلم object یک شی با فرمت {color: string, opacity: number}
accentFillColor object یک شی با فرمت {color: string, opacity: number}
accentFontColor object یک شی با فرمت {color: string, opacity: number}
fontFamily string رشته ای که خانواده فونت ها را توصیف می کند
accentFontFamily string رشته ای که خانواده فونت تاکیدی را توصیف می کند
افزایش رنگ object یک شی با فرمت {color: string, opacity: number}
کاهش رنگ object یک شی با فرمت {color: string, opacity: number}
gridColor object یک شی با فرمت {color: string, opacity: number}
رنگ سری Array<object> آرایه ای از اشیاء با فرمت {color: string, opacity: number}

tablesById

{
  "DEFAULT": object(tableObject),
  "COMPARISON": object(tableObject) | undefined
}

tableObject اطلاعات سرفصل و داده را برای هر ردیف ارائه می دهد. «پیش‌فرض» همیشه داده‌ها را برمی‌گرداند و «COMPARISON» تنها در صورتی پر می‌شود که کاربر داده‌ها را با ردیف‌های مقایسه پیکربندی کند.

فرمت tableObject تنها تفاوت بین dscc.tableFormat و dscc.objectFormat است.

رشته تایپ کنید شرح
"پیش فرض" object(tableObject) OR Array<objectRow> tableObject مرتبط با داده هایی که کاربر به تصویرسازی اضافه می کند
"مقایسه" object(tableObject) OR Array<objectRow> tableObject مرتبط با داده های مقایسه تاریخ ، در صورت وجود

dateRangesById

{
  "DEFAULT": object(dateRange),
  "COMPARISON": object(dateRange)
}

شی dateRangesById اطلاعاتی درباره محدوده تاریخ پیش فرض و مقایسه ارائه می دهد. اگر محدوده تاریخی وجود نداشته باشد، شی خالی خواهد بود. DEFAULT و COMPARISON تنها در صورتی پر می شوند که محدوده تاریخ مربوطه توسط کاربر پیکربندی شده باشد. داده‌های محدوده تاریخ به داده‌های پیش‌فرض و مقایسه‌ای که در جدول‌هایById تعریف شده‌اند، مرتبط هستند.

رشته تایپ کنید شرح
"پیش فرض" object(dateRange) محدوده dateRange مرتبط با محدوده تاریخ پیش‌فرض، در صورت وجود.
"مقایسه" object(dateRange) محدوده dateRange مرتبط با محدوده تاریخ مقایسه، در صورت وجود.

محدوده زمانی

{
  start: string,
  end: string
}

شی dateRange اطلاعاتی درباره تاریخ شروع و پایان یک محدوده تاریخ پیش فرض یا مقایسه ارائه می دهد.

رشته تایپ کنید شرح
شروع کنید string تاریخ شروع محدوده تاریخ در قالب YYYYMMDD.
پایان string تاریخ پایان محدوده تاریخ در قالب YYYYMMDD.

مرجع tableFormat

tableObject

{
  headers: array(object),
  rows: array(array)
}
رشته تایپ کنید شرح
سرصفحه ها Array آرایه ای از اشیاء فیلدها . این اشیاء فیلد علاوه بر این دارای ویژگی configId هستند که با شناسه های پیکربندی مطابقت دارد.
ردیف ها Array<Array> آرایه ای از آرایه ها: هر آرایه یک ردیف از داده ها است

نمونه tableFormat داده ها

این نمونه data است که با استفاده از dscc.subscribeToData() با گزینه dscc.tableFormat بازگردانده شده است.

{
  "tables": {
    "DEFAULT": {
      "headers": [{
        "id": "qt_ky8sltutsb",
        "name": "dimension",
        "type": "TEXT",
        "concept": "DIMENSION",
        "configId": "configId1"
      }, {
        "id": "qt_b5bvmtutsb",
        "name": "second dim",
        "type": "TEXT",
        "concept": "DIMENSION"
        "configId": "configId1"
      }, {
        "id": "qt_m9dtntutsb",
        "name": "metric",
        "type": "NUMBER",
        "concept": "METRIC",
        "configId": "configId2"
      }],
      "rows": [
        ["Week 4", "lm", 55]
      ]
    },
    "COMPARISON": {
      "headers": [{
        "id": "qt_ky8sltutsb",
        "name": "dimension",
        "type": "TEXT",
        "concept": "DIMENSION",
        "configId": "configId1"
      }, {
        "id": "qt_b5bvmtutsb",
        "name": "second dim",
        "type": "TEXT",
        "concept": "DIMENSION"
        "configId": "configId1"
      }, {
        "id": "qt_m9dtntutsb",
        "name": "metric",
        "type": "NUMBER",
        "concept": "METRIC",
        "configId": "configId2"
      }],
      "rows": [
        ["Week 5", "no", 123]
      ]
    }
  },
  "fields": {
    "configId1": [
      {
        "id": "qt_ky8sltutsb",
        "name": "week",
        "type": "TEXT",
        "concept": "DIMENSION"
      },
      {
        "id": "qt_b5bvmtutsb",
        "name": "textId",
        "type": "TEXT",
        "concept": "DIMENSION"
      }
    ],
    "configId2": [
      {
        "id": "qt_m9dtntutsb",
        "name": "orders",
        "type": "NUMBER",
        "concept": "METRIC"
      }
    ]
  },
  "style": {
    "nodeColor": {
      "value": {
        "color": "#000000"
      }
    }
  },
  "theme": {},
  "dateRanges": {
    "DEFAULT": {
      "start": "20210501",
      "end": "20210531"
    },
    "COMPARISON": {
      "start": "20200501",
      "end": "20200531"
    }
  },
  "interactions": {
    "onClick": {
      "value": {
        "type": "FILTER",
        "data": {
          "concepts": [
            "qt_h6oibrb6wb",
            "qt_i6oibrb6wb"
          ],
          "values": [
            [
              "Afternoon",
              "Sunday"
            ],
            [
              "Afternoon",
              "Thursday"
            ],
            [
              "Morning",
              "Tuesday"
            ]
          ]
        }
      },
      "supportedActions": [
        "FILTER"
      ]
    }
  }
}

مرجع objectFormat

objectRow

{
  configId1: array(string | bool | number),
  configId2: array(string | bool | number)
}
رشته تایپ کنید شرح
configId آرایه آرایه ای از مقادیر مرتبط با یک شناسه پیکربندی خاص

نمونه داده های objectFormat

این نمونه data است که با استفاده از dscc.subscribeToData() با گزینه dscc.objectFormat بازگردانده شده است.

{
  "tables": {
    "COMPARISON": [
      {
        "configId1": ["Week 5", "cd"],
        "configId2": [123]
      }
    ],
    "DEFAULT": [
      {
        "configId1": ["Week 1", "ab"],
        "configId2": [24]
      }
    ]
  },
  "fields": {
    "configId1": [
      {
        "id": "qt_h6oibrb6wb",
        "name": "time of day",
        "type": "TEXT",
        "concept": "DIMENSION"
      },
      {
        "id": "qt_i6oibrb6wb",
        "name": "day",
        "type": "TEXT",
        "concept": "DIMENSION"
      }
    ],
    "configId2": [
      {
        "id": "qt_m9dtntutsb",
        "name": "metric",
        "type": "NUMBER",
        "concept": "METRIC"
      }
    ]
  },
  "style": {
    "nodeColor": {
      "value": {
        "color": "#000000"
      }
    }
  },
  "theme": {},
  "dateRanges": {
    "DEFAULT": {
      "start": "20210501",
      "end": "20210531"
    },
    "COMPARISON": {
      "start": "20200501",
      "end": "20200531"
    }
  },
  "interactions": {
    "onClick": {
      "value": {
        "type": "FILTER",
        "data": {
          "concepts": [
            "qt_h6oibrb6wb",
            "qt_i6oibrb6wb"
          ],
          "values": [
            [
              "Afternoon",
              "Sunday"
            ],
            [
              "Afternoon",
              "Thursday"
            ],
            [
              "Morning",
              "Tuesday"
            ]
          ]
        }
      },
      "supportedActions": [
        "FILTER"
      ]
    }
  }
}