efront 4.5.0 → 4.5.3

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.
@@ -104,6 +104,15 @@ var constructors = {
104
104
  input(ipt);
105
105
  return ipt;
106
106
  },
107
+ generator(elem) {
108
+ var { data, field } = elem;
109
+ elem.innerHTML = `<a @click="gen()" -if="!data[field.key]">${field.holder || '单击生成'}</a><span -else -bind="data[field.key]"></span>`;
110
+ render(elem, {
111
+ data, field, a: button, async gen() {
112
+ await field.options(data);
113
+ }
114
+ });
115
+ },
107
116
  date() {
108
117
  var elem = document.createElement("input");
109
118
  elem.type = "date";
@@ -192,6 +201,7 @@ var constructors = {
192
201
  }
193
202
  };
194
203
  constructors.price = constructors.money = constructors.number;
204
+ constructors.gen = constructors.generator;
195
205
  var readonly_types = {
196
206
  "date"({ field }, data) {
197
207
  var string = data[field.key];
@@ -199,9 +209,11 @@ var readonly_types = {
199
209
  },
200
210
  "url"({ field }, data) {
201
211
  var href = data[field.key];
202
- var e = anchor2(href, href);
203
- e.target = "_blank";
204
- return e;
212
+ if (href) {
213
+ var e = anchor2(field.holder || href, href);
214
+ e.target = "_blank";
215
+ return e;
216
+ }
205
217
  },
206
218
  "size"({ field }, data) {
207
219
  var f = data[field.key];
@@ -212,6 +224,10 @@ var readonly_types = {
212
224
  t.innerHTML = seek(data, a.field.key);
213
225
  return t;
214
226
  },
227
+ text(e) {
228
+ var { data, field } = e;
229
+ e.innerHTML = data[field.key] ?? '';
230
+ },
215
231
  swap(e, data) {
216
232
  var { field } = e;
217
233
  var v = data[field.key];
@@ -227,6 +243,7 @@ var readonly_types = {
227
243
  },
228
244
  };
229
245
  readonly_types.anchor = readonly_types.url;
246
+ readonly_types.gen = readonly_types.generator = readonly_types.text;
230
247
  var createOptionsMap = function (options) {
231
248
  if (!isObject(options[0])) return options;
232
249
  var map = Object.create(null);
@@ -233,8 +233,10 @@ function main(elem) {
233
233
  }
234
234
  if (/^[xh]/i.test(direction)) {
235
235
  bar = scrollbar_x(elem);
236
+ bar.setAttribute('x', '');
236
237
  } else {
237
238
  bar = scrollbar_y(elem);
239
+ bar.setAttribute('y', '');
238
240
  }
239
241
  if (target) bar.bindTarget(target);
240
242
  return bar;
@@ -103,12 +103,12 @@ var resize2 = function () {
103
103
  else if (isType(c, "foot")) foot = c;
104
104
  }
105
105
  if (head && body) {
106
- var height = head.offsetHeight;
106
+ var height = head.offsetHeight + head.offsetTop;
107
107
  css(head, {
108
108
  marginBottom: fromOffset(-height),
109
109
  })
110
110
  css(body, {
111
- paddingTop: fromOffset(height)
111
+ paddingTop: fromOffset(height - body.clientTop)
112
112
  });
113
113
  }
114
114
  if (foot && body) {
@@ -120,11 +120,13 @@ var resize2 = function () {
120
120
  marginTop: fromOffset(-height)
121
121
  })
122
122
  }
123
- if (body.scrollHeight + body.offsetTop > this.clientHeight) {
124
- css(body, { height: fromOffset(this.clientHeight) });
125
- }
126
- else {
127
- css(body, { height: '' });
123
+ if (body) {
124
+ if (body.scrollHeight + body.offsetTop > this.clientHeight) {
125
+ css(body, { height: fromOffset(this.clientHeight) });
126
+ }
127
+ else {
128
+ css(body, { height: '' });
129
+ }
128
130
  }
129
131
  };
130
132
  function view(element) {
@@ -142,6 +144,7 @@ function view(element) {
142
144
  if (w.resizable) resize.on(w);
143
145
  }
144
146
  resizingList.set(w, resize2);
147
+ w.renders = [resize2];
145
148
  w.reshape = lazy(resize2);
146
149
  onmounted(w, w.reshape);
147
150
  return w;
@@ -124,7 +124,6 @@ body>& {
124
124
  >.foot,
125
125
  >[foot] {
126
126
  .button {
127
- min-width: 60px;
128
127
  padding: 0 20px;
129
128
  margin-left: 10px;
130
129
  vertical-align: top;
@@ -132,6 +131,7 @@ body>& {
132
131
  }
133
132
 
134
133
  a.button {
134
+ display: inline-block;
135
135
  padding: 0;
136
136
  }
137
137
  }
@@ -3,7 +3,7 @@ function watcher({ changes }) {
3
3
  for (var k in changes) {
4
4
  if (k in watches) {
5
5
  var { current, previous } = changes[k];
6
- watches[k](current, previous);
6
+ watches[k].call(this, current, previous);
7
7
  }
8
8
  }
9
9
  }
@@ -12,7 +12,6 @@
12
12
 
13
13
  [body] {
14
14
  border-top: 42px solid transparent;
15
- margin-top: -82px;
16
15
  padding-top: 40px;
17
16
  padding-bottom: 0 !important;
18
17
  border-bottom: 46px solid transparent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.5.0",
3
+ "version": "4.5.3",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {