Giter Site home page Giter Site logo

syncfusion / javascript-widgets Goto Github PK

View Code? Open in Web Editor NEW
35.0 23.0 36.0 144.88 MB

Syncfusion Essential JavaScript is a comprehensive collection of over 80+ enterprise-grade HTML5 JavaScript components for building modern web applications.

Home Page: http://www.syncfusion.com/products/javascript

CSS 40.13% Less 59.87%

javascript-widgets's Introduction

About Syncfusion JavaScript

Syncfusion Essential JavaScript is a comprehensive collection of over 80+ enterprise-grade HTML5 JavaScript components for building modern web applications. It includes all the UI controls that are typically required for building line-of-business (LOB) applications including charts, grids, gantt, scheduler, diagram and much more.

Configuring Syncfusion Bower Packages

Refer the Syncfusion bower packages documentation in https://help.syncfusion.com/js/installation-and-deployment#configuring-syncfusion-bower-packages

Configuring Syncfusion NPM Packages

Refer the Syncfusion npm packages documentation in https://help.syncfusion.com/js/installation-and-deployment#configuring-syncfusion-npm-packages

Configuring Syncfusion JSPM Packages

Refer the Syncfusion jspm packages documentation in https://help.syncfusion.com/js/installation-and-deployment#configuring-syncfusion-jspm-packages

Documentation

For complete Syncfusion JavaScript documentation, please visit http://help.syncfusion.com/js/

Demos

Online Demos

Take a look at the Syncfusion JavaScript Web and Mobile live demos.

Offline Demos

Download our JavaScript Platform installer from here.

Support

In case of any questions regarding the use of Syncfusion JavaScript, please contact us by creating a support ticket.

Release Notes

Refer the Syncfusion JavaScript Product Release Notes in online Release Notes at Syncfusion.

License Information

For licensing information about Syncfusion JavaScript, Download the Syncfusion License Agreements from here.

javascript-widgets's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

javascript-widgets's Issues

EJ Web bootstrap theme - LESS compilation error from unescaped IE hack

Description: LESS compiler is throwing an exception due to unescaped IE hack.
File: /Content/ej/web/bootstrap-theme/ej.theme.less
Line: 1064
Code: border:@border-size @border-type @content-border-color \9;

Other parts of this file have the hack correctly escaped (~"\9").
Suggested fix:
border:@border-size @border-type @content-border-color~"\9";
Patch and pull request in progress.

[Bug] ej.web.react.min, "createReactClass is not defined"

"syncfusion-javascript": "^15.4.17"

From the ej.web.react.min.js file located in syncfusion-javascript/Scripts/ej/common/, please change from createReactClass to React.createClass. Otherwise it'll prompt the following error:

Uncaught ReferenceError: createReactClass is not defined 

ReportViewer Print and Chrome

Hi, I'm currently having trouble with using the ReportViewer control. Only in Chrome (it works fine on Firefox and Edge) when I click the print button the print dialogue appears before the document body of the new window is loaded causing the print to be of blank pages.

Scanning through ej.web.reportviewer.min.js seems to indicate that the current print method is using a 500ms timeout before calling print. I'm guessing my content didn't load in that time which is causing my problem. Any chance of attaching the print function to the body load event of the new window instead?

Summary Types with multiples values bug

I have found a bug. When we have more than one field on Value.
The summary types "count" and "average" don´t work well.

If found the source of that problem on this function Syncfusion.PivotAnalysis._isMemberExist

Original:

          case "calc":
            for (s = !1, this._tableKeysCalcValues.length == 0 && this._tableKeysCalcValues.push(t), e = 0; e < this._tableKeysCalcValues.length; e++)
              if (t.uniqueName == this._tableKeysCalcValues[e].uniqueName) {
                s = !0;
                f = e;
                break
              }
            if (s)
              for (u = 0; u < i.keys.length; u++)
                if (this._tableKeysCalcValues[f].value == null) {
                  for (this._tableKeysCalcValues[f].value = i, this._tableKeysCalcValues[f].value.count = 1, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[f].value.keys[o] = this._tableKeysCalcValues[f].value.count);
                  break
                } else this._tableKeysCalcValues[f].value.count++, r.values[u].isCalculatedField != !0 && (this._tableKeysCalcValues[f].value.keys[u] = this._getSummaryValue(this._tableKeysCalcValues[f].value.keys[u], i.keys[u], this._tableKeysCalcValues[f].value.count, this._summaryTypes[u], r.values[u].format, r.values[u].formatString));
            else
              for (this._tableKeysCalcValues.push(t), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value = i, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.keys[o] = 1), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.count = 1

Fixed:

    case "calc":
          for (s = !1, this._tableKeysCalcValues.length == 0 && this._tableKeysCalcValues.push(t), e = 0; e < this._tableKeysCalcValues.length; e++)
            if (t.uniqueName == this._tableKeysCalcValues[e].uniqueName) {
              s = !0;
              f = e;
              break
            }
          if (s)
            for (u = 0; u < i.keys.length; u++)
              if (this._tableKeysCalcValues[f].value == null) {
                for (this._tableKeysCalcValues[f].value = i, this._tableKeysCalcValues[f].value.count = 1, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[f].value.keys[o] = this._tableKeysCalcValues[f].value.count);
                break
              }
               else {
                 if(u==0)
                 this._tableKeysCalcValues[f].value.count++;
                 r.values[u].isCalculatedField != !0 && (this._tableKeysCalcValues[f].value.keys[u] = this._getSummaryValue(this._tableKeysCalcValues[f].value.keys[u], i.keys[u], this._tableKeysCalcValues[f].value.count, this._summaryTypes[u], r.values[u].format, r.values[u].formatString));
               }
          else
            for (this._tableKeysCalcValues.push(t), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value = i, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.keys[o] = 1), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.count = 1

