protected getProperties()

in powerbi-visual-builder/src_visual/visual.ts [588:636]


    protected getProperties(options: VisualUpdateOptions) {
      const defaultProperties: { [name: string]: any } = {
        decimalSeparator: defaultDecimalSeparator,
        thousandSeparator: defaultThousandSeparator,
        currency: defaultCurrency,
        group: "3"
      };
      for (const p of this.template.properties as PowerBIProperty[]) {
        defaultProperties[p.powerBIName || p.displayName] = p.default;
      }

      if (
        !options ||
        !options.dataViews ||
        !options.dataViews[0] ||
        !options.dataViews[0].metadata
      ) {
        return defaultProperties;
      }
      const objects = options.dataViews[0].metadata.objects;
      if (!objects) {
        return defaultProperties;
      }

      const objectKeys = Object.keys(objects);
      for (const key of objectKeys) {
        const object = objects[key];
        for (const p of this.template.properties.filter(
          p => p.objectID === key.slice(3) // remove ID_ prefix
        ) as PowerBIProperty[]) {
          if (object[p.powerBIName] != undefined) {
            if ((object[p.powerBIName] as any).solid) {
              defaultProperties[p.powerBIName] = (object[
                p.powerBIName
              ] as any).solid.color;
            } else {
              defaultProperties[p.powerBIName] = object[p.powerBIName];
            }
          }
        }
      }

      defaultProperties.decimalSeparator = objects.general?.decimalSeparator;
      defaultProperties.thousandSeparator = objects.general?.thousandSeparator;
      defaultProperties.currency = objects.general?.currency;
      defaultProperties.group = objects.general?.group;

      return defaultProperties;
    }