dom-render 1.0.54 → 1.0.58

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 (119) hide show
  1. package/DomRenderProxy.d.ts +1 -0
  2. package/DomRenderProxy.js +6 -6
  3. package/README.MD +84 -159
  4. package/RawSet.js +15 -12
  5. package/dist/DomRenderProxy.d.ts +1 -0
  6. package/dist/bundle.js +190 -63
  7. package/dist/bundle.js.map +1 -1
  8. package/dist/iterators/Range.d.ts +1 -0
  9. package/dist/validators/AllCheckedValidatorArray.d.ts +6 -0
  10. package/dist/validators/AllUnCheckedValidatorArray.d.ts +6 -0
  11. package/dist/validators/CheckedValidator.d.ts +5 -0
  12. package/dist/validators/CountEqualsCheckedValidatorArray.d.ts +7 -0
  13. package/dist/validators/CountEqualsUnCheckedValidatorArray.d.ts +7 -0
  14. package/dist/validators/CountGreaterThanCheckedValidatorArray.d.ts +7 -0
  15. package/dist/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +7 -0
  16. package/dist/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +7 -0
  17. package/dist/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +7 -0
  18. package/dist/validators/CountLessThanCheckedValidatorArray.d.ts +7 -0
  19. package/dist/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +7 -0
  20. package/dist/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +7 -0
  21. package/dist/validators/CountLessThanUnCheckedValidatorArray.d.ts +7 -0
  22. package/dist/validators/CountUnCheckedValidatorArray.d.ts +7 -0
  23. package/dist/validators/EmptyValidator.d.ts +5 -0
  24. package/dist/validators/ExcludeCheckedValidatorArray.d.ts +8 -0
  25. package/dist/validators/FormValidator.d.ts +5 -0
  26. package/dist/validators/IncludeCheckedValidatorArray.d.ts +8 -0
  27. package/dist/validators/MultipleValidator.d.ts +7 -0
  28. package/dist/validators/NonPassValidator.d.ts +5 -0
  29. package/dist/validators/NotEmptyValidator.d.ts +5 -0
  30. package/dist/validators/NotRegExpTestValidator.d.ts +6 -0
  31. package/dist/validators/PassValidator.d.ts +5 -0
  32. package/dist/validators/RegExpTestValidator.d.ts +6 -0
  33. package/dist/validators/RequiredValidator.d.ts +5 -0
  34. package/dist/validators/UnCheckedValidator.d.ts +5 -0
  35. package/dist/validators/ValidMultipleValidator.d.ts +9 -0
  36. package/dist/validators/ValidValidator.d.ts +6 -0
  37. package/dist/validators/ValidValidatorArray.d.ts +7 -0
  38. package/dist/validators/Validator.d.ts +31 -0
  39. package/dist/validators/ValidatorArray.d.ts +17 -0
  40. package/dist/validators/ValueEqualsValidator.d.ts +6 -0
  41. package/dist/validators/ValueNotEqualsValidator.d.ts +6 -0
  42. package/events/EventManager.js +0 -2
  43. package/iterators/Range.d.ts +1 -0
  44. package/iterators/Range.js +12 -0
  45. package/package.json +1 -1
  46. package/validators/AllCheckedValidatorArray.d.ts +6 -0
  47. package/validators/AllCheckedValidatorArray.js +29 -0
  48. package/validators/AllUnCheckedValidatorArray.d.ts +6 -0
  49. package/validators/AllUnCheckedValidatorArray.js +29 -0
  50. package/validators/CheckedValidator.d.ts +5 -0
  51. package/validators/CheckedValidator.js +29 -0
  52. package/validators/CountEqualsCheckedValidatorArray.d.ts +7 -0
  53. package/validators/CountEqualsCheckedValidatorArray.js +31 -0
  54. package/validators/CountEqualsUnCheckedValidatorArray.d.ts +7 -0
  55. package/validators/CountEqualsUnCheckedValidatorArray.js +31 -0
  56. package/validators/CountGreaterThanCheckedValidatorArray.d.ts +7 -0
  57. package/validators/CountGreaterThanCheckedValidatorArray.js +31 -0
  58. package/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +7 -0
  59. package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +31 -0
  60. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +7 -0
  61. package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +31 -0
  62. package/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +7 -0
  63. package/validators/CountGreaterThanUnCheckedValidatorArray.js +31 -0
  64. package/validators/CountLessThanCheckedValidatorArray.d.ts +7 -0
  65. package/validators/CountLessThanCheckedValidatorArray.js +31 -0
  66. package/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +7 -0
  67. package/validators/CountLessThanEqualsCheckedValidatorArray.js +31 -0
  68. package/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +7 -0
  69. package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +31 -0
  70. package/validators/CountLessThanUnCheckedValidatorArray.d.ts +7 -0
  71. package/validators/CountLessThanUnCheckedValidatorArray.js +31 -0
  72. package/validators/CountUnCheckedValidatorArray.d.ts +7 -0
  73. package/validators/CountUnCheckedValidatorArray.js +31 -0
  74. package/validators/EmptyValidator.d.ts +5 -0
  75. package/validators/EmptyValidator.js +30 -0
  76. package/validators/ExcludeCheckedValidatorArray.d.ts +8 -0
  77. package/validators/ExcludeCheckedValidatorArray.js +38 -0
  78. package/validators/FormValidator.d.ts +5 -0
  79. package/validators/FormValidator.js +28 -0
  80. package/validators/IncludeCheckedValidatorArray.d.ts +8 -0
  81. package/validators/IncludeCheckedValidatorArray.js +38 -0
  82. package/validators/MultipleValidator.d.ts +7 -0
  83. package/validators/MultipleValidator.js +35 -0
  84. package/validators/NonPassValidator.d.ts +5 -0
  85. package/validators/NonPassValidator.js +28 -0
  86. package/validators/NotEmptyValidator.d.ts +5 -0
  87. package/validators/NotEmptyValidator.js +30 -0
  88. package/validators/NotRegExpTestValidator.d.ts +6 -0
  89. package/validators/NotRegExpTestValidator.js +39 -0
  90. package/validators/PassValidator.d.ts +5 -0
  91. package/validators/PassValidator.js +28 -0
  92. package/validators/RegExpTestValidator.d.ts +6 -0
  93. package/validators/RegExpTestValidator.js +39 -0
  94. package/validators/RequiredValidator.d.ts +5 -0
  95. package/{validations/validators → validators}/RequiredValidator.js +7 -5
  96. package/validators/UnCheckedValidator.d.ts +5 -0
  97. package/validators/UnCheckedValidator.js +29 -0
  98. package/validators/ValidMultipleValidator.d.ts +9 -0
  99. package/validators/ValidMultipleValidator.js +31 -0
  100. package/validators/ValidValidator.d.ts +6 -0
  101. package/validators/ValidValidator.js +30 -0
  102. package/validators/ValidValidatorArray.d.ts +7 -0
  103. package/validators/ValidValidatorArray.js +30 -0
  104. package/validators/Validator.d.ts +31 -0
  105. package/validators/Validator.js +146 -0
  106. package/validators/ValidatorArray.d.ts +17 -0
  107. package/validators/ValidatorArray.js +94 -0
  108. package/validators/ValueEqualsValidator.d.ts +6 -0
  109. package/validators/ValueEqualsValidator.js +30 -0
  110. package/validators/ValueNotEqualsValidator.d.ts +6 -0
  111. package/validators/ValueNotEqualsValidator.js +30 -0
  112. package/dist/validations/Validation.d.ts +0 -13
  113. package/dist/validations/Validations.d.ts +0 -9
  114. package/dist/validations/validators/RequiredValidator.d.ts +0 -5
  115. package/validations/Validation.d.ts +0 -13
  116. package/validations/Validation.js +0 -53
  117. package/validations/Validations.d.ts +0 -9
  118. package/validations/Validations.js +0 -63
  119. package/validations/validators/RequiredValidator.d.ts +0 -5
