qcobjects-sdk 2.4.64 → 2.5.105-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.github/workflows/npmpublish-beta.yml +4 -2
  2. package/.github/workflows/npmpublish-lts.yml +4 -2
  3. package/.github/workflows/npmpublish-main.yml +5 -3
  4. package/VERSION +1 -1
  5. package/build/QCObjects-SDK.js +83 -41
  6. package/build/index.js +17 -7
  7. package/build/js/org.qcobjects.base.components.js +75 -0
  8. package/build/js/org.qcobjects.cloud.auth.session.data.js +98 -101
  9. package/build/js/org.qcobjects.cloud.auth.session.usertoken.js +68 -80
  10. package/build/js/org.qcobjects.components.grid.js +35 -53
  11. package/build/js/org.qcobjects.components.js +145 -237
  12. package/build/js/org.qcobjects.components.list.js +36 -45
  13. package/build/js/org.qcobjects.components.notifications.js +107 -106
  14. package/build/js/org.qcobjects.components.slider.js +183 -169
  15. package/build/js/org.qcobjects.components.splashscreen.js +123 -130
  16. package/build/js/org.qcobjects.controllers.form.js +149 -147
  17. package/build/js/org.qcobjects.controllers.grid.js +226 -215
  18. package/build/js/org.qcobjects.controllers.js +11 -11
  19. package/build/js/org.qcobjects.controllers.list.js +195 -188
  20. package/build/js/org.qcobjects.controllers.slider.js +101 -106
  21. package/build/js/org.qcobjects.controllers.swagger.js +71 -46
  22. package/build/js/org.qcobjects.effects.base.js +86 -0
  23. package/build/js/org.qcobjects.effects.extended.js +318 -0
  24. package/build/js/org.qcobjects.effects.js +26 -394
  25. package/build/js/org.qcobjects.i18n_messages.js +33 -46
  26. package/build/js/org.qcobjects.modal.controllers.js +16 -15
  27. package/build/js/org.qcobjects.modal.effects.js +23 -28
  28. package/build/js/org.qcobjects.models.js +11 -11
  29. package/build/js/org.qcobjects.tools.canvas.js +28 -27
  30. package/build/js/org.qcobjects.tools.js +10 -3
  31. package/build/js/org.qcobjects.tools.layouts.js +46 -45
  32. package/build/js/org.qcobjects.views.js +11 -11
  33. package/build-esbuild.js +72 -0
  34. package/eslint.config.mjs +88 -0
  35. package/package.json +66 -59
  36. package/postbuild.js +10 -0
  37. package/public/browser/index.js +9902 -0
  38. package/public/browser/index.js.map +7 -0
  39. package/public/cjs/index.cjs +9894 -0
  40. package/public/cjs/index.cjs.map +7 -0
  41. package/public/esm/index.mjs +9894 -0
  42. package/public/esm/index.mjs.map +7 -0
  43. package/public/types/index.d.ts +698 -0
  44. package/spec/helpers/mock-sdk.helper.ts +2 -0
  45. package/spec/mocks/qcobjects-sdk.mock.ts +1 -0
  46. package/spec/support/jasmine.json +7 -4
  47. package/src/QCObjects-SDK.ts +72 -53
  48. package/src/js/org.qcobjects.base.components.ts +83 -0
  49. package/src/js/org.qcobjects.cloud.auth.session.data.ts +98 -99
  50. package/src/js/org.qcobjects.cloud.auth.session.usertoken.ts +72 -92
  51. package/src/js/org.qcobjects.components.grid.ts +31 -58
  52. package/src/js/org.qcobjects.components.list.ts +15 -31
  53. package/src/js/org.qcobjects.components.notifications.ts +12 -12
  54. package/src/js/org.qcobjects.components.slider.ts +182 -171
  55. package/src/js/org.qcobjects.components.splashscreen.ts +31 -39
  56. package/src/js/org.qcobjects.components.ts +151 -261
  57. package/src/js/org.qcobjects.controllers.form.ts +151 -148
  58. package/src/js/org.qcobjects.controllers.grid.ts +226 -222
  59. package/src/js/org.qcobjects.controllers.list.ts +207 -205
  60. package/src/js/org.qcobjects.controllers.slider.ts +120 -125
  61. package/src/js/org.qcobjects.controllers.swagger.ts +51 -51
  62. package/src/js/org.qcobjects.controllers.ts +7 -9
  63. package/src/js/org.qcobjects.effects.base.ts +97 -0
  64. package/src/js/org.qcobjects.effects.extended.ts +350 -0
  65. package/src/js/org.qcobjects.effects.ts +6 -394
  66. package/src/js/org.qcobjects.i18n_messages.ts +37 -51
  67. package/src/js/org.qcobjects.modal.controllers.ts +12 -14
  68. package/src/js/org.qcobjects.modal.effects.ts +22 -18
  69. package/src/js/org.qcobjects.models.ts +8 -11
  70. package/src/js/org.qcobjects.tools.canvas.ts +26 -28
  71. package/src/js/org.qcobjects.tools.layouts.ts +44 -47
  72. package/src/js/org.qcobjects.tools.ts +7 -1
  73. package/src/js/org.qcobjects.views.ts +9 -8
  74. package/src/types/global/index.d.ts +181 -0
  75. package/transpile.js +65 -0
  76. package/tsconfig.d.json +65 -3
  77. package/tsconfig.jasmine.json +64 -0
  78. package/tsconfig.json +71 -7
  79. package/.eslintignore +0 -4
  80. package/.eslintrc.cjs +0 -6
  81. package/build/css/base-modal.css +0 -43
  82. package/build/css/basic-layout-embedded-nav.css +0 -14
  83. package/build/css/basic-layout.css +0 -76
  84. package/build/css/components/horizontal-list.css +0 -64
  85. package/build/css/components/list.css +0 -57
  86. package/build/css/components/splashscreen.css +0 -111
  87. package/build/css/modal.css +0 -46
  88. package/build/index.cjs +0 -4
  89. package/build/index.mjs +0 -2
  90. package/build/templates/components/modalyoulose.tpl.html +0 -3
  91. package/build/templates/components/modalyouwin.tpl.html +0 -4
  92. package/build/templates/components/splashscreen.tpl.html +0 -128
  93. package/build/templates/components/swagger-ui.tpl.html +0 -22
  94. package/public/QCObjects-SDK.js +0 -696
  95. package/public/QCObjects-SDK.js.map +0 -7
  96. package/public/css/base-modal.css +0 -2
  97. package/public/css/base-modal.css.map +0 -7
  98. package/public/css/basic-layout-embedded-nav.css +0 -2
  99. package/public/css/basic-layout-embedded-nav.css.map +0 -7
  100. package/public/css/basic-layout.css +0 -2
  101. package/public/css/basic-layout.css.map +0 -7
  102. package/public/css/components/horizontal-list.css +0 -2
  103. package/public/css/components/horizontal-list.css.map +0 -7
  104. package/public/css/components/list.css +0 -2
  105. package/public/css/components/list.css.map +0 -7
  106. package/public/css/components/splashscreen.css +0 -2
  107. package/public/css/components/splashscreen.css.map +0 -7
  108. package/public/css/modal.css +0 -2
  109. package/public/css/modal.css.map +0 -7
  110. package/public/index.cjs +0 -4
  111. package/public/index.js +0 -27
  112. package/public/index.mjs +0 -2
  113. package/public/templates/components/modalyoulose.tpl.html +0 -3
  114. package/public/templates/components/modalyouwin.tpl.html +0 -4
  115. package/public/templates/components/splashscreen.tpl.html +0 -128
  116. package/public/templates/components/swagger-ui.tpl.html +0 -22
  117. package/src/QCObjects-SDK.d.ts +0 -26
  118. package/src/index.cts +0 -2
  119. package/src/index.d.ts +0 -2
  120. package/src/index.mts +0 -2
  121. package/src/js/org.qcobjects.cloud.auth.session.data.d.ts +0 -1
  122. package/src/js/org.qcobjects.cloud.auth.session.usertoken.d.ts +0 -2
  123. package/src/js/org.qcobjects.components.d.ts +0 -10
  124. package/src/js/org.qcobjects.components.grid.d.ts +0 -3
  125. package/src/js/org.qcobjects.components.list.d.ts +0 -3
  126. package/src/js/org.qcobjects.components.notifications.d.ts +0 -1
  127. package/src/js/org.qcobjects.components.slider.d.ts +0 -1
  128. package/src/js/org.qcobjects.components.splashscreen.d.ts +0 -28
  129. package/src/js/org.qcobjects.controllers.d.ts +0 -1
  130. package/src/js/org.qcobjects.controllers.form.d.ts +0 -1
  131. package/src/js/org.qcobjects.controllers.grid.d.ts +0 -1
  132. package/src/js/org.qcobjects.controllers.list.d.ts +0 -1
  133. package/src/js/org.qcobjects.controllers.slider.d.ts +0 -1
  134. package/src/js/org.qcobjects.controllers.swagger.d.ts +0 -1
  135. package/src/js/org.qcobjects.effects.d.ts +0 -20
  136. package/src/js/org.qcobjects.i18n_messages.d.ts +0 -1
  137. package/src/js/org.qcobjects.modal.controllers.d.ts +0 -1
  138. package/src/js/org.qcobjects.modal.effects.d.ts +0 -1
  139. package/src/js/org.qcobjects.models.d.ts +0 -1
  140. package/src/js/org.qcobjects.tools.canvas.d.ts +0 -1
  141. package/src/js/org.qcobjects.tools.d.ts +0 -1
  142. package/src/js/org.qcobjects.tools.layouts.d.ts +0 -1
  143. package/src/js/org.qcobjects.views.d.ts +0 -1
  144. /package/spec/{testsSpec.js → testsSpec.ts} +0 -0
