dom-render 1.0.94 → 1.0.96

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.
@@ -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 = {}));