@dooboostore/dom-render 1.0.98
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.
- package/DomRender.d.ts +24 -0
- package/DomRender.js +115 -0
- package/DomRenderProxy.d.ts +38 -0
- package/DomRenderProxy.js +586 -0
- package/README.MD +938 -0
- package/components/ComponentBase.d.ts +41 -0
- package/components/ComponentBase.js +210 -0
- package/components/ComponentSet.d.ts +22 -0
- package/components/ComponentSet.js +23 -0
- package/components/appender/Appender.d.ts +23 -0
- package/components/appender/Appender.js +59 -0
- package/components/checkbox/CheckBox.d.ts +47 -0
- package/components/checkbox/CheckBox.js +118 -0
- package/components/choose/Choose.d.ts +39 -0
- package/components/choose/Choose.js +110 -0
- package/components/details/Details.d.ts +57 -0
- package/components/details/Details.js +199 -0
- package/components/dialog/Dialog.d.ts +1 -0
- package/components/dialog/Dialog.js +85 -0
- package/components/dialog/example/ImageEditorDialog.d.ts +1 -0
- package/components/dialog/example/ImageEditorDialog.js +116 -0
- package/components/forOf/ForOf.d.ts +18 -0
- package/components/forOf/ForOf.js +32 -0
- package/components/if/If.d.ts +21 -0
- package/components/if/If.js +40 -0
- package/components/index.d.ts +27 -0
- package/components/index.js +13 -0
- package/components/input/Input.d.ts +34 -0
- package/components/input/Input.js +86 -0
- package/components/promise/PromiseSwitch.d.ts +55 -0
- package/components/promise/PromiseSwitch.js +181 -0
- package/components/radio/Radio.d.ts +45 -0
- package/components/radio/Radio.js +123 -0
- package/components/select/Select.d.ts +23 -0
- package/components/select/Select.js +52 -0
- package/components/this/This.d.ts +24 -0
- package/components/this/This.js +62 -0
- package/components/timer/Timer.d.ts +26 -0
- package/components/timer/Timer.js +102 -0
- package/configs/Config.d.ts +34 -0
- package/configs/Config.js +2 -0
- package/configs/TargetAttr.d.ts +7 -0
- package/configs/TargetAttr.js +2 -0
- package/configs/TargetElement.d.ts +16 -0
- package/configs/TargetElement.js +2 -0
- package/css/parse/index.d.ts +49 -0
- package/css/parse/index.js +498 -0
- package/css/stringify/compiler.d.ts +34 -0
- package/css/stringify/compiler.js +36 -0
- package/css/stringify/compress.d.ts +104 -0
- package/css/stringify/compress.js +147 -0
- package/css/stringify/identity.d.ts +109 -0
- package/css/stringify/identity.js +183 -0
- package/css/stringify/index.d.ts +24 -0
- package/css/stringify/index.js +27 -0
- package/css/stringify/types.d.ts +15 -0
- package/css/stringify/types.js +2 -0
- package/css/types.d.ts +10 -0
- package/css/types.js +2 -0
- package/decorators/DomRenderNoProxy.d.ts +4 -0
- package/decorators/DomRenderNoProxy.js +15 -0
- package/events/EventManager.d.ts +68 -0
- package/events/EventManager.js +477 -0
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/iterators/Range.d.ts +24 -0
- package/iterators/Range.js +70 -0
- package/lifecycle/OnBeforeReturnGet.d.ts +4 -0
- package/lifecycle/OnBeforeReturnGet.js +2 -0
- package/lifecycle/OnBeforeReturnSet.d.ts +5 -0
- package/lifecycle/OnBeforeReturnSet.js +4 -0
- package/lifecycle/OnChangeAttrRender.d.ts +9 -0
- package/lifecycle/OnChangeAttrRender.js +4 -0
- package/lifecycle/OnChildRenderedByProperty.d.ts +5 -0
- package/lifecycle/OnChildRenderedByProperty.js +4 -0
- package/lifecycle/OnCreateRender.d.ts +5 -0
- package/lifecycle/OnCreateRender.js +4 -0
- package/lifecycle/OnCreateRenderData.d.ts +10 -0
- package/lifecycle/OnCreateRenderData.js +4 -0
- package/lifecycle/OnCreateRendered.d.ts +8 -0
- package/lifecycle/OnCreateRendered.js +4 -0
- package/lifecycle/OnCreatedThisChild.d.ts +6 -0
- package/lifecycle/OnCreatedThisChild.js +4 -0
- package/lifecycle/OnDestroyRender.d.ts +9 -0
- package/lifecycle/OnDestroyRender.js +4 -0
- package/lifecycle/OnInitRender.d.ts +6 -0
- package/lifecycle/OnInitRender.js +4 -0
- package/lifecycle/OnProxyDomRender.d.ts +5 -0
- package/lifecycle/OnProxyDomRender.js +2 -0
- package/lifecycle/dr-this/OnDrThisBind.d.ts +5 -0
- package/lifecycle/dr-this/OnDrThisBind.js +4 -0
- package/lifecycle/dr-this/OnDrThisUnBind.d.ts +5 -0
- package/lifecycle/dr-this/OnDrThisUnBind.js +4 -0
- package/managers/RenderManager.d.ts +2 -0
- package/managers/RenderManager.js +12 -0
- package/messenger/DefaultMessenger.d.ts +4 -0
- package/messenger/DefaultMessenger.js +4 -0
- package/messenger/Messenger.d.ts +79 -0
- package/messenger/Messenger.js +185 -0
- package/operators/Appender.d.ts +15 -0
- package/operators/Appender.js +90 -0
- package/operators/Dr.d.ts +9 -0
- package/operators/Dr.js +53 -0
- package/operators/DrAppender.d.ts +9 -0
- package/operators/DrAppender.js +69 -0
- package/operators/DrFor.d.ts +9 -0
- package/operators/DrFor.js +58 -0
- package/operators/DrForOf.d.ts +9 -0
- package/operators/DrForOf.js +120 -0
- package/operators/DrForm.d.ts +9 -0
- package/operators/DrForm.js +79 -0
- package/operators/DrIf.d.ts +9 -0
- package/operators/DrIf.js +70 -0
- package/operators/DrInnerHTML.d.ts +9 -0
- package/operators/DrInnerHTML.js +48 -0
- package/operators/DrInnerText.d.ts +9 -0
- package/operators/DrInnerText.js +46 -0
- package/operators/DrPre.d.ts +8 -0
- package/operators/DrPre.js +22 -0
- package/operators/DrRepeat.d.ts +9 -0
- package/operators/DrRepeat.js +70 -0
- package/operators/DrStripElement.d.ts +9 -0
- package/operators/DrStripElement.js +50 -0
- package/operators/DrTargetAttr.d.ts +8 -0
- package/operators/DrTargetAttr.js +45 -0
- package/operators/DrTargetElement.d.ts +13 -0
- package/operators/DrTargetElement.js +91 -0
- package/operators/DrTargetElementIsElement.d.ts +13 -0
- package/operators/DrTargetElementIsElement.js +79 -0
- package/operators/DrThis.d.ts +7 -0
- package/operators/DrThis.js +72 -0
- package/operators/DrThisProperty.d.ts +11 -0
- package/operators/DrThisProperty.js +93 -0
- package/operators/OperatorExecuter.d.ts +50 -0
- package/operators/OperatorExecuter.js +50 -0
- package/operators/OperatorExecuterAttrRequire.d.ts +9 -0
- package/operators/OperatorExecuterAttrRequire.js +25 -0
- package/package.json +70 -0
- package/rawsets/AttrInitCallBack.d.ts +6 -0
- package/rawsets/AttrInitCallBack.js +2 -0
- package/rawsets/Attrs.d.ts +27 -0
- package/rawsets/Attrs.js +2 -0
- package/rawsets/CreatorMetaData.d.ts +20 -0
- package/rawsets/CreatorMetaData.js +2 -0
- package/rawsets/DestroyOptionType.d.ts +5 -0
- package/rawsets/DestroyOptionType.js +6 -0
- package/rawsets/ElementInitCallBack.d.ts +9 -0
- package/rawsets/ElementInitCallBack.js +2 -0
- package/rawsets/RawSet.d.ts +180 -0
- package/rawsets/RawSet.js +1450 -0
- package/rawsets/RawSetOperatorType.d.ts +4 -0
- package/rawsets/RawSetOperatorType.js +5 -0
- package/rawsets/RawSetType.d.ts +8 -0
- package/rawsets/RawSetType.js +9 -0
- package/rawsets/Render.d.ts +27 -0
- package/rawsets/Render.js +2 -0
- package/routers/HashRouter.d.ts +24 -0
- package/routers/HashRouter.js +86 -0
- package/routers/PathRouter.d.ts +23 -0
- package/routers/PathRouter.js +73 -0
- package/routers/Router.d.ts +68 -0
- package/routers/Router.js +132 -0
- package/types/Types.d.ts +12 -0
- package/types/Types.js +26 -0
- package/validators/AllCheckedValidatorArray.d.ts +7 -0
- package/validators/AllCheckedValidatorArray.js +11 -0
- package/validators/AllUnCheckedValidatorArray.d.ts +7 -0
- package/validators/AllUnCheckedValidatorArray.js +11 -0
- package/validators/CheckedValidator.d.ts +6 -0
- package/validators/CheckedValidator.js +11 -0
- package/validators/CountEqualsCheckedValidatorArray.d.ts +8 -0
- package/validators/CountEqualsCheckedValidatorArray.js +12 -0
- package/validators/CountEqualsUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountEqualsUnCheckedValidatorArray.js +12 -0
- package/validators/CountGreaterThanCheckedValidatorArray.d.ts +8 -0
- package/validators/CountGreaterThanCheckedValidatorArray.js +12 -0
- package/validators/CountGreaterThanEqualsCheckedValidatorArray.d.ts +8 -0
- package/validators/CountGreaterThanEqualsCheckedValidatorArray.js +12 -0
- package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountGreaterThanEqualsUnCheckedValidatorArray.js +12 -0
- package/validators/CountGreaterThanUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountGreaterThanUnCheckedValidatorArray.js +12 -0
- package/validators/CountLessThanCheckedValidatorArray.d.ts +8 -0
- package/validators/CountLessThanCheckedValidatorArray.js +12 -0
- package/validators/CountLessThanEqualsCheckedValidatorArray.d.ts +8 -0
- package/validators/CountLessThanEqualsCheckedValidatorArray.js +12 -0
- package/validators/CountLessThanEqualsUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountLessThanEqualsUnCheckedValidatorArray.js +12 -0
- package/validators/CountLessThanUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountLessThanUnCheckedValidatorArray.js +12 -0
- package/validators/CountUnCheckedValidatorArray.d.ts +8 -0
- package/validators/CountUnCheckedValidatorArray.js +12 -0
- package/validators/EmptyValidator.d.ts +6 -0
- package/validators/EmptyValidator.js +12 -0
- package/validators/ExcludeCheckedValidatorArray.d.ts +9 -0
- package/validators/ExcludeCheckedValidatorArray.js +17 -0
- package/validators/FormValidator.d.ts +8 -0
- package/validators/FormValidator.js +16 -0
- package/validators/IncludeCheckedValidatorArray.d.ts +9 -0
- package/validators/IncludeCheckedValidatorArray.js +17 -0
- package/validators/MultipleValidator.d.ts +9 -0
- package/validators/MultipleValidator.js +25 -0
- package/validators/NonPassValidator.d.ts +6 -0
- package/validators/NonPassValidator.js +10 -0
- package/validators/NotEmptyValidator.d.ts +6 -0
- package/validators/NotEmptyValidator.js +13 -0
- package/validators/NotRegExpTestValidator.d.ts +7 -0
- package/validators/NotRegExpTestValidator.js +20 -0
- package/validators/PassValidator.d.ts +6 -0
- package/validators/PassValidator.js +10 -0
- package/validators/RegExpTestValidator.d.ts +7 -0
- package/validators/RegExpTestValidator.js +21 -0
- package/validators/RequiredValidator.d.ts +6 -0
- package/validators/RequiredValidator.js +12 -0
- package/validators/UnCheckedValidator.d.ts +6 -0
- package/validators/UnCheckedValidator.js +11 -0
- package/validators/ValidMultipleValidator.d.ts +10 -0
- package/validators/ValidMultipleValidator.js +12 -0
- package/validators/ValidValidator.d.ts +7 -0
- package/validators/ValidValidator.js +11 -0
- package/validators/ValidValidatorArray.d.ts +8 -0
- package/validators/ValidValidatorArray.js +11 -0
- package/validators/Validator.d.ts +58 -0
- package/validators/Validator.js +203 -0
- package/validators/ValidatorArray.d.ts +18 -0
- package/validators/ValidatorArray.js +77 -0
- package/validators/ValueEqualsValidator.d.ts +7 -0
- package/validators/ValueEqualsValidator.js +11 -0
- package/validators/ValueNotEqualsValidator.d.ts +7 -0
- package/validators/ValueNotEqualsValidator.js +11 -0
|
@@ -0,0 +1,477 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { ScriptUtils } from '@dooboostore/core-web/script/ScriptUtils';
|
|
3
|
+
import { DomUtils } from '@dooboostore/core-web/dom/DomUtils';
|
|
4
|
+
import { Range } from '../iterators/Range';
|
|
5
|
+
import { DomRenderFinalProxy } from '../types/Types';
|
|
6
|
+
export class EventManager {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.eventNames = [
|
|
9
|
+
'click', 'mousedown', 'mouseup', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mouseenter', 'mouseleave', 'contextmenu',
|
|
10
|
+
'keyup', 'keydown', 'keypress', 'toggle',
|
|
11
|
+
'change', 'input', 'submit', 'resize', 'focus', 'blur',
|
|
12
|
+
'close', 'cancel' // dialog cancel 이벤트는 close 이벤트의 하위 이벤트로, ESC 키나 취소 버튼으로 닫힐 때만 발생. (close// 추가 로직 (예: 닫힘 후 처리))
|
|
13
|
+
/*
|
|
14
|
+
close 이벤트: <dialog>가 닫힐 때 발생. 사용자가 취소 버튼, 확인 버튼, 또는 dialog.close() 메서드로 닫을 때 모두 트리거됩니다.
|
|
15
|
+
cancel 이벤트: <dialog>가 ESC 키나 취소 버튼으로 닫힐 때 발생. close 이벤트의 하위 이벤트로 볼 수 있습니다.
|
|
16
|
+
*/
|
|
17
|
+
];
|
|
18
|
+
this.bindScript = `
|
|
19
|
+
const ${_a.VALUE_VARNAME} = this.__render.value;
|
|
20
|
+
const ${_a.SCRIPTS_VARNAME} = this.__render.scripts;
|
|
21
|
+
const ${_a.RANGE_VARNAME} = this.__render.range;
|
|
22
|
+
const ${_a.ROUTER_VARNAME} = this.__render.router;
|
|
23
|
+
const ${_a.ATTRIBUTE_VARNAME} = this.__render.attribute;
|
|
24
|
+
const ${_a.ELEMENT_VARNAME} = this.__render.element;
|
|
25
|
+
const ${_a.COMPONENT_VARNAME} = this.__render.element.component;
|
|
26
|
+
const ${_a.TARGET_VARNAME} = this.__render.target;
|
|
27
|
+
const ${_a.EVENT_VARNAME} = this.__render.event;
|
|
28
|
+
`;
|
|
29
|
+
this.eventNames.forEach(it => {
|
|
30
|
+
_a.attrNames.push(_a.attrPrefix + 'event-' + it);
|
|
31
|
+
});
|
|
32
|
+
_a.attrNames.push(_a.onRenderedInitAttrName);
|
|
33
|
+
if (typeof window !== 'undefined') {
|
|
34
|
+
_a.WINDOW_EVENTS.forEach(eventName => {
|
|
35
|
+
window === null || window === void 0 ? void 0 : window.addEventListener(eventName, (event) => {
|
|
36
|
+
const targetAttr = `dr-window-event-${eventName}`;
|
|
37
|
+
document.querySelectorAll(`[${targetAttr}]`).forEach(it => {
|
|
38
|
+
var _b;
|
|
39
|
+
const script = it.getAttribute(targetAttr);
|
|
40
|
+
if (script) {
|
|
41
|
+
const obj = it.obj;
|
|
42
|
+
const config = (_b = obj === null || obj === void 0 ? void 0 : obj._DomRender_proxy) === null || _b === void 0 ? void 0 : _b.config;
|
|
43
|
+
ScriptUtils.eval(`${this.bindScript} ${script} `, Object.assign(obj, {
|
|
44
|
+
__render: Object.freeze({
|
|
45
|
+
target: DomRenderFinalProxy.final(event.target),
|
|
46
|
+
element: it,
|
|
47
|
+
event: event,
|
|
48
|
+
range: Range.range,
|
|
49
|
+
scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj)
|
|
50
|
+
// ...EventManager.eventVariables
|
|
51
|
+
})
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// // 순환참조때문에 우선 여기에 뺴놓는다.
|
|
60
|
+
// public DomrenderProxyFinal(obj: any) {
|
|
61
|
+
// (obj as any)._DomRender_isFinal = true;
|
|
62
|
+
// return obj;
|
|
63
|
+
// }
|
|
64
|
+
// 중요 이벤트에 대상이될 Elements를 찾는다.
|
|
65
|
+
findAttrElements(fragment, config) {
|
|
66
|
+
var _b, _c;
|
|
67
|
+
// const datas: {name: string, value: string | null, element: Element}[] = [];
|
|
68
|
+
const elements = new Set();
|
|
69
|
+
const addAttributes = (_c = (_b = config === null || config === void 0 ? void 0 : config.applyEvents) === null || _b === void 0 ? void 0 : _b.map(it => it.attrName)) !== null && _c !== void 0 ? _c : [];
|
|
70
|
+
addAttributes.concat([..._a.attrNames]).forEach(attrName => {
|
|
71
|
+
fragment === null || fragment === void 0 ? void 0 : fragment.querySelectorAll(`[${attrName}]`).forEach(it => {
|
|
72
|
+
elements.add(it);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
return elements;
|
|
76
|
+
}
|
|
77
|
+
// 중요 처음 이벤트 처리
|
|
78
|
+
// eslint-disable-next-line no-undef
|
|
79
|
+
applyEvent(obj, childNodes, config) {
|
|
80
|
+
// console.log('eventManager applyEvent==>', obj, childNodes, config)
|
|
81
|
+
// Node.ELEMENT_NODE = 1
|
|
82
|
+
// event
|
|
83
|
+
// childNodes.forEach(it => {
|
|
84
|
+
// if (it instanceof Element) {
|
|
85
|
+
// it.setAttribute('dr-thieVariableName', 'this')
|
|
86
|
+
// }
|
|
87
|
+
// })
|
|
88
|
+
// 중요 이벤트 걸어줌
|
|
89
|
+
this.eventNames.forEach(it => {
|
|
90
|
+
this.addDrEvents(obj, it, childNodes, config);
|
|
91
|
+
});
|
|
92
|
+
this.addDrEventPram(obj, _a.eventParam, childNodes, config);
|
|
93
|
+
// value
|
|
94
|
+
this.procAttr(childNodes, _a.valueAttrName, (it, attribute) => {
|
|
95
|
+
const script = attribute;
|
|
96
|
+
if (script) {
|
|
97
|
+
const data = ScriptUtils.evalReturn(script, obj);
|
|
98
|
+
if (it.value !== data) {
|
|
99
|
+
it.value = data;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
// normal-attr-map
|
|
104
|
+
this.procAttr(childNodes, _a.normalAttrMapAttrName, (it, attribute) => {
|
|
105
|
+
const map = new Map(JSON.parse(attribute));
|
|
106
|
+
map.forEach((v, k) => {
|
|
107
|
+
const data = ScriptUtils.eval(`const $element = this.element; return ${v} `, Object.assign(obj, {
|
|
108
|
+
__render: Object.freeze({
|
|
109
|
+
element: it,
|
|
110
|
+
attribute: DomUtils.getAttributeToObject(it)
|
|
111
|
+
})
|
|
112
|
+
}));
|
|
113
|
+
// console.log('-------normalAttribute---datadatadata',data)
|
|
114
|
+
if (data === null) {
|
|
115
|
+
it.removeAttribute(k);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
it.setAttribute(k, data);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
// window event
|
|
123
|
+
_a.WINDOW_EVENTS.forEach(it => {
|
|
124
|
+
this.procAttr(childNodes, _a.attrPrefix + 'window-event-' + it, (it, attribute) => {
|
|
125
|
+
it.obj = obj;
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
// value-link event
|
|
129
|
+
_a.linkAttrs.forEach(linkInfo => {
|
|
130
|
+
this.procAttr(childNodes, linkInfo.name, (it, varName) => {
|
|
131
|
+
if (varName) {
|
|
132
|
+
const ownerVariablePathName = it.getAttribute(_a.ownerVariablePathAttrName);
|
|
133
|
+
const mapScript = it.getAttribute(`${linkInfo.name}:map`);
|
|
134
|
+
// const inMapScript = it.getAttribute(`${valueLinkAttrName}:in-map`);
|
|
135
|
+
let bindObj = obj;
|
|
136
|
+
if (ownerVariablePathName) {
|
|
137
|
+
bindObj = ScriptUtils.evalReturn(ownerVariablePathName, obj);
|
|
138
|
+
}
|
|
139
|
+
const getValue = this.getValue(obj, varName, bindObj);
|
|
140
|
+
// TODO: 아래 나중에 리팩토링 필요함
|
|
141
|
+
if (typeof getValue === 'function' && getValue) {
|
|
142
|
+
let setValue = it[linkInfo.property];
|
|
143
|
+
if (mapScript) {
|
|
144
|
+
setValue = ScriptUtils.eval(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze(Object.assign({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj) }, config === null || config === void 0 ? void 0 : config.eventVariables)) }));
|
|
145
|
+
}
|
|
146
|
+
getValue(setValue);
|
|
147
|
+
}
|
|
148
|
+
else if (getValue) {
|
|
149
|
+
let setValue = getValue;
|
|
150
|
+
if (mapScript) {
|
|
151
|
+
setValue = ScriptUtils.eval(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, { __render: Object.freeze(Object.assign({ element: it, target: bindObj, range: Range.range, value: setValue, scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj) }, config === null || config === void 0 ? void 0 : config.eventVariables)) }));
|
|
152
|
+
}
|
|
153
|
+
// console.log('------->',it.value, setValue)
|
|
154
|
+
if (setValue === null) {
|
|
155
|
+
it.removeAttribute(linkInfo.property);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// console.log('-----------',it, setValue)
|
|
159
|
+
it[linkInfo.property] = setValue;
|
|
160
|
+
}
|
|
161
|
+
// 여기서 value가 먼저냐 value-link가 먼저냐 선을 정해야되는거네..-> 라고해서 undefined일때에는 element값을 먼저셋팅해준다.
|
|
162
|
+
}
|
|
163
|
+
else if (getValue === undefined) {
|
|
164
|
+
this.setValue(obj, varName, it[linkInfo.property]);
|
|
165
|
+
}
|
|
166
|
+
it.addEventListener(linkInfo.event, (event) => {
|
|
167
|
+
let value = it[linkInfo.property];
|
|
168
|
+
if (mapScript) {
|
|
169
|
+
value = ScriptUtils.eval(`${this.getBindScript(config)} return ${mapScript}`, Object.assign(bindObj, {
|
|
170
|
+
__render: Object.freeze(Object.assign({ event, element: it, attribute: DomUtils.getAttributeToObject(it), target: event.target, range: Range.range, scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj) }, config === null || config === void 0 ? void 0 : config.eventVariables))
|
|
171
|
+
}));
|
|
172
|
+
}
|
|
173
|
+
if (typeof this.getValue(obj, varName, bindObj) === 'function') {
|
|
174
|
+
this.getValue(obj, varName, bindObj)(value, event);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.setValue(obj, varName, value);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
// on-init event
|
|
184
|
+
this.procAttr(childNodes, _a.onInitAttrName, (it, attribute) => {
|
|
185
|
+
// it.removeAttribute(EventManager.onInitAttrName);
|
|
186
|
+
let script = attribute;
|
|
187
|
+
if (script) {
|
|
188
|
+
script = 'return ' + script;
|
|
189
|
+
}
|
|
190
|
+
if (script) {
|
|
191
|
+
ScriptUtils.eval(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {
|
|
192
|
+
__render: Object.freeze(Object.assign({ element: it, attribute: DomUtils.getAttributeToObject(it) }, config === null || config === void 0 ? void 0 : config.eventVariables))
|
|
193
|
+
}));
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
this.onRenderedEvent(obj, childNodes, config);
|
|
197
|
+
this.changeVar(obj, childNodes, undefined, config);
|
|
198
|
+
// console.log('eventManager-applyEvent-->', config?.applyEvents)
|
|
199
|
+
const elements = Array.from(childNodes).filter(it => it.nodeType === 1).map(it => it);
|
|
200
|
+
elements.forEach(it => {
|
|
201
|
+
var _b;
|
|
202
|
+
(_b = config === null || config === void 0 ? void 0 : config.applyEvents) === null || _b === void 0 ? void 0 : _b.filter(ta => it.getAttribute(ta.attrName) !== null).forEach(ta => ta.callBack(it, it.getAttribute(ta.attrName), obj));
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// RawSet에서 replaceBody이후에 호출
|
|
206
|
+
onRenderedEvent(obj, childNodes, config) {
|
|
207
|
+
// console.log('--------onRenderedEvent', obj, childNodes);
|
|
208
|
+
// console.log(document.querySelectorAll(`[${EventManager.onRenderedInitAttrName}]`))
|
|
209
|
+
this.procAttr(childNodes, _a.onRenderedInitAttrName, (it, attribute) => {
|
|
210
|
+
// it.removeAttribute(EventManager.onRenderedInitAttrName);
|
|
211
|
+
if (!it.isConnected) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
let script = attribute;
|
|
215
|
+
if (script) {
|
|
216
|
+
script = 'return ' + script;
|
|
217
|
+
}
|
|
218
|
+
// console.log('onRendered!!')
|
|
219
|
+
if (script) {
|
|
220
|
+
ScriptUtils.eval(`${this.getBindScript(config)}; ${script} `, Object.assign(obj, {
|
|
221
|
+
__render: Object.freeze(Object.assign({ element: it, attribute: DomUtils.getAttributeToObject(it) }, config === null || config === void 0 ? void 0 : config.eventVariables))
|
|
222
|
+
}));
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
// eslint-disable-next-line no-undef
|
|
227
|
+
changeVar(obj, elements, varName, config) {
|
|
228
|
+
// style
|
|
229
|
+
this.procAttr(elements, _a.styleAttrName, (it, attribute) => {
|
|
230
|
+
let script = attribute;
|
|
231
|
+
if (script) {
|
|
232
|
+
script = 'return ' + script;
|
|
233
|
+
}
|
|
234
|
+
if (_a.isUsingThisVar(script, varName) || varName === undefined) {
|
|
235
|
+
const data = ScriptUtils.eval(`const $element = this.__render.element; ${script} `, Object.assign(obj, {
|
|
236
|
+
__render: Object.freeze({
|
|
237
|
+
element: it,
|
|
238
|
+
attribute: DomUtils.getAttributeToObject(it)
|
|
239
|
+
})
|
|
240
|
+
}));
|
|
241
|
+
if (typeof data === 'string') {
|
|
242
|
+
it.setAttribute('style', data);
|
|
243
|
+
}
|
|
244
|
+
else if (Array.isArray(data)) {
|
|
245
|
+
it.setAttribute('style', data.join(';'));
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
for (const [key, value] of Object.entries(data)) {
|
|
249
|
+
if (it instanceof HTMLElement) {
|
|
250
|
+
it.style[key] = String(value);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
// class
|
|
257
|
+
this.procAttr(elements, _a.classAttrName, (it, attribute) => {
|
|
258
|
+
let script = attribute;
|
|
259
|
+
if (script) {
|
|
260
|
+
script = 'return ' + script;
|
|
261
|
+
}
|
|
262
|
+
if (_a.isUsingThisVar(script, varName) || varName === undefined) {
|
|
263
|
+
const data = ScriptUtils.eval(`const $element = this.element; ${script} `, Object.assign(obj, {
|
|
264
|
+
__render: Object.freeze({
|
|
265
|
+
element: it,
|
|
266
|
+
attribute: DomUtils.getAttributeToObject(it)
|
|
267
|
+
})
|
|
268
|
+
}));
|
|
269
|
+
if (typeof data === 'string') {
|
|
270
|
+
it.setAttribute('class', data);
|
|
271
|
+
}
|
|
272
|
+
else if (Array.isArray(data)) {
|
|
273
|
+
it.setAttribute('class', data.join(' '));
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
for (const [key, value] of Object.entries(data)) {
|
|
277
|
+
if (it instanceof HTMLElement) {
|
|
278
|
+
if (value) {
|
|
279
|
+
it.classList.add(key);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
it.classList.remove(key);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
// this.onRenderedEvent(obj,elements, config);
|
|
290
|
+
}
|
|
291
|
+
addDrEvents(obj, eventName, elements, config) {
|
|
292
|
+
// console.log('-------?', config?.router)
|
|
293
|
+
const attr = _a.attrPrefix + 'event-' + eventName;
|
|
294
|
+
this.procAttr(elements, attr, (it, attribute) => {
|
|
295
|
+
const script = attribute;
|
|
296
|
+
const hasDispatch = it.hasAttribute(`${attr}:dispatch`);
|
|
297
|
+
// console.log('hasDispatch',hasDispatch, attr, it);
|
|
298
|
+
it.addEventListener(eventName, (event) => {
|
|
299
|
+
let filter = true;
|
|
300
|
+
const filterScript = it.getAttribute(`${attr}:filter`);
|
|
301
|
+
const thisTarget = Object.assign(obj, {
|
|
302
|
+
__render: Object.freeze(Object.assign({ event, element: it, target: event.target, range: Range.range, attribute: DomUtils.getAttributeToObject(it), router: config === null || config === void 0 ? void 0 : config.router, scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj) }, config === null || config === void 0 ? void 0 : config.eventVariables))
|
|
303
|
+
});
|
|
304
|
+
if (filterScript) {
|
|
305
|
+
filter = ScriptUtils.eval(`${this.getBindScript(config)} return ${filterScript}`, thisTarget);
|
|
306
|
+
}
|
|
307
|
+
if (filter) {
|
|
308
|
+
ScriptUtils.eval(`${this.getBindScript(config)} ${script} `, thisTarget);
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
if (hasDispatch) {
|
|
312
|
+
it.dispatchEvent(new Event(eventName));
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
// eslint-disable-next-line no-undef
|
|
317
|
+
addDrEventPram(obj, attr, elements, config) {
|
|
318
|
+
this.procAttr(elements, attr, (it, attribute, attributes) => {
|
|
319
|
+
const bind = attributes[attr + ':bind'];
|
|
320
|
+
if (bind) {
|
|
321
|
+
const script = attribute;
|
|
322
|
+
const params = {};
|
|
323
|
+
const prefix = attr + ':';
|
|
324
|
+
Object.entries(attributes).filter(([k, v]) => k.startsWith(prefix)).forEach(([k, v]) => {
|
|
325
|
+
params[k.slice(prefix.length)] = v;
|
|
326
|
+
});
|
|
327
|
+
bind.split(',').forEach(eventName => {
|
|
328
|
+
it.addEventListener(eventName.trim(), (event) => {
|
|
329
|
+
ScriptUtils.eval(`const $params = this.__render.params; ${this.getBindScript(config)} ${script} `, Object.assign(obj, {
|
|
330
|
+
__render: Object.freeze(Object.assign({ event, element: it, attribute: DomUtils.getAttributeToObject(it), target: event.target, range: Range.range, scripts: _a.setBindProperty(config === null || config === void 0 ? void 0 : config.scripts, obj), params }, config === null || config === void 0 ? void 0 : config.eventVariables))
|
|
331
|
+
}));
|
|
332
|
+
});
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
// eslint-disable-next-line no-undef
|
|
338
|
+
procAttr(elements = new Set(), attrName, callBack) {
|
|
339
|
+
const sets = new Set();
|
|
340
|
+
elements.forEach(it => {
|
|
341
|
+
// console.log('--->type', it, it.nodeType)
|
|
342
|
+
if (!it) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
// Node.ELEMENT_NODE = 1
|
|
346
|
+
if (it.nodeType === 1) {
|
|
347
|
+
const e = it;
|
|
348
|
+
sets.add(e);
|
|
349
|
+
e.querySelectorAll(`[${attrName}]`).forEach(it => {
|
|
350
|
+
sets.add(it);
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
// console.log('---setr',sets);
|
|
355
|
+
sets.forEach(it => {
|
|
356
|
+
const attr = it.getAttribute(attrName);
|
|
357
|
+
const attrs = DomUtils.getAttributeToObject(it);
|
|
358
|
+
if (attr) {
|
|
359
|
+
callBack(it, attr, attrs);
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
getValue(obj, name, bindObj) {
|
|
364
|
+
// let r = obj[name];
|
|
365
|
+
let r = ScriptUtils.evalReturn(name, obj);
|
|
366
|
+
if (typeof r === 'function') {
|
|
367
|
+
r = r.bind(bindObj !== null && bindObj !== void 0 ? bindObj : obj);
|
|
368
|
+
}
|
|
369
|
+
return r;
|
|
370
|
+
}
|
|
371
|
+
setValue(obj, name, value) {
|
|
372
|
+
name = name.replaceAll('this.', 'this.this.');
|
|
373
|
+
ScriptUtils.eval(`${name} = this.value;`, {
|
|
374
|
+
this: obj,
|
|
375
|
+
value: value
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
static isUsingThisVar(raws, varName) {
|
|
379
|
+
// console.log('isUsingV', raws)
|
|
380
|
+
// console.log('isUsingV', raws, varName, ScriptUtils.getVariablePaths(raws ?? ''))
|
|
381
|
+
if (varName && raws) {
|
|
382
|
+
if (varName.startsWith('this.')) {
|
|
383
|
+
varName = varName.replace(/this\./, '');
|
|
384
|
+
}
|
|
385
|
+
_a.VARNAMES.forEach(it => {
|
|
386
|
+
// raws = raws!.replace(RegExp(it.replace('$', '\\$'), 'g'), `this?.___${it}`);
|
|
387
|
+
raws = raws.replace(RegExp(it.replace('$', '\\$'), 'g'), `this.___${it}`);
|
|
388
|
+
});
|
|
389
|
+
const variablePaths = ScriptUtils.getVariablePaths(raws !== null && raws !== void 0 ? raws : '');
|
|
390
|
+
return variablePaths.has(varName);
|
|
391
|
+
}
|
|
392
|
+
return false;
|
|
393
|
+
}
|
|
394
|
+
static setBindProperty(scripts, obj) {
|
|
395
|
+
if (scripts) {
|
|
396
|
+
// const newScripts = Object.assign({}, scripts)
|
|
397
|
+
const newScripts = Object.assign({}, scripts);
|
|
398
|
+
for (const [key, value] of Object.entries(newScripts)) {
|
|
399
|
+
if (typeof value === 'function') {
|
|
400
|
+
newScripts[key] = value.bind(obj);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return newScripts;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
getBindScript(config) {
|
|
407
|
+
if (config === null || config === void 0 ? void 0 : config.eventVariables) {
|
|
408
|
+
const bindScript = Object.entries(config.eventVariables).filter(([key, value]) => !this.bindScript.includes(`const ${key}`)).map(([key, value]) => {
|
|
409
|
+
return `const ${key} = this.__render.${key};`;
|
|
410
|
+
}).join(';');
|
|
411
|
+
return this.bindScript + '' + bindScript;
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
return this.bindScript;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
_a = EventManager;
|
|
419
|
+
EventManager.attrPrefix = 'dr-';
|
|
420
|
+
EventManager.ownerVariablePathAttrName = _a.attrPrefix + 'owner-variable-path';
|
|
421
|
+
EventManager.eventParam = _a.attrPrefix + 'event';
|
|
422
|
+
EventManager.onInitAttrName = _a.attrPrefix + 'on-init';
|
|
423
|
+
EventManager.valueAttrName = _a.attrPrefix + 'value';
|
|
424
|
+
EventManager.linkAttrs = [
|
|
425
|
+
{ name: _a.attrPrefix + 'value-link', property: 'value', event: 'input' },
|
|
426
|
+
{ name: _a.attrPrefix + 'hidden-link', property: 'value', event: 'input' },
|
|
427
|
+
{ name: _a.attrPrefix + 'required-link', property: 'value', event: 'input' },
|
|
428
|
+
{ name: _a.attrPrefix + 'checked-link', property: 'checked', event: 'change' },
|
|
429
|
+
{ name: _a.attrPrefix + 'open-link', property: 'open', event: 'toggle' },
|
|
430
|
+
];
|
|
431
|
+
EventManager.linkTargetMapAttrName = _a.attrPrefix + 'link-variables';
|
|
432
|
+
EventManager.onRenderedInitAttrName = _a.attrPrefix + 'on-rendered-init';
|
|
433
|
+
EventManager.attrAttrName = _a.attrPrefix + 'attr';
|
|
434
|
+
EventManager.normalAttrMapAttrName = _a.attrPrefix + 'normal-attr-map';
|
|
435
|
+
EventManager.styleAttrName = _a.attrPrefix + 'style';
|
|
436
|
+
EventManager.classAttrName = _a.attrPrefix + 'class';
|
|
437
|
+
EventManager.VALUE_VARNAME = '$value';
|
|
438
|
+
EventManager.SCRIPTS_VARNAME = '$scripts';
|
|
439
|
+
EventManager.FAG_VARNAME = '$fag';
|
|
440
|
+
EventManager.RAWSET_VARNAME = '$rawSet';
|
|
441
|
+
EventManager.RENDER_VARNAME = '$render';
|
|
442
|
+
EventManager.NEAR_THIS_VARNAME = '$nearThis';
|
|
443
|
+
EventManager.PARENT_THIS_VARNAME = '$parentThis';
|
|
444
|
+
EventManager.ROOT_OBJECT_VARNAME = '$rootObject';
|
|
445
|
+
EventManager.SCRIPT_UTILS_VARNAME = '$scriptUtils';
|
|
446
|
+
EventManager.RANGE_VARNAME = '$range';
|
|
447
|
+
EventManager.ROUTER_VARNAME = '$router';
|
|
448
|
+
EventManager.INNER_HTML_VARNAME = '$innerHTML';
|
|
449
|
+
EventManager.ELEMENT_VARNAME = '$element';
|
|
450
|
+
EventManager.TARGET_VARNAME = '$target';
|
|
451
|
+
EventManager.EVENT_VARNAME = '$event';
|
|
452
|
+
EventManager.COMPONENT_VARNAME = '$component';
|
|
453
|
+
EventManager.INNERHTML_VARNAME = '$innerHTML';
|
|
454
|
+
EventManager.ATTRIBUTE_VARNAME = '$attribute';
|
|
455
|
+
EventManager.CREATOR_META_DATA_VARNAME = '$creatorMetaData';
|
|
456
|
+
EventManager.PARENT_THIS_PATH_VARNAME = '$parentPath';
|
|
457
|
+
EventManager.CURRENT_THIS_VARNAME = '$currentThis';
|
|
458
|
+
EventManager.CURRENT_THIS_PATH_VARNAME = '$currentThisPath';
|
|
459
|
+
EventManager.NEAR_THIS_PATH_VARNAME = '$nearThisPath';
|
|
460
|
+
EventManager.VARNAMES = [_a.SCRIPTS_VARNAME, _a.FAG_VARNAME, _a.RAWSET_VARNAME, _a.RANGE_VARNAME, _a.ROUTER_VARNAME, _a.ELEMENT_VARNAME, _a.TARGET_VARNAME, _a.EVENT_VARNAME, _a.COMPONENT_VARNAME, _a.INNERHTML_VARNAME, _a.ATTRIBUTE_VARNAME, _a.ATTRIBUTE_VARNAME, _a.CREATOR_META_DATA_VARNAME, _a.PARENT_THIS_PATH_VARNAME, _a.PARENT_THIS_VARNAME, _a.attrAttrName];
|
|
461
|
+
EventManager.WINDOW_EVENT_POPSTATE = 'popstate';
|
|
462
|
+
EventManager.WINDOW_EVENT_RESIZE = 'resize';
|
|
463
|
+
EventManager.WINDOW_EVENTS = [_a.WINDOW_EVENT_POPSTATE, _a.WINDOW_EVENT_RESIZE];
|
|
464
|
+
EventManager.attrNames = [
|
|
465
|
+
_a.valueAttrName,
|
|
466
|
+
_a.attrAttrName,
|
|
467
|
+
_a.normalAttrMapAttrName,
|
|
468
|
+
_a.styleAttrName,
|
|
469
|
+
_a.classAttrName,
|
|
470
|
+
_a.attrPrefix + 'window-event-' + _a.WINDOW_EVENT_POPSTATE,
|
|
471
|
+
_a.attrPrefix + 'window-event-' + _a.WINDOW_EVENT_RESIZE,
|
|
472
|
+
_a.onInitAttrName,
|
|
473
|
+
..._a.linkAttrs.map(it => it.name),
|
|
474
|
+
_a.eventParam
|
|
475
|
+
];
|
|
476
|
+
export const eventManager = new EventManager();
|
|
477
|
+
//# sourceMappingURL=EventManager.js.map
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare class RangeResult implements IteratorResult<number> {
|
|
2
|
+
done: boolean;
|
|
3
|
+
value: number;
|
|
4
|
+
constructor(value: number | undefined, done: boolean);
|
|
5
|
+
}
|
|
6
|
+
export declare class RangeIterator implements Iterator<number> {
|
|
7
|
+
private _first;
|
|
8
|
+
private _current;
|
|
9
|
+
private _last;
|
|
10
|
+
private _step;
|
|
11
|
+
constructor(first: number, last: number, step: number);
|
|
12
|
+
next(value?: any): IteratorResult<number>;
|
|
13
|
+
}
|
|
14
|
+
export declare class Range implements Iterable<number> {
|
|
15
|
+
first: number;
|
|
16
|
+
last: number;
|
|
17
|
+
step: number;
|
|
18
|
+
readonly isRange = true;
|
|
19
|
+
constructor(first: number, last: number, step?: number);
|
|
20
|
+
[Symbol.iterator](): Iterator<number>;
|
|
21
|
+
map<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[];
|
|
22
|
+
static range(first: number | string, last?: number, step?: number): Range;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Range.d.ts.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// within rangeResult.ts
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
export class RangeResult {
|
|
4
|
+
constructor(value, done) {
|
|
5
|
+
this.done = done;
|
|
6
|
+
this.value = value !== null && value !== void 0 ? value : 0;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class RangeIterator {
|
|
10
|
+
constructor(first, last, step) {
|
|
11
|
+
this._current = this._first = first;
|
|
12
|
+
this._last = last;
|
|
13
|
+
this._step = step;
|
|
14
|
+
}
|
|
15
|
+
next(value) {
|
|
16
|
+
let r;
|
|
17
|
+
if (this._first < this._last && this._current < this._last) {
|
|
18
|
+
r = new RangeResult(this._current, false);
|
|
19
|
+
this._current += this._step;
|
|
20
|
+
}
|
|
21
|
+
else if (this._first < this._last && this._current === this._last) {
|
|
22
|
+
r = new RangeResult(this._current, false);
|
|
23
|
+
this._current += this._step;
|
|
24
|
+
}
|
|
25
|
+
else if (this._first > this._last && this._current > this._last) {
|
|
26
|
+
r = new RangeResult(this._current, false);
|
|
27
|
+
this._current -= this._step;
|
|
28
|
+
}
|
|
29
|
+
else if (this._first > this._last && this._current === this._last) {
|
|
30
|
+
r = new RangeResult(this._current, false);
|
|
31
|
+
this._current -= this._step;
|
|
32
|
+
}
|
|
33
|
+
else if (this._current === this._last) {
|
|
34
|
+
r = new RangeResult(this._current, false);
|
|
35
|
+
this._current -= this._step;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
r = new RangeResult(undefined, true);
|
|
39
|
+
}
|
|
40
|
+
return r;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class Range {
|
|
44
|
+
constructor(first, last, step = 1) {
|
|
45
|
+
this.first = first;
|
|
46
|
+
this.last = last;
|
|
47
|
+
this.step = step;
|
|
48
|
+
this.isRange = true;
|
|
49
|
+
}
|
|
50
|
+
[Symbol.iterator]() {
|
|
51
|
+
return new RangeIterator(this.first, this.last, this.step);
|
|
52
|
+
}
|
|
53
|
+
map(callbackfn, thisArg) {
|
|
54
|
+
return Array.from(this).map(callbackfn);
|
|
55
|
+
}
|
|
56
|
+
static range(first, last, step = 1) {
|
|
57
|
+
if (typeof first === 'number' && last === undefined) {
|
|
58
|
+
return new Range(0, first, step);
|
|
59
|
+
}
|
|
60
|
+
else if (typeof first === 'string') {
|
|
61
|
+
const [_first, _last = '0'] = first.split('..');
|
|
62
|
+
const [__last, _step = '1'] = _last.split(',');
|
|
63
|
+
return new Range(Number(_first.trim()), Number(__last.trim()), Number(_step.trim()));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return new Range(first, last !== null && last !== void 0 ? last : 0, step);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=Range.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RawSet } from '../rawsets/RawSet';
|
|
2
|
+
export type OtherData = {
|
|
3
|
+
rawSet?: RawSet;
|
|
4
|
+
};
|
|
5
|
+
export interface OnChangeAttrRender {
|
|
6
|
+
onChangeAttrRender(name: string, value: any, other: OtherData): void;
|
|
7
|
+
}
|
|
8
|
+
export declare const isOnChangeAttrRender: (obj: any) => obj is OnChangeAttrRender;
|
|
9
|
+
//# sourceMappingURL=OnChangeAttrRender.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Render } from '../rawsets/Render';
|
|
2
|
+
export type OnCreateRenderDataParams = {
|
|
3
|
+
rootParent: any;
|
|
4
|
+
render?: Render;
|
|
5
|
+
};
|
|
6
|
+
export interface OnCreateRenderData {
|
|
7
|
+
onCreateRenderData(data: OnCreateRenderDataParams): void;
|
|
8
|
+
}
|
|
9
|
+
export declare const isOnCreateRenderData: (obj: any) => obj is OnCreateRenderData;
|
|
10
|
+
//# sourceMappingURL=OnCreateRenderData.d.ts.map
|