@@ -8,6 +8,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
8
8
  _domRender_proxy?: T;
9
9
  _targets: Set<Node>;
10
10
  constructor(_domRender_origin: T, target?: Node, config?: Config | undefined);
11
+ static unFinal<T = any>(obj: T): T;
11
12
  static final<T = any>(obj: T): T;
12
13
  static isFinal<T = any>(obj: T): boolean;
13
14
  run(objProxy: T): void;
package/DomRenderProxy.js CHANGED
@@ -14,12 +14,13 @@ var DomRenderProxy = (function () {
14
14
  this._targets.add(target);
15
15
  }
16
16
  }
17
+ DomRenderProxy.unFinal = function (obj) {
18
+ delete obj._DomRender_isFinal;
19
+ return obj;
20
+ };
17
21
  DomRenderProxy.final = function (obj) {
18
- return new Proxy(obj, {
19
- has: function (target, p) {
20
- return p === '_DomRender_isFinal' || p in target;
21
- }
22
- });
22
+ obj._DomRender_isFinal = true;
23
+ return obj;
23
24
  };
24
25
  DomRenderProxy.isFinal = function (obj) {
25
26
  return '_DomRender_isFinal' in obj;
@@ -129,7 +130,6 @@ var DomRenderProxy = (function () {
129
130
  };
130
131
  DomRenderProxy.prototype.set = function (target, p, value, receiver) {
131
132
  var _a, _b, _c, _d;
132
- console.log('set--?', p, target, value);
133
133
  if (typeof p === 'string') {
134
134
  value = this.proxy(receiver, value, p);
135
135
  }
package/README.MD CHANGED
@@ -231,180 +231,105 @@ class User {
231
231
  name: <input name="name">
232
232
  age: <input name="age">
233
233
  addr: <input dr-form:event="input" name="addr">
234
- <button type="submit"> aa</button>
234
+ <button type="submit">submit</button>
235
235
  </form>
236
236
  ```
237
237
 
238
- # validation
239
- ```html
240
- <div class="row mb-3">
241
- <div class="col">
242
- <span>아이디</span>
243
- <input class="w-100" type="text" name="id" placeholder="아이디" dr-value-link="this.form.id.value" dr-event-blur="this.form.id.valid()" required/>
244
- <span dr-on-init="this.form.id.msgElement" class="d-none"></span>
245
- </div>
246
- </div>
247
- <div class="row mb-3">
248
- <div class="col">
249
- <span>비밀번호</span>
250
- <input class="w-100" type="password" name="id" placeholder="숫자, 영문, 특수문자 조합 최소 8자~20자" dr-value-link="this.form.password.value" dr-event-blur="this.form.password.valid()" required/>
251
- <span dr-on-init="this.form.password.msgElement" >password valid message section</span>
252
- <input class="w-100" type="password" name="id" placeholder="비밀번호 재입력" dr-value-link="this.form.confirmPassword" required/>
253
- <span dr-class="{'d-block': this.form.password != this.form.confirmPassword, 'text-danger': this.form.password != this.form.confirmPassword}">2nd input password valid message section</span>
254
- </div>
255
- </div>
256
- <div class="row mb-3">
257
- <div class="col">
258
- <span>이메일</span>
259
- <input class="w-100" type="email" name="id" placeholder="이메일" dr-value-link="this.form.email" required/>
260
- <span class="">2nd input password valid message section</span>
261
- </div>
262
- </div>
263
- </div>
264
- ```
238
+ # validator
265
239
  ```typescript
266
- class SignUp {
267
- public form = new class extends Validation {
268
- id = new class extends Validation {
269
- public msgElement!: HTMLElement;
270
- valid(): boolean {
271
- let valid = false;
272
- if (this.length == 0) {
273
- this.msgElement.className = 'd-block text-danger';
274
- this.msgElement.textContent = '아이디를 입력해주세요.';
275
- } else if (this.length < 3 || this.length > 20) {
276
- this.msgElement.className = 'd-block text-danger';
277
- this.msgElement.textContent = '아이디는 4글자 이상 20자 미만 이어야 합니다.';
278
- } else {
279
- let isExist = false;
280
- if (isExist) {
281
- this.msgElement.className = 'd-block text-danger';
282
- this.msgElement.textContent = '이미 사용중인 아이디입니다. 다른 아이디를 이용해주세요.';
283
- } else {
284
- this.msgElement.className = 'd-block text-success';
285
- this.msgElement.textContent = '사용 가능한 아이디입니다.';
286
- valid = true;
287
- }
288
- }
289
- return valid;
290
- }
291
- }();
292
- password = new class extends Validation {
293
- public msgElement!: HTMLElement;
294
- valid(): boolean {
295
- let valid = false;
296
- let regExp = /^.*(?=.)(?=.*[0-9])(?=.*[a-zA-Z]).*$/;
297
- const ERROR_REQUIRE_PW = '비밀번호를 입력해주세요.';
298
- const ERROR_PW_LENGTH = '비밀번호는 8글자~20글자로 이루어져야 합니다.';
299
- const ERROR_PW_REGEXP = '비밀번호는 숫자, 영문, 특수문자 조합으로 이루어져야 합니다.';
300
- const SUCCESS_AVAILABLE_USER_PW = '사용 가능한 비밀번호입니다.';
301
- if (this.length == 0) {
302
- this.msgElement.className = 'd-block text-danger';
303
- this.msgElement.textContent = ERROR_REQUIRE_PW;
304
- } else if (this.length < 8 || this.length > 20) {
305
- this.msgElement.className = 'd-block text-danger';
306
- this.msgElement.textContent = ERROR_PW_LENGTH;
307
- } else {
308
- if (regExp.test(this.value)) {
309
- this.msgElement.className = 'd-block text-success';
310
- this.msgElement.textContent = SUCCESS_AVAILABLE_USER_PW;
311
- valid = true;
312
- } else {
313
- this.msgElement.className = 'd-block text-danger';
314
- this.msgElement.textContent = ERROR_PW_REGEXP;
315
- }
316
- }
317
- return valid;
318
- }
319
- }();
320
- confirmPassword = new class extends Validation {
321
- value = '';
322
- valid(): boolean {
323
- return true;
324
- }
325
- }();
326
- email = new class extends Validation {
327
- value = '';
328
- valid(): boolean {
329
- return true;
330
- }
331
- }();
332
- valid() {
333
- return this.childValid()
334
- }
335
- }();
240
+ class PageValidator extends FormValidator {
241
+ required = new RequiredValidator();
242
+ notEmpty = new NotEmptyValidator();
243
+ empty = new EmptyValidator();
244
+ regexp = new RegExpTestValidator(/[0-9]/);
245
+ mix = new MultipleValidator([new RequiredValidator(), new NotEmptyValidator()]);
246
+
247
+ all = new ValidValidatorArray((v, t, e) => {
248
+ return !((v ?? []).filter(it => !it.checked).length > 0);
249
+ });
250
+
251
+ gender = new ValidValidatorArray((v, t, e) => {
252
+ return ((v ?? []).filter(it => it.checked).length > 0);
253
+ });
336
254
  }
337
- ```
338
- ### dr-form (normal)
339
- ```typescript
340
- form = new class extends Validation {
341
- id = new class extends Validation {
342
- valid(): boolean {
343
- return false;
344
- }
345
- }()
346
-
347
- valid(): boolean {
348
- return false;
349
- }
350
- }();
351
- console.log(form.id.value)
352
- ```
353
- ```html
354
- <form dr-form="this.form" dr-event-submit="this.submit(); $event.preventDefault();">
355
- <input name="id"> <!-- id value -->
356
- <input name=""> <!-- root value -->
357
- <button type="submit"> submit</button>
358
- </form>
359
- ```
360
- ### dr-form (multiple validation)
361
- ```typescript
362
- form = new class extends Validation {
363
- id = new class extends Validation {
364
- valid(): boolean {
365
- return this.length > 0;
366
- }
367
- }();
368
-
369
- all = new class extends Validations<string, HTMLInputElement> {
370
- valid(): boolean {
371
- const inChecked = this.values?.filter(it => it.target && !it.target.checked) ?? [];
372
- return !(inChecked.length > 0)
373
- }
374
- }()
375
-
376
- gender = new class extends Validations<string, HTMLInputElement> {
377
- valid(): boolean {
378
- const inChecked = this.values?.filter(it => it.target && !it.target.checked) ?? [];
379
- return inChecked.length > 0
380
- }
381
- }()
382
-
383
- valid(): boolean {
384
- return this.valids();
385
- }
386
- }();
387
-
388
- submit() {
389
- const form = (this.form as any)
390
- console.log('submit222->', form.valid());
255
+ class User {
256
+ form = new PageValidator();
257
+ submit() {
258
+ console.log('submit valid->', this.form.valid());
259
+ }
260
+
261
+ changeData() {
262
+ this.form.required.value = 'new value';
263
+ }
391
264
  }
392
265
  ```
266
+
393
267
  ```html
394
268
  <form dr-form="this.form" dr-event-submit="this.submit(); $event.preventDefault();">
395
- <h2>name</h2>
396
- name: <input name="id">
269
+ <h2>validator</h2>
270
+ required: <input name="required"> <br>
271
+ notEmpty: <input name="notEmpty"> <br>
272
+ empty: <input name="empty"> <br>
273
+ regexp: /[0-9]/ <input name="regexp"> <br>
274
+ <h2>mix validator</h2>
275
+ required, notEmpty: <input name="mix"> <br>
397
276
  <h2>all check required</h2>
398
- <input name="all" type="checkbox" value="a">a
399
- <input name="all" type="checkbox" value="b">b
277
+ <input name="all" type="checkbox" value="a">a <br>
278
+ <input name="all" type="checkbox" value="b">b <br>
400
279
 
401
280
  <h2>gender chose one</h2>
402
- <input name="gender" type="radio" value="male"> male
403
- <input name="gender" type="radio" value="female"> Female
404
- <br>
281
+ <input name="gender" type="radio" value="male"> Male <br>
282
+ <input name="gender" type="radio" value="female"> Female<br>
283
+
405
284
  <button type="submit">check valid</button>
406
285
  </form>
407
286
  ```
287
+ validator
288
+ - Validator (abstract)
289
+ - ValidatorArray (abstract)
290
+ - AllCheckedValidatorArray
291
+ - AllUnCheckedValidatorArray
292
+ - CheckedValidator
293
+ - CountEqualsCheckedValidatorArray
294
+ - CountEqualsUnCheckedValidatorArray
295
+ - CountGreaterThanCheckedValidatorArray
296
+ - CountGreaterThanEqualsCheckedValidatorArray
297
+ - CountGreaterThanEqualsUnCheckedValidatorArray
298
+ - CountGreaterThanUnCheckedValidatorArray
299
+ - CountLessThanCheckedValidatorArray
300
+ - CountLessThanEqualsCheckedValidatorArray
301
+ - CountLessThanEqualsUnCheckedValidatorArray
302
+ - CountLessThanUnCheckedValidatorArray
303
+ - CountUnCheckedValidatorArray
304
+ - EmptyValidator
305
+ - ExcludeCheckedValidatorArray
306
+ - FormValidator
307
+ - IncludeCheckedValidatorArray
308
+ - MultipleValidator
309
+ - NonPassValidator
310
+ - NotEmptyValidator
311
+ - NotRegExpTestValidator
312
+ - PassValidator
313
+ - RegExpTestValidator
314
+ - RequiredValidator
315
+ - UnCheckedValidator
316
+ - ValidMultipleValidator
317
+ - ValidValidator
318
+ - ValidValidatorArray
319
+ - ValueEqualsValidator
320
+ - ValueNotEqualsValidator
321
+
322
+
323
+ # Class
324
+ ## Range
325
+ ```typescript
326
+ const range = new Range(100,55, 10);
327
+ for (let data of new Range(100,55, 10)) {
328
+ console.log(data);
329
+ }
330
+ const rangeArray = new Range(100,55, 10).toArray();
331
+ ```
332
+
408
333
  # Detect Get, Set
409
334
  OnBeforeReturnSet
410
335
  ```typescript
package/RawSet.js CHANGED
@@ -39,8 +39,8 @@ import { StringUtils } from './utils/string/StringUtils';
39
39
  import { ScriptUtils } from './utils/script/ScriptUtils';
40
40
  import { eventManager } from './events/EventManager';
41
41
  import { Range } from './iterators/Range';
42
- import { Validation } from './validations/Validation';
43
- import { Validations } from './validations/Validations';
42
+ import { Validator } from './validators/Validator';
43
+ import { ValidatorArray } from './validators/ValidatorArray';
44
44
  var RawSet = (function () {
45
45
  function RawSet(uuid, point, fragment, data) {
46
46
  if (data === void 0) { data = {}; }
@@ -176,26 +176,29 @@ var RawSet = (function () {
176
176
  }
177
177
  if (drAttr_1.drForm) {
178
178
  RawSet.drFormOtherMoveAttr(element_2, 'name', 'temp-name');
179
+ var data = ScriptUtils.evalReturn("" + drAttr_1.drForm, obj);
180
+ if (data instanceof Validator) {
181
+ data.setTarget(element_2);
182
+ }
179
183
  element_2.querySelectorAll('[name]').forEach(function (it) {
180
184
  var _a;
181
185
  var eventName = (_a = it.getAttribute('dr-form:event')) !== null && _a !== void 0 ? _a : 'change';
182
186
  var attrEventName = eventManager.attrPrefix + 'event-' + eventName;
183
187
  var varpath = it.getAttribute('name');
184
188
  if (varpath != null) {
185
- var data = ScriptUtils.evalReturn("" + drAttr_1.drForm + (varpath ? '.' + varpath : ''), obj);
186
- if (data instanceof Validations) {
189
+ var data_1 = ScriptUtils.evalReturn("" + drAttr_1.drForm + (varpath ? '.' + varpath : ''), obj);
190
+ if (data_1 instanceof ValidatorArray) {
187
191
  varpath = drAttr_1.drForm + '.' + varpath;
188
- it.setAttribute(attrEventName, varpath + ".setValue($target, $target.value, $event);");
189
- data.addValue(it.value, it);
192
+ it.setAttribute(attrEventName, varpath + ".setArrayValue($target, $target.value, $event);");
193
+ data_1.addValidator(it.value, it);
190
194
  }
191
- else if (data instanceof Validation) {
192
- var target = drAttr_1.drForm + '.' + varpath + '.target';
193
- var event_1 = drAttr_1.drForm + '.' + varpath + '.event';
195
+ else if (data_1 instanceof Validator) {
196
+ var fieldPath = drAttr_1.drForm + '.' + varpath;
194
197
  varpath += (varpath ? '.value' : 'value');
195
198
  varpath = drAttr_1.drForm + '.' + varpath;
196
- it.setAttribute(attrEventName, varpath + " = $target.value; " + target + "=$target; " + event_1 + "=$event;");
197
- data.target = it;
198
- data.value = it.value;
199
+ it.setAttribute(attrEventName, varpath + " = $target.value; " + fieldPath + ".setTarget($target); " + fieldPath + ".setEvent($event);");
200
+ data_1.setTarget(it);
201
+ data_1.value = it.value;
199
202
  }
200
203
  else {
201
204
  varpath = drAttr_1.drForm + '.' + varpath;
@@ -8,6 +8,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
8
8
  _domRender_proxy?: T;
9
9
  _targets: Set<Node>;
10
10
  constructor(_domRender_origin: T, target?: Node, config?: Config | undefined);
11
+ static unFinal<T = any>(obj: T): T;
11
12
  static final<T = any>(obj: T): T;
12
13
  static isFinal<T = any>(obj: T): boolean;
13
14
  run(objProxy: T): void;