@@ -1,8 +1,5 @@
1
- import { Package, Controller, serviceLoader, New, ClassFactory, logger, _DOMCreateElement, Tag, QCObjectsElement, ControllerParams } from "qcobjects";
2
- import { FormField, ModalComponent } from "./org.qcobjects.components";
3
-
4
1
  /**
5
- * QCObjects SDK 2.4
2
+ * QCObjects SDK 2.5
6
3
  * ________________
7
4
  *
8
5
  * Author: Jean Machuca <correojean@gmail.com>
@@ -25,182 +22,188 @@ import { FormField, ModalComponent } from "./org.qcobjects.components";
25
22
  * Everyone is permitted to copy and distribute verbatim copies of this
26
23
  * license document, but changing it is not allowed.
27
24
  */
28
- (function() {
29
25
  "use strict";
30
- Package("org.qcobjects.controllers.form",[
31
-
32
- class FormValidations extends Controller {
33
- getDefault (){
34
- return function (fieldName:string, dataValue:any, element:HTMLElement){
35
- const _regex = {
36
- name:"^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$",
37
- email:"^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$"
38
- };
39
- const _pattern_ = (element.getAttribute("pattern") || _regex[fieldName as keyof typeof _regex]);
40
- const pattern = new RegExp(_pattern_);
41
- return pattern.test(dataValue);
42
- };
43
- }
44
-
45
- },
26
+ import { Package, Controller, serviceLoader, New, ClassFactory, logger, _DOMCreateElement, Tag } from "qcobjects";
27
+ import { FormField, ModalComponent } from "./org.qcobjects.components";
46
28
 
47
- class FormController extends Controller {
48
- validations:any[]=[];
49
- formValidatorModal:typeof ModalComponent;
50
- serviceClass="";
51
- formSettings={
52
- backRouting:"#",
53
- loadingRouting:"#loading",
54
- nextRouting:"#signupsuccessful"
29
+ export class FormValidations extends Controller {
30
+ getDefault() {
31
+ return function (fieldName: string, dataValue: any, element: HTMLElement) {
32
+ const _regex = {
33
+ name: "^[a-zA-Z]+(([',. -][a-zA-Z ])?[a-zA-Z]*)*$",
34
+ email: "^([A-Za-z0-9]+)@([A-Za-z0-9]+).([A-Za-z0-9]+)$"
35
+ };
36
+ const _pattern_ = (element.getAttribute("pattern") || _regex[fieldName as keyof typeof _regex]);
37
+ const pattern = new RegExp(_pattern_);
38
+ return pattern.test(dataValue);
55
39
  };
40
+ }
56
41
 
57
- hasValidation (element:HTMLElement){
58
- const fieldName = element.getAttribute("data-field") as string;
59
- let _hasValidation = false;
60
- if (typeof this.validations !== "undefined"
61
- && Object.hasOwnProperty.call(this.validations,fieldName)){
62
- _hasValidation = true;
63
- }
64
- return _hasValidation;
42
+ }
43
+
44
+ export class FormController extends Controller {
45
+ validations: any[] = [];
46
+ formValidatorModal!: ModalComponent;
47
+ serviceClass = "";
48
+ formSettings = {
49
+ backRouting: "#",
50
+ loadingRouting: "#loading",
51
+ nextRouting: "#signupsuccessful"
52
+ };
53
+ component: any;
54
+
55
+ hasValidation(element: HTMLElement) {
56
+ const fieldName = element.getAttribute("data-field") as string;
57
+ let _hasValidation = false;
58
+ if (typeof this.validations !== "undefined"
59
+ && Object.hasOwnProperty.call(this.validations, fieldName)) {
60
+ _hasValidation = true;
65
61
  }
62
+ return _hasValidation;
63
+ }
66
64
 
67
- isInvalid (element:HTMLElement){
68
- let _isInvalid = false;
69
- const fieldName = element.getAttribute("data-field");
70
- const dataValue = this.component.data[fieldName as string];
65
+ isInvalid(element: HTMLElement) {
66
+ let _isInvalid = false;
67
+ const fieldName = element.getAttribute("data-field");
68
+ const dataValue = this.component.data[fieldName as string];
71
69
 
72
- const _execValidation = (fieldName:string, dataValue:any, element:HTMLElement) => {
73
- return (typeof this.validations !== "undefined"
74
- && Object.hasOwnProperty.call(this.validations,fieldName as string)
75
- && this.validations[fieldName as keyof typeof this.validations].call(null,fieldName,dataValue, element));
76
- };
70
+ const _execValidation = (fieldName: string, dataValue: any, element: HTMLElement) => {
77
71
 
78
- if (typeof this.validations !== "undefined" && (
79
- !_execValidation(fieldName as string, dataValue, element)
80
- )){
81
- _isInvalid = true;
82
- }
83
- return _isInvalid;
84
- }
72
+ return (typeof this.validations !== "undefined"
73
+ && Object.hasOwnProperty.call(this.validations, fieldName)
74
+ && this.validations[fieldName as keyof typeof this.validations].call(null, fieldName, dataValue, element));
75
+ };
85
76
 
86
- isValid (element:HTMLElement){
87
- return !this.isInvalid(element);
77
+ if (typeof this.validations !== "undefined" && (
78
+ !_execValidation(fieldName as string, dataValue, element)
79
+ )) {
80
+ _isInvalid = true;
88
81
  }
82
+ return _isInvalid;
83
+ }
89
84
 
90
- save (){
91
- if (this.serviceClass !== ""){
92
- location.href=this.formSettings.loadingRouting;
93
- serviceLoader(New(ClassFactory(this.serviceClass),{
94
- data:this.component.data
95
- }), false).then(
96
- (successfulResponse)=>{
97
- // This will show the service response as a plain text
98
- console.log("DONE SERVICE COMPONENT");
99
- try{
100
- console.log(successfulResponse.service.JSONresponse);
101
- }catch (e){
102
- // no json
103
- }
104
- location.href=this.formSettings.nextRouting;
105
-
106
- },
107
- (failedResponse)=>{
108
- logger.debug(failedResponse);
109
- location.href=this.formSettings.backRouting;
110
- });
111
- } else {
112
- logger.debug("No service name declared on serviceClass property");
113
- }
85
+ isValid(element: HTMLElement) {
86
+ return !this.isInvalid(element);
87
+ }
114
88
 
89
+ save() {
90
+ if (this.serviceClass !== "") {
91
+ location.href = this.formSettings.loadingRouting;
92
+ serviceLoader(New(ClassFactory(this.serviceClass), {
93
+ data: this.component.data
94
+ }), false).then(
95
+ () => {
96
+ // This will show the service response as a plain text
97
+ console.log("DONE SERVICE COMPONENT");
98
+ location.href = this.formSettings.nextRouting;
99
+
100
+ },
101
+ (failedResponse: string) => {
102
+ logger.debug(failedResponse);
103
+ location.href = this.formSettings.backRouting;
104
+ });
105
+ } else {
106
+ logger.debug("No service name declared on serviceClass property");
115
107
  }
116
108
 
117
- formSaveTouchHandler (){
118
- logger.debug("Saving data...");
119
- const _componentRoot_ = (this.component.shadowed)?((this.component?.shadowRoot as ShadowRoot).host):(this.component.body);
120
- (this.component as typeof FormField).executeBindings();
121
- if (this.formValidatorModal!=null){
122
- const componentElementFields = (_componentRoot_ as QCObjectsElement).subelements("*[data-field]");
123
- const fieldsToValidate = componentElementFields.filter(
124
- f => this.hasValidation(f)
125
- );
126
-
127
- const _labelledby = function (parentElement:HTMLElement, element:HTMLElement){
128
- const _arialabelledby = (parentElement:HTMLElement, element:HTMLElement) => {
129
- return (element.getAttribute("aria-labelledby") !== null)?((element.getAttribute("aria-labelledby") || "").split(" ").map(
130
- e => (parentElement as QCObjectsElement).subelements(`#${e}`).map(_e => _e.innerHTML)
131
- ).join(" ")):(null);
132
- };
133
-
134
- return (_arialabelledby(parentElement, element)
135
- || element.getAttribute("aria-label")
136
- || element.getAttribute("placeholder")
137
- || element.getAttribute("name")
138
- || element.getAttribute("data-field") );
139
- };
109
+ }
140
110
 
141
- const _ariatitle = function (element:HTMLElement){
142
- return (element.getAttribute("title") || element.getAttribute("aria-title") || "");
111
+ formSaveTouchHandler() {
112
+ logger.debug("Saving data...");
113
+ const _componentRoot_ = (this.component.shadowed) ? ((this.component?.shadowRoot as ShadowRoot).host) : (this.component.body);
114
+ (this.component).executeBindings();
115
+ if (this.formValidatorModal != null) {
116
+ const componentElementFields = _componentRoot_.subelements("*[data-field]");
117
+ const fieldsToValidate = componentElementFields.filter(
118
+ (f: any) => this.hasValidation(f)
119
+ );
120
+
121
+ const _labelledby = function (parentElement: HTMLElement, element: HTMLElement) {
122
+ const _arialabelledby = (parentElement: HTMLElement, element: HTMLElement) => {
123
+ return (element.getAttribute("aria-labelledby") !== null) ? ((element.getAttribute("aria-labelledby") || "").split(" ").map(
124
+
125
+ e => (parentElement as any).subelements(`#${e}`).map((_e: any) => _e.innerHTML)
126
+ ).join(" ")) : (null);
143
127
  };
144
128
 
145
- const invalidFields = fieldsToValidate.filter(f=>this.isInvalid(f));
146
- if (invalidFields.length>0){
147
- const validationMessage = `
129
+ return (_arialabelledby(parentElement, element)
130
+ || element.getAttribute("aria-label")
131
+ || element.getAttribute("placeholder")
132
+ || element.getAttribute("name")
133
+ || element.getAttribute("data-field"));
134
+ };
135
+
136
+ const _ariatitle = function (element: HTMLElement) {
137
+ return (element.getAttribute("title") || element.getAttribute("aria-title") || "");
138
+ };
139
+
140
+ const invalidFields = fieldsToValidate.filter((f: any) => this.isInvalid(f));
141
+ if (invalidFields.length > 0) {
142
+ const validationMessage = `
148
143
  <details>
149
- <summary>Please verify the following incorrect fields:</summary>
150
- <ul>
151
- <div>
152
- ${invalidFields.map(element => "<li><div>"+_labelledby(_componentRoot_ as HTMLElement,element)+"</div><div>"+_ariatitle(element)+"</div></li>").join("")}
153
- </div>
154
- </ul>
144
+ <summary>Please verify the following incorrect fields:</summary>
145
+ <ul>
146
+ <div>
147
+ ${invalidFields.map((element: any) => "<li><div>" + _labelledby(_componentRoot_ as HTMLElement, element) + "</div><div>" + _ariatitle(element) + "</div></li>").join("")}
148
+ </div>
149
+ </ul>
155
150
  </details>
156
151
  `;
157
- this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML=validationMessage;
158
- this.formValidatorModal.modal();
159
- } else {
160
- this.save();
161
- }
152
+ this.formValidatorModal.body.subelements(".validationMessage")[0].innerHTML = validationMessage;
153
+ this.formValidatorModal.modal();
162
154
  } else {
163
- logger.debug("Unable to find the modal validator...");
164
- logger.debug("Saving data...");
165
155
  this.save();
166
156
  }
157
+ } else {
158
+ logger.debug("Unable to find the modal validator...");
159
+ logger.debug("Saving data...");
160
+ this.save();
167
161
  }
162
+ }
168
163
 
169
- constructor (o:ControllerParams){
170
- super(o);
171
- this.component = o.component;
172
- this.component = this.component.Cast(FormField);
173
- }
164
+ constructor(o: any) {
165
+ super(o);
166
+ this.component = o.component;
167
+ this.component = this.component.Cast(FormField);
168
+ }
174
169
 
175
- done (){
176
- logger.debugEnabled=true;
177
- try {
178
- (this.component as typeof FormField).createBindingEvents();
179
- const modalBody = _DOMCreateElement("div");
180
- modalBody.className="modal_body";
181
- this.formValidatorModal = New(ModalComponent,{
182
- body:modalBody,
183
- subcomponents:[],
184
- data:{
185
- content:"<div class=\"validationMessage\"></div>"
186
- }
187
- });
170
+ done() {
171
+ logger.debugEnabled = true;
172
+ try {
173
+ (this.component).createBindingEvents();
174
+ const modalBody = _DOMCreateElement("div");
175
+ modalBody.className = "modal_body";
176
+ this.formValidatorModal = New(ModalComponent, {
177
+ body: modalBody,
178
+ subcomponents: [],
179
+ data: {
180
+ content: "<div class=\"validationMessage\"></div>"
181
+ }
182
+ });
188
183
 
189
- Tag(".modal_body").map(e=>document.body.removeChild(e));
190
- document.body.append(this.formValidatorModal);
191
184
 
192
- } catch (e){
193
- logger.debug("Unable to create the modal");
194
- }
195
- this.onpress(".submit", () => {
196
- this.formSaveTouchHandler();
197
- });
185
+ Tag(".modal_body").map((e: any) => document.body.removeChild(e));
186
+ document.body.append(this.formValidatorModal.body);
198
187
 
188
+ } catch (e: any) {
189
+ logger.debug(`Unable to create the modal: ${e}`);
199
190
  }
191
+ this.onpress(".submit", () => {
192
+ this.formSaveTouchHandler();
193
+ });
200
194
 
201
-
202
195
  }
196
+ // eslint-disable-next-line no-unused-vars
197
+ onpress(arg0: string, arg1: () => void) {
198
+ throw new Error("Method not implemented.");
199
+ }
200
+
201
+
202
+ }
203
+
204
+ Package("org.qcobjects.controllers.form", [
205
+ FormController,
206
+ FormValidations
203
207
 
204
208
  ]);
205
209
 
206
- })();