diff --git a/src/angular/SurveyNG.tsx b/src/angular/SurveyNG.ts
similarity index 64%
rename from src/angular/SurveyNG.tsx
rename to src/angular/SurveyNG.ts
index fbdfb23f1e..ab7b43f28d 100644
--- a/src/angular/SurveyNG.tsx
+++ b/src/angular/SurveyNG.ts
@@ -1,8 +1,7 @@
-import * as React from "react";
-import * as ReactDOM from "react-dom";
+import * as ko from "knockout";
import { SurveyModel } from "../survey";
-import { Survey } from "../react/reactSurvey";
-import { SurveyWindow } from "../react/reactSurveyWindow";
+import { Survey } from "../knockout/kosurvey";
+import { SurveyWindow } from "../knockout/koSurveyWindow";
export class SurveyNG {
public static render(elementId: string | Element, props) {
@@ -10,7 +9,7 @@ export class SurveyNG {
typeof elementId === "string"
? document.getElementById(elementId)
: elementId;
- ReactDOM.render(, element);
+ props.model.render(element);
}
}
@@ -20,7 +19,8 @@ export class SurveyWindowNG {
typeof elementId === "string"
? document.getElementById(elementId)
: elementId;
- ReactDOM.render(, element);
+ var survey = new SurveyWindow(...props);
+ survey.show();
}
}
diff --git a/src/entries/angular.ts b/src/entries/angular.ts
index e54ab243a9..b27f5313e4 100644
--- a/src/entries/angular.ts
+++ b/src/entries/angular.ts
@@ -1,3 +1,3 @@
-export * from "./react";
+export * from "./knockout";
export { SurveyNG } from "../angular/SurveyNG";
export { SurveyWindowNG } from "../angular/SurveyNG";
diff --git a/src/entries/jquery.ts b/src/entries/jquery.ts
new file mode 100644
index 0000000000..b2be85e77a
--- /dev/null
+++ b/src/entries/jquery.ts
@@ -0,0 +1,24 @@
+import * as ko from "knockout";
+import { SurveyModel } from "../survey";
+import { Survey } from "../knockout/kosurvey";
+import { SurveyWindow } from "../knockout/koSurveyWindow";
+import jQuery from "jquery";
+
+jQuery["fn"].extend({
+ Survey: function(props) {
+ this.each(function() {
+ props.model.render(this);
+ });
+ },
+
+ SurveyWindow: function(props) {
+ this.each(function() {
+ var survey = new SurveyWindow(...props);
+ survey.show();
+ });
+ }
+});
+
+SurveyModel.platform = "jquery";
+
+export * from "./knockout";
diff --git a/src/entries/jquery.tsx b/src/entries/jquery.tsx
deleted file mode 100644
index 8912403f4d..0000000000
--- a/src/entries/jquery.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import * as ReactDOM from "react-dom";
-import { SurveyModel } from "../survey";
-import { Survey } from "../react/reactSurvey";
-import { SurveyWindow } from "../react/reactSurveyWindow";
-import jQuery from "jquery";
-
-jQuery["fn"].extend({
- Survey: function(props) {
- this.each(function() {
- ReactDOM.render(, this);
- });
- },
-
- SurveyWindow: function(props) {
- this.each(function() {
- ReactDOM.render(, this);
- });
- }
-});
-
-SurveyModel.platform = "jquery";
-
-export * from "./react";
diff --git a/src/knockout/koSurveyWindow.ts b/src/knockout/koSurveyWindow.ts
index 27b7a94f26..e21962b241 100644
--- a/src/knockout/koSurveyWindow.ts
+++ b/src/knockout/koSurveyWindow.ts
@@ -8,7 +8,7 @@ export class SurveyWindow extends SurveyWindowModel {
koExpanded: any;
koExpandedCss: any;
doExpand: any;
- constructor(jsonObj: any) {
+ constructor(jsonObj: any = null) {
super(jsonObj);
this.koExpanded = ko.observable(false);
this.koExpandedCss = ko.observable(this.getButtonCss());
diff --git a/webpack.config.js b/webpack.config.js
index 1dfbae4a26..3a5d2f36e8 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -40,7 +40,10 @@ var platformOptions = {
}
},
keywords: ["react", "react-component"],
- peerDependencies: { react: ">=15.0.1 || ^16.2.0", "react-dom": ">=15.0.1 || ^16.2.0" }
+ peerDependencies: {
+ react: ">=15.0.1 || ^16.2.0",
+ "react-dom": ">=15.0.1 || ^16.2.0"
+ }
},
knockout: {
externals: {
@@ -64,12 +67,16 @@ var platformOptions = {
}
},
keywords: ["jquery", "jquery-plugin"],
- dependencies: { jquery: ">=1.12.4", "@types/react": ">=15.0.35 || ^16.0.34" }
+ dependencies: {
+ jquery: ">=1.12.4",
+ knockout: "^3.4.0",
+ "@types/knockout": "3.4.46"
+ }
},
angular: {
externals: {},
keywords: ["angular", "angular-component"],
- dependencies: { "@types/react": ">=15.0.35 || ^16.0.34" }
+ dependencies: { knockout: "^3.4.0", "@types/knockout": "3.4.46" }
},
vue: {
externals: {