dom-render 1.0.94 → 1.0.96

Sign up to get free protection for your applications and to get access to all the features.
@@ -36,7 +36,7 @@ var Appender = /** @class */ (function () {
36
36
  for (var _i = 0; _i < arguments.length; _i++) {
37
37
  items[_i] = arguments[_i];
38
38
  }
39
- // console.log('----2>', this.length)
39
+ // console.log('----2>', items, this.length);
40
40
  items.index = this.length;
41
41
  this[this.length++] = items;
42
42
  // console.log('---22->', this.length)
@@ -44,6 +44,14 @@ var Appender = /** @class */ (function () {
44
44
  // appender.values = items;
45
45
  // this.childs.push(new Appender(appender.index + 1));
46
46
  };
47
+ // delete(idx: number): void {
48
+ // // if (idx in this) {
49
+ // // console.log('---------dele',idx)
50
+ // // delete this[idx];
51
+ // // this.length = this.length - 1;
52
+ // // }
53
+ // this.length = this.length - 1;
54
+ // }
47
55
  Appender.prototype.clear = function () {
48
56
  // console.log('length', this.length);
49
57
  for (var i = 0; i < this.length; i++) {
@@ -83,9 +83,11 @@ var DrThis = /** @class */ (function (_super) {
83
83
  this.afterCallBack.onThisComponentSetCallBacks.push(attr);
84
84
  return [3 /*break*/, 4];
85
85
  case 2:
86
+ // console.log('dr-this!!!!!!!', this.rawSet, this.source.obj)
86
87
  _g = (_f = this.returnContainer.fag).append;
87
88
  return [4 /*yield*/, RawSet_1.RawSet.drThisCreate(this.rawSet, this.elementSource.element, this.elementSource.attrs.drThis, (_d = this.elementSource.attrs.drVarOption) !== null && _d !== void 0 ? _d : '', this.elementSource.attrs.drStripOption, this.source.obj, this.source.config)];
88
89
  case 3:
90
+ // console.log('dr-this!!!!!!!', this.rawSet, this.source.obj)
89
91
  _g.apply(_f, [_j.sent()]);
90
92
  _j.label = 4;
91
93
  case 4:
@@ -0,0 +1,10 @@
1
+ import { OperatorExecuterAttrRequire } from './OperatorExecuterAttrRequire';
2
+ import { RawSet } from '../rawsets/RawSet';
3
+ import { Render } from '../rawsets/Render';
4
+ import { AfterCallBack, ElementSource, ExecuteState, ReturnContainer, Source } from './OperatorExecuter';
5
+ import { Config } from '../configs/Config';
6
+ export declare class DrThisProperty extends OperatorExecuterAttrRequire<string> {
7
+ constructor(rawSet: RawSet, render: Render, returnContainer: ReturnContainer, elementSource: ElementSource, source: Source, afterCallBack: AfterCallBack);
8
+ executeAttrRequire(attr: string): Promise<ExecuteState>;
9
+ static append(obj: any, fullPath: string, key: string, rawSet: RawSet, config: Config): RawSet[];
10
+ }
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ exports.DrThisProperty = void 0;
66
+ var OperatorExecuterAttrRequire_1 = require("./OperatorExecuterAttrRequire");
67
+ var ScriptUtils_1 = require("../utils/script/ScriptUtils");
68
+ var RawSet_1 = require("../rawsets/RawSet");
69
+ var OperatorExecuter_1 = require("./OperatorExecuter");
70
+ var DrThisProperty = /** @class */ (function (_super) {
71
+ __extends(DrThisProperty, _super);
72
+ function DrThisProperty(rawSet, render, returnContainer, elementSource, source, afterCallBack) {
73
+ source.operatorAround = undefined;
74
+ return _super.call(this, rawSet, render, returnContainer, elementSource, source, afterCallBack, false) || this;
75
+ }
76
+ DrThisProperty.prototype.executeAttrRequire = function (attr) {
77
+ var _a, _b, _c, _d, _e;
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var itRandom, vars, newTemp, dictioanry, dictionaryKey, tempalte, rr;
80
+ var _f;
81
+ return __generator(this, function (_g) {
82
+ itRandom = RawSet_1.RawSet.drItOtherEncoding(this.elementSource.element);
83
+ vars = RawSet_1.RawSet.drVarEncoding(this.elementSource.element, (_a = this.elementSource.attrs.drVarOption) !== null && _a !== void 0 ? _a : '');
84
+ newTemp = this.source.config.window.document.createElement('temp');
85
+ dictioanry = ScriptUtils_1.ScriptUtils.evalReturn(attr, this.source.obj);
86
+ dictionaryKey = (_b = this.elementSource.attrs.drKeyOption) !== null && _b !== void 0 ? _b : '';
87
+ // console.log('--->', attr, dictionaryKey)
88
+ // if (!(dictioanry instanceof Dictionary)) {
89
+ // return ExecuteState.STOP;
90
+ // }
91
+ // await new Promise(resolve => setTimeout(resolve, 1000));
92
+ // console.log('!!!!!!!!!!!!!!', this.rawSet);
93
+ ScriptUtils_1.ScriptUtils.eval("\n ".concat(this.render.bindScript, "\n ").concat((_c = this.elementSource.attrs.drBeforeOption) !== null && _c !== void 0 ? _c : '', "\n var i = 0; \n const dictionary = ").concat(attr, ";\n const dictionaryKey = '").concat(dictionaryKey, "';\n const dictionaryStr = `").concat(attr, "`.trim();\n // console.log('----@#!@#@!#', this.__render.oldChild);\n if (dictionary) {\n for(const it in dictionary) {\n var destIt = dictionaryStr + '[\"' + it + '\"]';\n const n = this.__render.element.cloneNode(true);\n n.setAttribute('dr-this', destIt);\n n.setAttribute('dr-key', it);\n // n.setAttribute('dr-dictionary-key', it);\n this.__render.fag.append(n);\n i++;\n }\n this.__render.rawset.point.start.setAttribute('dr-has-keys',Object.keys(dictionary).join(','));\n }\n ").concat((_d = this.elementSource.attrs.drAfterOption) !== null && _d !== void 0 ? _d : '', "\n "), Object.assign(this.source.obj, {
94
+ __render: Object.freeze(__assign({ drStripOption: this.elementSource.attrs.drStripOption, drAttr: this.elementSource.attrs, drAttrsOriginName: RawSet_1.RawSet.drAttrsOriginName, fag: newTemp }, this.render))
95
+ }));
96
+ RawSet_1.RawSet.drVarDecoding(newTemp, vars);
97
+ RawSet_1.RawSet.drItOtherDecoding(newTemp, itRandom);
98
+ tempalte = this.source.config.window.document.createElement('template');
99
+ tempalte.innerHTML = newTemp.innerHTML;
100
+ this.returnContainer.fag.append(tempalte.content);
101
+ rr = RawSet_1.RawSet.checkPointCreates(this.returnContainer.fag, this.source.obj, this.source.config);
102
+ (_e = this.elementSource.element.parentNode) === null || _e === void 0 ? void 0 : _e.replaceChild(this.returnContainer.fag, this.elementSource.element);
103
+ // const rrr = rr.flatMap(it => it.render(obj, config));// .flat();
104
+ (_f = this.returnContainer.raws).push.apply(_f, rr);
105
+ return [2 /*return*/, OperatorExecuter_1.ExecuteState.EXECUTE];
106
+ });
107
+ });
108
+ };
109
+ DrThisProperty.append = function (obj, fullPath, key, rawSet, config) {
110
+ var _this = this;
111
+ var _a, _b;
112
+ var genNode = config.window.document.importNode(rawSet.fragment, true);
113
+ // console.log('---> append', rawSet, genNode);
114
+ var rawSets = [];
115
+ for (var _i = 0, _c = Array.from(genNode.childNodes.values()); _i < _c.length; _i++) {
116
+ var cNode = _c[_i];
117
+ var element = cNode.cloneNode(true);
118
+ element.removeAttribute(RawSet_1.RawSet.DR_THIS_PROPERTY_NAME);
119
+ element.setAttribute(RawSet_1.RawSet.DR_THIS_NAME, "this.".concat(fullPath));
120
+ element.setAttribute(RawSet_1.RawSet.DR_KEY_OPTIONNAME, key);
121
+ // rawSet.point.end.after(element);
122
+ var fg = config.window.document.createDocumentFragment();
123
+ fg.append(element);
124
+ rawSets.push.apply(rawSets, RawSet_1.RawSet.checkPointCreates(fg, obj, config));
125
+ rawSet.point.end.before(fg);
126
+ var start = rawSet.point.start;
127
+ var keys = (_b = (_a = start.getAttribute(RawSet_1.RawSet.DR_HAS_KEYS_OPTIONNAME)) === null || _a === void 0 ? void 0 : _a.split(',')) !== null && _b !== void 0 ? _b : [];
128
+ keys.push(key);
129
+ start.setAttribute(RawSet_1.RawSet.DR_HAS_KEYS_OPTIONNAME, keys.join(','));
130
+ rawSets.forEach(function (it) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
131
+ switch (_a.label) {
132
+ case 0: return [4 /*yield*/, it.render(obj, config)];
133
+ case 1: return [2 /*return*/, _a.sent()];
134
+ }
135
+ }); }); });
136
+ }
137
+ return rawSets;
138
+ };
139
+ return DrThisProperty;
140
+ }(OperatorExecuterAttrRequire_1.OperatorExecuterAttrRequire));
141
+ exports.DrThisProperty = DrThisProperty;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dom-render",
3
- "version": "1.0.94",
3
+ "version": "1.0.96",
4
4
  "main": "DomRender.js",