As can be appreciated I have added

 if(u==0)
                 this._tableKeysCalcValues[f].value.count++;

Ternary operator issues

after upgrading to "syncfusion-javascript": "^16.2.0-mu.4" we are facing an issue that the page is not opening at all on IE 11
the console error says
image

clicking the error it brings to Microsoft Docs Page
The application opens fine in Chrome but won't load in IE

the Tech stack: Angular, c#

some sample code where it might break:

import {EJComponents} from 'ej-angular2/src/ej/core';
declare var ej: any;

and in diagram settings:

this.vizLayout = {
      type: 'hierarchicaltree',
      marginY: 50,
      horizontalSpacing: 30,
      verticalSpacing: 40
    };
    this.vizPageSettings = {
      multiplePage: false,
      scrollLimit: 'diagram'
    };
    this.vizSnapSettings = {
      snapConstraints: 'none'
    };
    this.vizConstraints = ej.datavisualization.Diagram.DiagramConstraints.Default;
    this.vizTool = ej.datavisualization.Diagram.Tool.ZoomPan;
  }

If I put debugger before this setting the application opens fine and breaks after setup,
but If I remove debugger, the app won't load

ej.core.js function definition order breaks in lazily loaded scripts

I generated a script using the custom script generator. When including it statically using a script tag in an HTML file it worked fine, but when lazily loading it from JS code (creating a script element, setting its src attribute and appending it to the document body) it failed on wd.init is not a function. When debugging it turned out that in the case of lazily loaded script, the function that calls wd.init() runs before wd.init is defined (because it's wrapped in a shorthand of "document ready" callback $(function(){...}), and the document is already ready then). I moved wd.init and the functions it calls to before that function and that resolved the issue. The order of function definitions that worked for me is:

  1. findElements
  2. initControls
  3. checkUnobtrusive
  4. wd.init
  5. $(function () {...})

complete code chunk is:

var findElements = function (name, op, el, proto) {
        var query = [], controlName = name.replace("ej", '').toLowerCase(), res = {};

        if (op.dataRole === true) {
            query.push("[data-role='" + name.toLowerCase() + "']");
        }
        if (op.ejRole === true) {
            query.push("[ej-" + controlName + "]");
        }

        res["role"] = el.find(query.join(','));

        if (op.directive === true) {
            res["directive"] = findAndChangeTag(el.find(controlName), (proto.validTags && proto.validTags[0]) || "div", controlName, el);
        }
        return res;
    };

    var initControls = function (controls, op, name, proto, map, dir) {
        var types = proto.dataTypes, len = controls.length;
        for (var i = 0; i < len; i++) {
            var control = controls.eq(i), model = {};
            iterateAndSetModel(model, readAttributes(control, op, name), map, types);
            control[name](model);
        }
    }

    var checkUnobtrusive = function (name, proto, op, el) {
        var controls = findElements(name, op, el, proto), map = propMaps[name];

        if (((controls.role && controls.role.length) || (controls.directive && controls.directive.length)) && !map) {
            propMaps[name] = map = generatePropMap(proto.defaults);

            if (proto._unobtrusive)
                $.extend(true, map, proto._unobtrusive);
        }

        initControls(controls.role, op, name, proto, map);

        if (controls.directive)
            initControls(controls.directive, op, name, proto, map, true);
    };

    wd.init = function (element) {
        if (!element) element = $(document);
        else element = element.jquery ? element : $(element);

        var widgets = wd.registeredWidgets;
        for (var name in widgets) {
            checkUnobtrusive(widgets[name].name, widgets[name].proto, options, element);
        }
    }

    $(function () {
        var ds = $(document.body).data();
        options.ejRole = ds.hasOwnProperty("ejrole") ? readBoolAttr(ds, "ejrole") : options.ejRole;
        options.directive = ds.hasOwnProperty("directive") ? readBoolAttr(ds, "directive") : options.directive;
        if (options.ejRole !== true && options.directive !== true) options.dataRole = true;
        options.dataRole = ds.hasOwnProperty("datarole") ? readBoolAttr(ds, "datarole") : options.dataRole;

        if (options.ejRole !== true && options.dataRole !== true && options.directive !== true)
            return;

        wd.autoInit = ds.hasOwnProperty("autoinit") ? readBoolAttr(ds, "autoinit") : true;

        if (wd.autoInit !== true)
            return;

        var query = [], el;
        if (options.dataRole === true)
            query.push("[data-ej-init]");
        if (options.ejRole === true)
            query.push("[ej-init]");
        el = $(query.join(','));

        if (!el.length) el = $(document);
        wd.init(el);
    });

missing dependency?

just ran: bower install syncfusion-javascript --save and included 'ejangular' in angular module dependencies as seen in the docs

Getting: Module 'ejangular' is not available!

Checked under bower_components and only got ej.angular2.min.js
syncfusion

bowser.json points to "syncfusion-javascript": "^14.2.26"
Could someone point me into the right direction here? Any help appreciated...

Theme contains nonexistent URLs that break Less compilation

In default-theme/ej.theme.less:

Line 2690: /themes/common-images/Rotate.cur and ../themes/common-images/Rotate.cur

Line 5750: ../images/expand.png

Line 5763: ../images/colapse.png

I'm using npm+webpack to load css and less, and processing ej.theme.less fails because the URLs are not found. Only after removing these URLs the errors are gone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.