5
5
  "license": "MIT",
6
6
  "description": "html view template engine",
@@ -4,6 +4,7 @@ export type Attrs = {
4
4
  drAppender: string | null;
5
5
  drFor: string | null;
6
6
  drForOf: string | null;
7
+ drThisProperty: string | null;
7
8
  drRepeat: string | null;
8
9
  drThis: string | null;
9
10
  drForm: string | null;
@@ -18,4 +19,6 @@ export type Attrs = {
18
19
  drCompleteOption: string | null;
19
20
  drStripOption: string | null;
20
21
  drDestroyOption: string | null;
22
+ drHasKeysOption: string | null;
23
+ drKeyOption: string | null;
21
24
  };
@@ -9,7 +9,9 @@ export declare class RawSet {
9
9
  uuid: string;
10
10
  type: RawSetType;
11
11
  point: {
12
- start: Comment | Text | HTMLMetaElement;
12
+ start: (Comment | Text | HTMLMetaElement) & {
13
+ rawSet?: RawSet;
14
+ };
13
15
  node: Node;
14
16
  end: Comment | Text | HTMLMetaElement;
15
17
  thisVariableName?: string | null;
@@ -24,6 +26,7 @@ export declare class RawSet {
24
26
  static readonly DR_IF_NAME = "dr-if";
25
27
  static readonly DR_FOR_NAME = "dr-for";
26
28
  static readonly DR_FOR_OF_NAME = "dr-for-of";
29
+ static readonly DR_THIS_PROPERTY_NAME = "dr-this-property";
27
30
  static readonly DR_REPEAT_NAME = "dr-repeat";
28
31
  static readonly DR_THIS_NAME = "dr-this";
29
32
  static readonly DR_FORM_NAME = "dr-form";
@@ -42,15 +45,19 @@ export declare class RawSet {
42
45
  static readonly DR_DESTROY_OPTIONNAME = "dr-destroy";
43
46
  static readonly DR_COMPONENT_NAME_OPTIONNAME = "dr-component-name";
44
47
  static readonly DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME = "dr-component-inner-html-name";
48
+ static readonly DR_KEY_OPTIONNAME = "dr-key";
49
+ static readonly DR_HAS_KEYS_OPTIONNAME = "dr-has-keys";
45
50
  static readonly DR_ON_CREATE_ARGUMENTS_OPTIONNAME = "dr-on-create:arguments";
46
51
  static readonly DR_ON_CREATED_CALLBACK_OPTIONNAME = "dr-on-create:callback";
47
52
  static readonly DR_ON_INIT_ARGUMENTS_OPTIONNAME = "dr-on-init:arguments";
48
53
  static readonly DR_ON_CONSTRUCTOR_ARGUMENTS_OPTIONNAME = "dr-on-constructor:arguments";
49
54
  static readonly drAttrsOriginName: Attrs;
50
55
  static readonly DR_TAGS: never[];
51
- static readonly DR_ATTRIBUTES: readonly ["dr", "dr-appender", "dr-if", "dr-for-of", "dr-for", "dr-this", "dr-form", "dr-pre", "dr-inner-html", "dr-inner-text", "dr-repeat", "dr-detect"];
56
+ static readonly DR_ATTRIBUTES: readonly ["dr", "dr-appender", "dr-if", "dr-for-of", "dr-this-property", "dr-for", "dr-this", "dr-form", "dr-pre", "dr-inner-html", "dr-inner-text", "dr-repeat", "dr-detect"];
52
57
  constructor(uuid: string, type: RawSetType, point: {
53
- start: Comment | Text | HTMLMetaElement;
58
+ start: (Comment | Text | HTMLMetaElement) & {
59
+ rawSet?: RawSet;
60
+ };
54
61
  node: Node;
55
62
  end: Comment | Text | HTMLMetaElement;
56
63
  thisVariableName?: string | null;
@@ -70,14 +77,17 @@ export declare class RawSet {
70
77
  getDrAppendAttributeAndDelete(element: Element, obj: any): string | null;
71
78
  replaceBody(genNode: Node): void;
72
79
  static checkPointCreates(element: Node, obj: any, config: Config): RawSet[];
73
- static createStartEndPoint(id: string, type: RawSetType, config: Config): {
80
+ static createStartEndPoint(node: Node, id: string, type: RawSetType, config: Config): {
74
81
  start: HTMLMetaElement;
75
82
  end: HTMLMetaElement;
76
83
  } | {
77
84
  start: Comment;
78
85
  end: Comment;
79
86
  };
87
+ remove(): void;
80
88
  childAllRemove(): void;
89
+ childs(stopNext?: (node: Node) => boolean): ChildNode[] | undefined;
90
+ getHasRawSet(key: string): RawSet | undefined;
81
91
  static drItOtherEncoding(element: Element | DocumentFragment): string;
82
92
  static drItOtherDecoding(element: Element | DocumentFragment, random: string): void;
83
93
  static drThisEncoding(element: Element, drThis: string): string;
package/rawsets/RawSet.js CHANGED
@@ -80,6 +80,8 @@ var DrTargetElement_1 = require("../operators/DrTargetElement");
80
80
  var DrTargetAttr_1 = require("../operators/DrTargetAttr");
81
81
  var DestroyOptionType_1 = require("./DestroyOptionType");
82
82
  var RawSetType_1 = require("./RawSetType");
83
+ var DrThisProperty_1 = require("../operators/DrThisProperty");
84
+ var RawSetOperatorType_1 = require("./RawSetOperatorType");
83
85
  var RawSet = /** @class */ (function () {
84
86
  function RawSet(uuid, type, point, fragment, detect, data) {
85
87
  this.uuid = uuid;
@@ -88,6 +90,7 @@ var RawSet = /** @class */ (function () {
88
90
  this.fragment = fragment;
89
91
  this.detect = detect;
90
92
  this.data = data;
93
+ point.start.rawSet = this;
91
94
  // console.log('rawset constructor->', (this.point.node as Element).getAttributeNames());
92
95
  }
93
96
  Object.defineProperty(RawSet.prototype, "isConnected", {
@@ -145,12 +148,12 @@ var RawSet = /** @class */ (function () {
145
148
  };
146
149
  // 중요 render 처리 부분
147
150
  RawSet.prototype.render = function (obj, config) {
148
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
151
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
149
152
  return __awaiter(this, void 0, void 0, function () {
150
- var genNode, raws, onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks, drAttrs, _i, _y, cNode, attribute, __render, fag, textContent, runText, newNode, r, template, r, element, drAttr, operators, _z, operators_1, operator, state, _0, onThisComponentSetCallBacks_1, it_1, _1, onElementInitCallBacks_1, it_2, oninit, param, script, _2, onAttrInitCallBacks_1, it_3;
153
+ var genNode, raws, onAttrInitCallBacks, onElementInitCallBacks, onThisComponentSetCallBacks, drAttrs, _i, _z, cNode, attribute, __render, fag, textContent, runText, newNode, r, template, r, element, drAttr, operators, _0, operators_1, operator, state, _1, onThisComponentSetCallBacks_1, it_1, _2, onElementInitCallBacks_1, it_2, oninit, param, script, _3, onAttrInitCallBacks_1, it_3;
151
154
  var _this = this;
152
- return __generator(this, function (_3) {
153
- switch (_3.label) {
155
+ return __generator(this, function (_4) {
156
+ switch (_4.label) {
154
157
  case 0:
155
158
  genNode = config.window.document.importNode(this.fragment, true);
156
159
  raws = [];
@@ -158,11 +161,11 @@ var RawSet = /** @class */ (function () {
158
161
  onElementInitCallBacks = [];
159
162
  onThisComponentSetCallBacks = [];
160
163
  drAttrs = [];
161
- _i = 0, _y = Array.from(genNode.childNodes.values());
162
- _3.label = 1;
164
+ _i = 0, _z = Array.from(genNode.childNodes.values());
165
+ _4.label = 1;
163
166
  case 1:
164
- if (!(_i < _y.length)) return [3 /*break*/, 7];
165
- cNode = _y[_i];
167
+ if (!(_i < _z.length)) return [3 /*break*/, 7];
168
+ cNode = _z[_i];
166
169
  attribute = {};
167
170
  if (cNode.nodeType === Node.ELEMENT_NODE) {
168
171
  attribute = DomUtils_1.DomUtils.getAttributeToObject(cNode);
@@ -207,6 +210,7 @@ var RawSet = /** @class */ (function () {
207
210
  drIf: this.getAttributeAndDelete(element, RawSet.DR_IF_NAME),
208
211
  drFor: this.getAttributeAndDelete(element, RawSet.DR_FOR_NAME),
209
212
  drForOf: this.getAttributeAndDelete(element, RawSet.DR_FOR_OF_NAME),
213
+ drThisProperty: this.getAttributeAndDelete(element, RawSet.DR_THIS_PROPERTY_NAME),
210
214
  drAppender: this.getAttributeAndDelete(element, RawSet.DR_APPENDER_NAME),
211
215
  drRepeat: this.getAttributeAndDelete(element, RawSet.DR_REPEAT_NAME),
212
216
  drThis: this.getAttributeAndDelete(element, RawSet.DR_THIS_NAME),
@@ -221,7 +225,8 @@ var RawSet = /** @class */ (function () {
221
225
  drBeforeOption: this.getAttributeAndDelete(element, RawSet.DR_BEFORE_OPTIONNAME),
222
226
  drCompleteOption: this.getAttributeAndDelete(element, RawSet.DR_COMPLETE_OPTIONNAME),
223
227
  drStripOption: this.getAttributeAndDelete(element, RawSet.DR_STRIP_OPTIONNAME),
224
- drDestroyOption: this.getAttributeAndDelete(element, RawSet.DR_DESTROY_OPTIONNAME)
228
+ drDestroyOption: this.getAttributeAndDelete(element, RawSet.DR_DESTROY_OPTIONNAME),
229
+ drKeyOption: this.getAttributeAndDelete(element, RawSet.DR_KEY_OPTIONNAME)
225
230
  };
226
231
  drAttrs.push(drAttr);
227
232
  operators = [
@@ -234,28 +239,29 @@ var RawSet = /** @class */ (function () {
234
239
  new DrInnerHTML_1.DrInnerHTML(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_INNERHTML_NAME, attr: drAttr.drInnerHTML, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_h = config.operatorAround) === null || _h === void 0 ? void 0 : _h.drInnerHTML }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
235
240
  new DrFor_1.DrFor(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_FOR_NAME, attr: drAttr.drFor, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_j = config.operatorAround) === null || _j === void 0 ? void 0 : _j.drFor }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
236
241
  new DrForOf_1.DrForOf(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_FOR_OF_NAME, attr: drAttr.drForOf, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_k = config.operatorAround) === null || _k === void 0 ? void 0 : _k.drForOf }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
237
- new DrAppender_1.DrAppender(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_l = config.operatorAround) === null || _l === void 0 ? void 0 : _l.drAppender }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
238
- new DrRepeat_1.DrRepeat(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_m = config.operatorAround) === null || _m === void 0 ? void 0 : _m.drRepeat }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
242
+ new DrThisProperty_1.DrThisProperty(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_THIS_PROPERTY_NAME, attr: drAttr.drThisProperty, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_l = config.operatorAround) === null || _l === void 0 ? void 0 : _l.drThisProperty }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
243
+ new DrAppender_1.DrAppender(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_APPENDER_NAME, attr: drAttr.drAppender, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_m = config.operatorAround) === null || _m === void 0 ? void 0 : _m.drAppender }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
244
+ new DrRepeat_1.DrRepeat(this, __render, { raws: raws, fag: fag }, { element: element, attrName: RawSet.DR_REPEAT_NAME, attr: drAttr.drRepeat, attrs: drAttr }, { config: config, obj: obj, operatorAround: (_o = config.operatorAround) === null || _o === void 0 ? void 0 : _o.drRepeat }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
239
245
  new DrTargetElement_1.DrTargetElement(this, __render, { raws: raws, fag: fag }, { element: element, attrs: drAttr }, { config: config, obj: obj }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks }),
240
246
  new DrTargetAttr_1.DrTargetAttr(this, __render, { raws: raws, fag: fag }, { element: element, attrs: drAttr }, { config: config, obj: obj }, { onAttrInitCallBacks: onAttrInitCallBacks, onElementInitCallBacks: onElementInitCallBacks, onThisComponentSetCallBacks: onThisComponentSetCallBacks })
241
247
  ];
242
- _z = 0, operators_1 = operators;
243
- _3.label = 3;
248
+ _0 = 0, operators_1 = operators;
249
+ _4.label = 3;
244
250
  case 3:
245
- if (!(_z < operators_1.length)) return [3 /*break*/, 6];
246
- operator = operators_1[_z];
251
+ if (!(_0 < operators_1.length)) return [3 /*break*/, 6];
252
+ operator = operators_1[_0];
247
253
  return [4 /*yield*/, operator.start()];
248
254
  case 4:
249
- state = _3.sent();
255
+ state = _4.sent();
250
256
  if (state === OperatorExecuter_1.ExecuteState.EXECUTE) {
251
257
  return [3 /*break*/, 6];
252
258
  }
253
259
  else if (state === OperatorExecuter_1.ExecuteState.STOP) {
254
260
  return [2 /*return*/, raws];
255
261
  }
256
- _3.label = 5;
262
+ _4.label = 5;
257
263
  case 5:
258
- _z++;
264
+ _0++;
259
265
  return [3 /*break*/, 3];
260
266
  case 6:
261
267
  _i++;
@@ -276,13 +282,13 @@ var RawSet = /** @class */ (function () {
276
282
  });
277
283
  // 중요 style isolation 나중에 :scope로 대체 가능할듯.
278
284
  RawSet.generateStyleSheetsLocal();
279
- for (_0 = 0, onThisComponentSetCallBacks_1 = onThisComponentSetCallBacks; _0 < onThisComponentSetCallBacks_1.length; _0++) {
280
- it_1 = onThisComponentSetCallBacks_1[_0];
281
- (_p = (_o = it_1.obj) === null || _o === void 0 ? void 0 : _o.onInitRender) === null || _p === void 0 ? void 0 : _p.call(_o);
285
+ for (_1 = 0, onThisComponentSetCallBacks_1 = onThisComponentSetCallBacks; _1 < onThisComponentSetCallBacks_1.length; _1++) {
286
+ it_1 = onThisComponentSetCallBacks_1[_1];
287
+ (_q = (_p = it_1.obj) === null || _p === void 0 ? void 0 : _p.onInitRender) === null || _q === void 0 ? void 0 : _q.call(_p);
282
288
  }
283
- for (_1 = 0, onElementInitCallBacks_1 = onElementInitCallBacks; _1 < onElementInitCallBacks_1.length; _1++) {
284
- it_2 = onElementInitCallBacks_1[_1];
285
- if (((_r = (_q = it_2.targetElement) === null || _q === void 0 ? void 0 : _q.__render) === null || _r === void 0 ? void 0 : _r.element) && ((_t = (_s = it_2.targetElement) === null || _s === void 0 ? void 0 : _s.__render) === null || _t === void 0 ? void 0 : _t.component)) {
289
+ for (_2 = 0, onElementInitCallBacks_1 = onElementInitCallBacks; _2 < onElementInitCallBacks_1.length; _2++) {
290
+ it_2 = onElementInitCallBacks_1[_2];
291
+ if (((_s = (_r = it_2.targetElement) === null || _r === void 0 ? void 0 : _r.__render) === null || _s === void 0 ? void 0 : _s.element) && ((_u = (_t = it_2.targetElement) === null || _t === void 0 ? void 0 : _t.__render) === null || _u === void 0 ? void 0 : _u.component)) {
286
292
  oninit = it_2.targetElement.__render.element.getAttribute(RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME);
287
293
  param = [];
288
294
  if (oninit) {
@@ -294,14 +300,14 @@ var RawSet = /** @class */ (function () {
294
300
  param = [param];
295
301
  }
296
302
  }
297
- (_v = (_u = it_2.targetElement.__render.component).onInitRender) === null || _v === void 0 ? void 0 : _v.call.apply(_v, __spreadArray([_u], param, false));
303
+ (_w = (_v = it_2.targetElement.__render.component).onInitRender) === null || _w === void 0 ? void 0 : _w.call.apply(_w, __spreadArray([_v], param, false));
298
304
  }
299
- (_w = config === null || config === void 0 ? void 0 : config.onElementInit) === null || _w === void 0 ? void 0 : _w.call(config, it_2.name, obj, this, it_2.targetElement);
305
+ (_x = config === null || config === void 0 ? void 0 : config.onElementInit) === null || _x === void 0 ? void 0 : _x.call(config, it_2.name, obj, this, it_2.targetElement);
300
306
  }
301
307
  // TODO: 이부분도 위에 targetElement 처럼 해야될까?
302
- for (_2 = 0, onAttrInitCallBacks_1 = onAttrInitCallBacks; _2 < onAttrInitCallBacks_1.length; _2++) {
303
- it_3 = onAttrInitCallBacks_1[_2];
304
- (_x = config === null || config === void 0 ? void 0 : config.onAttrInit) === null || _x === void 0 ? void 0 : _x.call(config, it_3.attrName, it_3.attrValue, obj, this);
308
+ for (_3 = 0, onAttrInitCallBacks_1 = onAttrInitCallBacks; _3 < onAttrInitCallBacks_1.length; _3++) {
309
+ it_3 = onAttrInitCallBacks_1[_3];
310
+ (_y = config === null || config === void 0 ? void 0 : config.onAttrInit) === null || _y === void 0 ? void 0 : _y.call(config, it_3.attrName, it_3.attrValue, obj, this);
305
311
  }
306
312
  // component destroy
307
313
  if (obj.__domrender_components) {
@@ -499,9 +505,10 @@ var RawSet = /** @class */ (function () {
499
505
  else {
500
506
  type = RawSetType_1.RawSetType.TEXT;
501
507
  }
502
- var startEndPoint = RawSet.createStartEndPoint(it_4.uuid, type, config);
508
+ var node = document.createTextNode(preparedText);
509
+ var startEndPoint = RawSet.createStartEndPoint(node, it_4.uuid, type, config);
503
510
  // layout setting
504
- template.content.append(document.createTextNode(preparedText)); // 앞 부분 넣고
511
+ template.content.append(node); // 앞 부분 넣고
505
512
  template.content.append(startEndPoint.start); // add start checkpoint
506
513
  template.content.append(startEndPoint.end); // add end checkpoint
507
514
  // content 안쪽 RawSet render 할때 start 와 end 사이에 fragment 연산해서 들어간다.
@@ -524,7 +531,7 @@ var RawSet = /** @class */ (function () {
524
531
  var element_3 = currentNode;
525
532
  var fragment = config.window.document.createDocumentFragment();
526
533
  var type = RawSetType_1.RawSetType.TARGET_ELEMENT;
527
- var startEndPoint = RawSet.createStartEndPoint(uuid, type, config);
534
+ var startEndPoint = RawSet.createStartEndPoint(element_3, uuid, type, config);
528
535
  var isElement = ((_d = (_c = config.targetElements) === null || _c === void 0 ? void 0 : _c.map(function (it) { return it.name.toLowerCase(); })) !== null && _d !== void 0 ? _d : []).includes(element_3.tagName.toLowerCase());
529
536
  var targetAttrNames_2 = ((_f = (_e = config.targetAttrs) === null || _e === void 0 ? void 0 : _e.map(function (it) { return it.name; })) !== null && _f !== void 0 ? _f : []).concat(RawSet.DR_ATTRIBUTES);
530
537
  var isAttr = element_3.getAttributeNames().filter(function (it) { return targetAttrNames_2.includes(it.toLowerCase()); }).length > 0;
@@ -547,16 +554,23 @@ var RawSet = /** @class */ (function () {
547
554
  // console.log('check-->', pars)
548
555
  return pars;
549
556
  };
550
- RawSet.createStartEndPoint = function (id, type, config) {
557
+ RawSet.createStartEndPoint = function (node, id, type, config) {
551
558
  if (type === RawSetType_1.RawSetType.TARGET_ELEMENT) {
559
+ var element = node;
552
560
  var start = config.window.document.createElement('meta');
553
561
  var end = config.window.document.createElement('meta');
554
562
  start.setAttribute('id', "".concat(id, "-start"));
563
+ var keys = element.getAttribute(RawSet.DR_KEY_OPTIONNAME);
564
+ var thisPropertyType = element.getAttribute(RawSet.DR_THIS_PROPERTY_NAME);
565
+ if (thisPropertyType) {
566
+ start.setAttribute('type', RawSetOperatorType_1.RawSetOperatorType.DR_THIS_PROPERTY);
567
+ }
568
+ if (keys) {
569
+ element.removeAttribute(RawSet.DR_KEY_OPTIONNAME);
570
+ start.setAttribute(RawSet.DR_KEY_OPTIONNAME, keys);
571
+ }
555
572
  end.setAttribute('id', "".concat(id, "-end"));
556
- return {
557
- start: start,
558
- end: end
559
- };
573
+ return { start: start, end: end };
560
574
  }
561
575
  else if (type === RawSetType_1.RawSetType.STYLE_TEXT) {
562
576
  return {
@@ -571,6 +585,11 @@ var RawSet = /** @class */ (function () {
571
585
  };
572
586
  }
573
587
  };
588
+ RawSet.prototype.remove = function () {
589
+ this.childAllRemove();
590
+ this.point.end.remove();
591
+ this.point.start.remove();
592
+ };
574
593
  RawSet.prototype.childAllRemove = function () {
575
594
  var next = this.point.start.nextSibling;
576
595
  while (next) {
@@ -581,6 +600,31 @@ var RawSet = /** @class */ (function () {
581
600
  next = this.point.start.nextSibling;
582
601
  }
583
602
  };
603
+ RawSet.prototype.childs = function (stopNext) {
604
+ var childs = [];
605
+ var next = this.point.start.nextSibling;
606
+ while (next && next !== this.point.end) {
607
+ if (stopNext === null || stopNext === void 0 ? void 0 : stopNext(next)) {
608
+ return;
609
+ }
610
+ childs.push(next);
611
+ next = next.nextSibling;
612
+ }
613
+ return childs;
614
+ };
615
+ RawSet.prototype.getHasRawSet = function (key) {
616
+ var rawSet;
617
+ this.childs(function (node) {
618
+ var _a, _b;
619
+ var drKey = (_b = (_a = node).getAttribute) === null || _b === void 0 ? void 0 : _b.call(_a, 'dr-key');
620
+ if (drKey && drKey === key) {
621
+ rawSet = node.rawSet;
622
+ return true;
623
+ }
624
+ return false;
625
+ });
626
+ return rawSet;
627
+ };
584
628
  RawSet.drItOtherEncoding = function (element) {
585
629
  var random = RandomUtils_1.RandomUtils.uuid();
586
630
  var regex = /#it#/g;
@@ -1002,6 +1046,7 @@ var RawSet = /** @class */ (function () {
1002
1046
  RawSet.DR_IF_NAME = 'dr-if';
1003
1047
  RawSet.DR_FOR_NAME = 'dr-for';
1004
1048
  RawSet.DR_FOR_OF_NAME = 'dr-for-of';
1049
+ RawSet.DR_THIS_PROPERTY_NAME = 'dr-this-property';
1005
1050
  RawSet.DR_REPEAT_NAME = 'dr-repeat';
1006
1051
  RawSet.DR_THIS_NAME = 'dr-this';
1007
1052
  RawSet.DR_FORM_NAME = 'dr-form';
@@ -1020,6 +1065,8 @@ var RawSet = /** @class */ (function () {
1020
1065
  RawSet.DR_DESTROY_OPTIONNAME = 'dr-destroy';
1021
1066
  RawSet.DR_COMPONENT_NAME_OPTIONNAME = 'dr-component-name';
1022
1067
  RawSet.DR_COMPONENT_INNER_HTML_NAME_OPTIONNAME = 'dr-component-inner-html-name';
1068
+ RawSet.DR_KEY_OPTIONNAME = 'dr-key';
1069
+ RawSet.DR_HAS_KEYS_OPTIONNAME = 'dr-has-keys';
1023
1070
  RawSet.DR_ON_CREATE_ARGUMENTS_OPTIONNAME = 'dr-on-create:arguments';
1024
1071
  RawSet.DR_ON_CREATED_CALLBACK_OPTIONNAME = 'dr-on-create:callback';
1025
1072
  RawSet.DR_ON_INIT_ARGUMENTS_OPTIONNAME = 'dr-on-init:arguments';
@@ -1029,6 +1076,7 @@ var RawSet = /** @class */ (function () {
1029
1076
  drIf: RawSet.DR_IF_NAME,
1030
1077
  drFor: RawSet.DR_FOR_NAME,
1031
1078
  drForOf: RawSet.DR_FOR_OF_NAME,
1079
+ drThisProperty: RawSet.DR_THIS_PROPERTY_NAME,
1032
1080
  drAppender: RawSet.DR_APPENDER_NAME,
1033
1081
  drRepeat: RawSet.DR_REPEAT_NAME,
1034
1082
  drThis: RawSet.DR_THIS_NAME,
@@ -1043,10 +1091,12 @@ var RawSet = /** @class */ (function () {
1043
1091
  drBeforeOption: RawSet.DR_BEFORE_OPTIONNAME,
1044
1092
  drCompleteOption: RawSet.DR_COMPLETE_OPTIONNAME,
1045
1093
  drStripOption: RawSet.DR_STRIP_OPTIONNAME,
1046
- drDestroyOption: RawSet.DR_DESTROY_OPTIONNAME
1094
+ drDestroyOption: RawSet.DR_DESTROY_OPTIONNAME,
1095
+ drHasKeysOption: RawSet.DR_HAS_KEYS_OPTIONNAME,
1096
+ drKeyOption: RawSet.DR_KEY_OPTIONNAME
1047
1097
  };
1048
1098
  RawSet.DR_TAGS = [];
1049
- RawSet.DR_ATTRIBUTES = [RawSet.DR_NAME, RawSet.DR_APPENDER_NAME, RawSet.DR_IF_NAME, RawSet.DR_FOR_OF_NAME, RawSet.DR_FOR_NAME, RawSet.DR_THIS_NAME, RawSet.DR_FORM_NAME, RawSet.DR_PRE_NAME, RawSet.DR_INNERHTML_NAME, RawSet.DR_INNERTEXT_NAME, RawSet.DR_REPEAT_NAME, RawSet.DR_DETECT_NAME];
1099
+ RawSet.DR_ATTRIBUTES = [RawSet.DR_NAME, RawSet.DR_APPENDER_NAME, RawSet.DR_IF_NAME, RawSet.DR_FOR_OF_NAME, RawSet.DR_THIS_PROPERTY_NAME, RawSet.DR_FOR_NAME, RawSet.DR_THIS_NAME, RawSet.DR_FORM_NAME, RawSet.DR_PRE_NAME, RawSet.DR_INNERHTML_NAME, RawSet.DR_INNERTEXT_NAME, RawSet.DR_REPEAT_NAME, RawSet.DR_DETECT_NAME];
1050
1100
  return RawSet;
1051
1101
  }());
1052
1102
  exports.RawSet = RawSet;
@@ -0,0 +1,3 @@
1
+ export declare enum RawSetOperatorType {
2
+ DR_THIS_PROPERTY = "this-property"
3
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RawSetOperatorType = void 0;
4
+ var RawSetOperatorType;
5
+ (function (RawSetOperatorType) {
6
+ RawSetOperatorType["DR_THIS_PROPERTY"] = "this-property";
7
+ })(RawSetOperatorType = exports.RawSetOperatorType || (exports.RawSetOperatorType = {}));