@web-atoms/web-controls 2.1.77 → 2.1.81

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.
@@ -0,0 +1,64 @@
1
+ import XNode from "@web-atoms/core/dist/core/XNode";
2
+ import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
3
+ export declare type Match<T> = (text: string) => (item: T) => boolean;
4
+ export declare type IAskSuggestion<T> = (items: T[], itemRenderer: (item: T) => XNode, match: Match<T>) => any;
5
+ export declare const MatchTrue: (...a: any[]) => boolean;
6
+ export declare const MatchFalse: (...a: any[]) => boolean;
7
+ export declare const ArrowToString: (item: any) => any;
8
+ export declare const MatchCaseInsensitive: (textField?: (item: any) => string) => (s: string) => (item: any) => boolean;
9
+ export declare const SameObjectValue: (item: any) => any;
10
+ /**
11
+ * Asks user for selecting item from given suggestions
12
+ * @param items items to display
13
+ * @param itemRenderer render function
14
+ * @param match search match
15
+ * @returns selected item
16
+ */
17
+ export declare function askSuggestion<T>(items: T[], itemRenderer: (item: T) => XNode, match: Match<T>): Promise<T>;
18
+ export interface ISelectorCheckBox {
19
+ text?: string;
20
+ iconSelected?: string;
21
+ icon?: string;
22
+ [key: string]: any;
23
+ }
24
+ export declare function SelectorCheckBox({ text, icon, iconSelected, ...a }: ISelectorCheckBox, ...nodes: XNode[]): any;
25
+ export interface ISelectAll extends ISelectorCheckBox {
26
+ items: any[];
27
+ selectedItems: any[];
28
+ }
29
+ export declare function SelectAll({ text, icon, iconSelected, ...a }: ISelectAll, ...nodes: XNode[]): any;
30
+ export default class AtomRepeater extends AtomControl {
31
+ "event-item-click"?: (e: CustomEvent) => void;
32
+ "event-item-select"?: (e: CustomEvent) => void;
33
+ "event-item-deselect"?: (e: CustomEvent) => void;
34
+ allowMultipleSelection: boolean;
35
+ selectedItems: any[];
36
+ itemsPresenter: any;
37
+ items: any[];
38
+ visibilityFilter: (item: any) => boolean;
39
+ itemRenderer: (item: any) => XNode;
40
+ valuePath: (a: any) => any;
41
+ get value(): any;
42
+ set value(v: any);
43
+ get selectedItem(): any;
44
+ set selectedItem(value: any);
45
+ private initialValue;
46
+ private itemsDisposable;
47
+ private selectedItemsDisposable;
48
+ onPropertyChanged(name: string): void;
49
+ forEach<T>(action: (item: T, element: HTMLElement) => void, container?: HTMLElement): void;
50
+ any(fx?: (item: any) => boolean, itemSelector?: string, container?: HTMLElement): Generator<{
51
+ item: any;
52
+ element: HTMLElement;
53
+ }, void, unknown>;
54
+ all(container?: HTMLElement): Generator<{
55
+ item: any;
56
+ element: HTMLElement;
57
+ }, void, unknown>;
58
+ updateItems(container?: HTMLElement): void;
59
+ protected updateClasses(): void;
60
+ protected preCreate(): void;
61
+ protected onElementClick(e: MouseEvent): void;
62
+ protected updateVisibility(): void;
63
+ }
64
+ //# sourceMappingURL=AtomRepeater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomRepeater.d.ts","sourceRoot":"","sources":["../../src/basic/AtomRepeater.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,432 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __rest = (this && this.__rest) || function (s, e) {
11
+ var t = {};
12
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
13
+ t[p] = s[p];
14
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
15
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
16
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
17
+ t[p[i]] = s[p[i]];
18
+ }
19
+ return t;
20
+ };
21
+ (function (factory) {
22
+ if (typeof module === "object" && typeof module.exports === "object") {
23
+ var v = factory(require, exports);
24
+ if (v !== undefined) module.exports = v;
25
+ }
26
+ else if (typeof define === "function" && define.amd) {
27
+ define(["require", "exports", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/web/services/PopupService", "@web-atoms/core/dist/web/styles/CSS"], factory);
28
+ }
29
+ })(function (require, exports) {
30
+ "use strict";
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.SelectAll = exports.SelectorCheckBox = exports.askSuggestion = exports.SameObjectValue = exports.MatchCaseInsensitive = exports.ArrowToString = exports.MatchFalse = exports.MatchTrue = void 0;
33
+ const AtomBinder_1 = require("@web-atoms/core/dist/core/AtomBinder");
34
+ const Bind_1 = require("@web-atoms/core/dist/core/Bind");
35
+ const BindableProperty_1 = require("@web-atoms/core/dist/core/BindableProperty");
36
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
37
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
38
+ const AtomControl_1 = require("@web-atoms/core/dist/web/controls/AtomControl");
39
+ const PopupService_1 = require("@web-atoms/core/dist/web/services/PopupService");
40
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
41
+ const popupCSS = (0, CSS_1.default)((0, StyleRule_1.default)()
42
+ .height(500)
43
+ .width(300)
44
+ .verticalFlexLayout({ alignItems: "stretch" })
45
+ .child((0, StyleRule_1.default)(".items")
46
+ .flexStretch()
47
+ .overflow("auto")
48
+ .child((0, StyleRule_1.default)(".presenter")
49
+ .child((0, StyleRule_1.default)("*")
50
+ .padding(5)))));
51
+ const MatchTrue = (...a) => true;
52
+ exports.MatchTrue = MatchTrue;
53
+ const MatchFalse = (...a) => false;
54
+ exports.MatchFalse = MatchFalse;
55
+ const ArrowToString = (item) => { var _a, _b; return (_b = (_a = item.label) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : item.toString(); };
56
+ exports.ArrowToString = ArrowToString;
57
+ const MatchCaseInsensitive = (textField) => {
58
+ textField !== null && textField !== void 0 ? textField : (textField = exports.ArrowToString);
59
+ return (s) => {
60
+ s = s.toLowerCase();
61
+ return (item) => { var _a, _b; return (_b = (_a = textField(item)) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === null || _b === void 0 ? void 0 : _b.includes(s); };
62
+ };
63
+ };
64
+ exports.MatchCaseInsensitive = MatchCaseInsensitive;
65
+ const SameObjectValue = (item) => item;
66
+ exports.SameObjectValue = SameObjectValue;
67
+ /**
68
+ * Asks user for selecting item from given suggestions
69
+ * @param items items to display
70
+ * @param itemRenderer render function
71
+ * @param match search match
72
+ * @returns selected item
73
+ */
74
+ function askSuggestion(items, itemRenderer, match) {
75
+ class Suggestions extends PopupService_1.PopupWindow {
76
+ create() {
77
+ this.render(XNode_1.default.create("div", { class: popupCSS },
78
+ XNode_1.default.create("input", { type: "search", value: Bind_1.default.twoWaysImmediate(() => this.search), autofocus: true }),
79
+ XNode_1.default.create("div", { class: "items" },
80
+ XNode_1.default.create(AtomRepeater, { class: "presenter", itemRenderer: itemRenderer, visibilityFilter: Bind_1.default.oneWay(() => match(this.search)), eventItemClick: (e) => {
81
+ this.viewModel.close(e.detail);
82
+ }, items: items }))));
83
+ }
84
+ }
85
+ __decorate([
86
+ BindableProperty_1.BindableProperty,
87
+ __metadata("design:type", String)
88
+ ], Suggestions.prototype, "search", void 0);
89
+ return Suggestions.showModal();
90
+ }
91
+ exports.askSuggestion = askSuggestion;
92
+ (0, CSS_1.default)((0, StyleRule_1.default)()
93
+ .nested((0, StyleRule_1.default)("i[data-click-event]")
94
+ .padding(5)), "*[data-selected-item]");
95
+ (0, CSS_1.default)((0, StyleRule_1.default)()
96
+ .nested((0, StyleRule_1.default)("i[data-click-event=item-select]")
97
+ .padding(5))
98
+ .displayNone(" i[data-click-event=item-select]"), "*[data-selected-item=true]");
99
+ (0, CSS_1.default)((0, StyleRule_1.default)()
100
+ .displayNone(" i[data-click-event=item-deselect]"), "*[data-selected-item=false]");
101
+ function SelectorCheckBox(_a, ...nodes) {
102
+ var { text, icon = "far fa-square", iconSelected = "fas fa-check-square" } = _a, a = __rest(_a, ["text", "icon", "iconSelected"]);
103
+ if (text) {
104
+ return XNode_1.default.create("label", null,
105
+ XNode_1.default.create("i", { class: icon, "data-click-event": "item-select" }),
106
+ XNode_1.default.create("i", { class: iconSelected, "data-click-event": "item-deselect" }),
107
+ XNode_1.default.create("span", { text: text }),
108
+ ...nodes);
109
+ }
110
+ return XNode_1.default.create("label", null,
111
+ XNode_1.default.create("i", { class: icon, "data-click-event": "item-select" }),
112
+ XNode_1.default.create("i", { class: iconSelected, "data-click-event": "item-deselect" }),
113
+ ...nodes);
114
+ }
115
+ exports.SelectorCheckBox = SelectorCheckBox;
116
+ (0, CSS_1.default)((0, StyleRule_1.default)()
117
+ .nested((0, StyleRule_1.default)("i[data-ui-type]")
118
+ .padding(5))
119
+ .displayNone("[data-is-selected=true] i[data-ui-type=item-select]")
120
+ .displayNone("[data-is-selected=false] i[data-ui-type=item-deselect]"), "*[data-select-all=select-all]");
121
+ class SelectAllControl extends AtomControl_1.AtomControl {
122
+ preCreate() {
123
+ this.element.dataset.selectAll = "select-all";
124
+ this.render(XNode_1.default.create(SelectAllControl, { "data-is-selected": Bind_1.default.oneWay(() => this.items.length > 0
125
+ && this.items.length === this.selectedItems.length) }));
126
+ this.bindEvent(this.element, "click", () => {
127
+ const si = this.selectedItems;
128
+ const items = this.items;
129
+ if (!si) {
130
+ return;
131
+ }
132
+ if (!items) {
133
+ return;
134
+ }
135
+ if (items.length === 0) {
136
+ return;
137
+ }
138
+ if (items.length === si.length) {
139
+ si.clear();
140
+ }
141
+ else {
142
+ si.addAll(items);
143
+ }
144
+ });
145
+ }
146
+ }
147
+ __decorate([
148
+ BindableProperty_1.BindableProperty,
149
+ __metadata("design:type", Array)
150
+ ], SelectAllControl.prototype, "items", void 0);
151
+ __decorate([
152
+ BindableProperty_1.BindableProperty,
153
+ __metadata("design:type", Array)
154
+ ], SelectAllControl.prototype, "selectedItems", void 0);
155
+ function SelectAll(_a, ...nodes) {
156
+ var { text = "Select All", icon = "far fa-square", iconSelected = "fas fa-check-square" } = _a, a = __rest(_a, ["text", "icon", "iconSelected"]);
157
+ if (text) {
158
+ return XNode_1.default.create(SelectAllControl, Object.assign({ for: "label" }, a),
159
+ XNode_1.default.create("i", { class: icon, "data-ui-type": "item-select" }),
160
+ XNode_1.default.create("i", { class: iconSelected, "data-ui-type": "item-deselect" }),
161
+ XNode_1.default.create("span", { text: text }));
162
+ }
163
+ return XNode_1.default.create(SelectAllControl, Object.assign({ for: "label" }, a),
164
+ XNode_1.default.create("i", { class: icon, "data-ui-type": "item-select" }),
165
+ XNode_1.default.create("i", { class: iconSelected, "data-ui-type": "item-deselect" }),
166
+ ...nodes);
167
+ }
168
+ exports.SelectAll = SelectAll;
169
+ class AtomRepeater extends AtomControl_1.AtomControl {
170
+ get value() {
171
+ var _a;
172
+ if (this.initialValue !== undefined) {
173
+ return this.initialValue;
174
+ }
175
+ const vp = (_a = this.valuePath) !== null && _a !== void 0 ? _a : exports.SameObjectValue;
176
+ return vp(this.selectedItem);
177
+ }
178
+ set value(v) {
179
+ var _a;
180
+ this.initialValue = v;
181
+ if (!this.items) {
182
+ return;
183
+ }
184
+ const vp = (_a = this.valuePath) !== null && _a !== void 0 ? _a : exports.SameObjectValue;
185
+ const selectedItem = this.items.find((item) => vp(item) === v);
186
+ this.selectedItem = selectedItem;
187
+ delete this.initialValue;
188
+ }
189
+ get selectedItem() {
190
+ var _a;
191
+ return (_a = this.selectedItems) === null || _a === void 0 ? void 0 : _a[0];
192
+ }
193
+ set selectedItem(value) {
194
+ var _a;
195
+ const si = (_a = this.selectedItems) !== null && _a !== void 0 ? _a : (this.selectedItems = []);
196
+ const first = si[0];
197
+ if (value === first) {
198
+ return;
199
+ }
200
+ si.length = 0;
201
+ si[0] = value;
202
+ this.updateClasses();
203
+ AtomBinder_1.AtomBinder.refreshValue(this, "selectedItem");
204
+ AtomBinder_1.AtomBinder.refreshValue(this, "value");
205
+ }
206
+ onPropertyChanged(name) {
207
+ var _a, _b;
208
+ switch (name) {
209
+ case "items":
210
+ (_a = this.itemsDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
211
+ const items = this.items;
212
+ const d = items === null || items === void 0 ? void 0 : items.watch(() => {
213
+ this.updateItems();
214
+ AtomBinder_1.AtomBinder.refreshValue(this, "selectedItem");
215
+ AtomBinder_1.AtomBinder.refreshValue(this, "value");
216
+ });
217
+ if (d) {
218
+ this.itemsDisposable = this.registerDisposable(d);
219
+ }
220
+ const iv = this.initialValue;
221
+ if (iv) {
222
+ this.value = iv;
223
+ }
224
+ this.updateItems();
225
+ break;
226
+ case "selectedItems":
227
+ (_b = this.selectedItemsDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
228
+ const selectedItems = this.selectedItems;
229
+ const sd = selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.watch(() => {
230
+ this.updateClasses();
231
+ AtomBinder_1.AtomBinder.refreshValue(this, "selectedItem");
232
+ AtomBinder_1.AtomBinder.refreshValue(this, "value");
233
+ });
234
+ if (sd) {
235
+ this.selectedItemsDisposable = this.registerDisposable(sd);
236
+ }
237
+ this.updateClasses();
238
+ break;
239
+ case "itemRenderer":
240
+ this.updateItems();
241
+ break;
242
+ case "visibilityFilter":
243
+ this.updateVisibility();
244
+ break;
245
+ }
246
+ }
247
+ forEach(action, container) {
248
+ var _a;
249
+ container !== null && container !== void 0 ? container : (container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element);
250
+ const items = this.items;
251
+ let start = container.firstElementChild;
252
+ while (start) {
253
+ // tslint:disable-next-line: no-bitwise
254
+ const index = ~~start.dataset.itemIndex;
255
+ const item = items[index];
256
+ action(item, start);
257
+ start = start.nextElementSibling;
258
+ }
259
+ }
260
+ *any(fx, itemSelector, container) {
261
+ var _a;
262
+ container !== null && container !== void 0 ? container : (container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element);
263
+ const items = this.items;
264
+ let node = container.firstElementChild;
265
+ while (node) {
266
+ // tslint:disable-next-line: no-bitwise
267
+ const index = ~~node.dataset.itemIndex;
268
+ const item = items[index];
269
+ let element = node;
270
+ if (itemSelector) {
271
+ element = element.querySelector(itemSelector);
272
+ }
273
+ const ie = { item, element };
274
+ if (fx) {
275
+ if (fx(item)) {
276
+ yield ie;
277
+ }
278
+ continue;
279
+ }
280
+ yield ie;
281
+ node = node.nextElementSibling;
282
+ }
283
+ }
284
+ *all(container) {
285
+ var _a;
286
+ container !== null && container !== void 0 ? container : (container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element);
287
+ const items = this.items;
288
+ let element = container.firstElementChild;
289
+ while (element) {
290
+ // tslint:disable-next-line: no-bitwise
291
+ const index = ~~element.dataset.itemIndex;
292
+ const item = items[index];
293
+ yield { item, element };
294
+ element = element.nextElementSibling;
295
+ }
296
+ }
297
+ updateItems(container) {
298
+ var _a, _b, _c, _d, _e;
299
+ container !== null && container !== void 0 ? container : (container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element);
300
+ let start = container.firstElementChild;
301
+ while (start) {
302
+ const e = start;
303
+ start = start.nextElementSibling;
304
+ this.unbindEvent(e);
305
+ (_b = e.atomControl) === null || _b === void 0 ? void 0 : _b.dispose();
306
+ e.remove();
307
+ }
308
+ const ir = this.itemRenderer;
309
+ if (!ir) {
310
+ return;
311
+ }
312
+ const items = this.items;
313
+ if (!items) {
314
+ return;
315
+ }
316
+ const vp = (_c = this.valuePath) !== null && _c !== void 0 ? _c : ((it) => it);
317
+ const si = ((_d = this.selectedItems) !== null && _d !== void 0 ? _d : []).map(vp);
318
+ let i = 0;
319
+ for (const iterator of items) {
320
+ const e = ir(iterator);
321
+ const ea = (_e = e.attributes) !== null && _e !== void 0 ? _e : (e.attributes = {});
322
+ const v = vp(iterator);
323
+ ea["data-item-index"] = (i++).toString();
324
+ ea["data-selected-item"] = si.indexOf(v) !== -1
325
+ ? "true"
326
+ : "false";
327
+ this.render(XNode_1.default.create("div", null, e), container, this);
328
+ }
329
+ }
330
+ updateClasses() {
331
+ var _a, _b, _c;
332
+ const container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
333
+ const items = this.items;
334
+ let element = container.firstElementChild;
335
+ const vp = (_b = this.valuePath) !== null && _b !== void 0 ? _b : ((i) => i);
336
+ const si = ((_c = this.selectedItems) !== null && _c !== void 0 ? _c : []).map(vp);
337
+ while (element) {
338
+ // tslint:disable-next-line: no-bitwise
339
+ const index = ~~element.dataset.itemIndex;
340
+ const item = items[index];
341
+ const v = vp(item);
342
+ element.dataset.selectedItem = si.indexOf(v) !== -1
343
+ ? "true"
344
+ : "false";
345
+ element = element.nextElementSibling;
346
+ }
347
+ }
348
+ preCreate() {
349
+ this.bindEvent(this.element, "click", (e) => this.onElementClick(e));
350
+ }
351
+ onElementClick(e) {
352
+ const items = this.items;
353
+ let target = e.target;
354
+ let eventName = "itemClick";
355
+ while (target) {
356
+ const itemIndex = target.dataset.itemIndex;
357
+ const itemClickEvent = target.dataset.clickEvent;
358
+ if (itemClickEvent) {
359
+ eventName = itemClickEvent.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
360
+ }
361
+ if (typeof itemIndex !== "undefined") {
362
+ // tslint:disable-next-line: no-bitwise
363
+ const item = items[~~itemIndex];
364
+ if (eventName === "itemSelect" || eventName === "itemDeselect") {
365
+ const si = this.selectedItems;
366
+ if (si) {
367
+ const index = si.indexOf(item);
368
+ if (index === -1) {
369
+ si.add(item);
370
+ }
371
+ else {
372
+ si.removeAt(index);
373
+ }
374
+ }
375
+ }
376
+ if (item) {
377
+ this.element.dispatchEvent(new CustomEvent(eventName, {
378
+ detail: item,
379
+ bubbles: false
380
+ }));
381
+ }
382
+ return;
383
+ }
384
+ target = target.parentElement;
385
+ }
386
+ }
387
+ updateVisibility() {
388
+ var _a, _b;
389
+ const container = (_a = this.itemsPresenter) !== null && _a !== void 0 ? _a : this.element;
390
+ const items = this.items;
391
+ let element = container.firstElementChild;
392
+ const vf = (_b = this.visibilityFilter) !== null && _b !== void 0 ? _b : exports.MatchTrue;
393
+ while (element) {
394
+ // tslint:disable-next-line: no-bitwise
395
+ const index = ~~element.dataset.itemIndex;
396
+ const item = items[index];
397
+ element.style.display = vf(item) ? "" : "none";
398
+ element = element.nextElementSibling;
399
+ }
400
+ }
401
+ }
402
+ __decorate([
403
+ BindableProperty_1.BindableProperty,
404
+ __metadata("design:type", Boolean)
405
+ ], AtomRepeater.prototype, "allowMultipleSelection", void 0);
406
+ __decorate([
407
+ BindableProperty_1.BindableProperty,
408
+ __metadata("design:type", Array)
409
+ ], AtomRepeater.prototype, "selectedItems", void 0);
410
+ __decorate([
411
+ BindableProperty_1.BindableProperty,
412
+ __metadata("design:type", Object)
413
+ ], AtomRepeater.prototype, "itemsPresenter", void 0);
414
+ __decorate([
415
+ BindableProperty_1.BindableProperty,
416
+ __metadata("design:type", Array)
417
+ ], AtomRepeater.prototype, "items", void 0);
418
+ __decorate([
419
+ BindableProperty_1.BindableProperty,
420
+ __metadata("design:type", Function)
421
+ ], AtomRepeater.prototype, "visibilityFilter", void 0);
422
+ __decorate([
423
+ BindableProperty_1.BindableProperty,
424
+ __metadata("design:type", Function)
425
+ ], AtomRepeater.prototype, "itemRenderer", void 0);
426
+ __decorate([
427
+ BindableProperty_1.BindableProperty,
428
+ __metadata("design:type", Function)
429
+ ], AtomRepeater.prototype, "valuePath", void 0);
430
+ exports.default = AtomRepeater;
431
+ });
432
+ //# sourceMappingURL=AtomRepeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomRepeater.js","sourceRoot":"","sources":["../../src/basic/AtomRepeater.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA,qEAAkE;IAClE,yDAAkD;IAClD,iFAA8E;IAE9E,2DAAoD;IACpD,oEAA6D;IAC7D,+EAA4E;IAC5E,iFAA6E;IAC7E,6DAAsD;IAEtD,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SAC3B,MAAM,CAAC,GAAG,CAAC;SACX,KAAK,CAAC,GAAG,CAAC;SACV,kBAAkB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;SAC7C,KAAK,CAAC,IAAA,mBAAS,EAAC,QAAQ,CAAC;SACrB,WAAW,EAAE;SACb,QAAQ,CAAC,MAAM,CAAC;SAChB,KAAK,CAAC,IAAA,mBAAS,EAAC,YAAY,CAAC;SACzB,KAAK,CAAC,IAAA,mBAAS,EAAC,GAAG,CAAC;SAChB,OAAO,CAAC,CAAC,CAAC,CACd,CACJ,CACJ,CACJ,CAAC;IAMK,MAAM,SAAS,GAAG,CAAC,GAAI,CAAQ,EAAE,EAAE,CAAC,IAAI,CAAC;IAAnC,QAAA,SAAS,aAA0B;IAEzC,MAAM,UAAU,GAAG,CAAC,GAAI,CAAQ,EAAE,EAAE,CAAC,KAAK,CAAC;IAArC,QAAA,UAAU,cAA2B;IAE3C,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,mCAAI,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,CAAC;IAApE,QAAA,aAAa,iBAAuD;IAE1E,MAAM,oBAAoB,GAAG,CAAC,SAA4B,EAAE,EAAE;QACjE,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,qBAAa,EAAC;QAC5B,OAAO,CAAC,CAAS,EAAE,EAAE;YACjB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,SAAS,CAAC,IAAI,CAAC,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC;QACjE,CAAC,CAAC;IACN,CAAC,CAAC;IANW,QAAA,oBAAoB,wBAM/B;IAEK,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;IAAjC,QAAA,eAAe,mBAAkB;IAE9C;;;;;;OAMG;IACH,SAAgB,aAAa,CACzB,KAAU,EACV,YAAgC,EAChC,KAAe;QACf,MAAM,WAAY,SAAQ,0BAAW;YAKvB,MAAM;gBACZ,IAAI,CAAC,MAAM,CAAC,gCAAK,KAAK,EAAE,QAAQ;oBAC5B,kCACI,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,cAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/C,SAAS,EAAE,IAAI,GAAG;oBACtB,gCAAK,KAAK,EAAC,OAAO;wBACd,uBAAC,YAAY,IACT,KAAK,EAAC,WAAW,EACjB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,cAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EACvD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;gCAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BACnC,CAAC,EACD,KAAK,EAAE,KAAK,GAAG,CACjB,CACJ,CAAC,CAAC;YACZ,CAAC;SACJ;QApBG;YADC,mCAAgB;;mDACK;QAsB1B,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IA9BD,sCA8BC;IASD,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,MAAM,CAAC,IAAA,mBAAS,EAAC,qBAAqB,CAAC;SACnC,OAAO,CAAC,CAAC,CAAC,CACd,EACH,uBAAuB,CAAC,CAAC;IAE3B,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,MAAM,CAAC,IAAA,mBAAS,EAAC,iCAAiC,CAAC;SAC/C,OAAO,CAAC,CAAC,CAAC,CACd;SACA,WAAW,CAAC,kCAAkC,CAAC,EAClD,4BAA4B,CAAC,CAAC;IAEhC,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,WAAW,CAAC,oCAAoC,CAAC,EACpD,6BAA6B,CAAC,CAAC;IAEjC,SAAgB,gBAAgB,CAC5B,EAKoB,EACpB,GAAI,KAAc;YANlB,EACI,IAAI,EACJ,IAAI,GAAG,eAAe,EACtB,YAAY,GAAG,qBAAqB,OAEpB,EADZ,CAAC,cAJT,gCAKC,CADQ;QAGT,IAAI,IAAI,EAAE;YACN,OAAO;gBACP,8BAAG,KAAK,EAAE,IAAI,sBAAmB,aAAa,GAAE;gBAChD,8BAAG,KAAK,EAAE,YAAY,sBAAoB,eAAe,GAAE;gBACvD,iCAAM,IAAI,EAAE,IAAI,GAAG;mBACb,KAAK,CACP,CAAC;SACZ;QACD,OAAO;YACH,8BAAG,KAAK,EAAE,IAAI,sBAAmB,aAAa,GAAE;YAChD,8BAAG,KAAK,EAAE,YAAY,sBAAoB,eAAe,GAAE;eACrD,KAAK,CACP,CAAC;IACb,CAAC;IArBD,4CAqBC;IAED,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,MAAM,CAAC,IAAA,mBAAS,EAAC,iBAAiB,CAAC;SAC/B,OAAO,CAAC,CAAC,CAAC,CACd;SACA,WAAW,CAAC,qDAAqD,CAAC;SAClE,WAAW,CAAC,wDAAwD,CAAC,EACxE,+BAA+B,CAAC,CAAC;IAEnC,MAAM,gBAAiB,SAAQ,yBAAW;QAQ5B,SAAS;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,uBAAC,gBAAgB,wBACP,cAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;uBAClD,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GACzD,CAAC,CAAC;YACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;gBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,EAAE,EAAE;oBACL,OAAO;iBACV;gBACD,IAAI,CAAC,KAAK,EAAE;oBACR,OAAO;iBACV;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpB,OAAO;iBACV;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE;oBAC5B,EAAE,CAAC,KAAK,EAAE,CAAC;iBACd;qBAAM;oBACH,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;QACP,CAAC;KAEJ;IA/BG;QADC,mCAAgB;;mDACG;IAGpB;QADC,mCAAgB;;2DACW;IAmChC,SAAgB,SAAS,CACrB,EAKa,EACb,GAAI,KAAc;YANlB,EACI,IAAI,GAAG,YAAY,EACnB,IAAI,GAAG,eAAe,EACtB,YAAY,GAAG,qBAAqB,OAE3B,EADL,CAAC,cAJT,gCAKC,CADQ;QAGT,IAAI,IAAI,EAAE;YACN,OAAO,uBAAC,gBAAgB,kBACpB,GAAG,EAAC,OAAO,IAAO,CAAC;gBACnB,8BAAG,KAAK,EAAE,IAAI,kBAAe,aAAa,GAAE;gBAC5C,8BAAG,KAAK,EAAE,YAAY,kBAAe,eAAe,GAAE;gBACtD,iCAAM,IAAI,EAAE,IAAI,GAAG,CACJ,CAAC;SACvB;QACD,OAAO,uBAAC,gBAAgB,kBAAC,GAAG,EAAC,OAAO,IAAO,CAAC;YACxC,8BAAG,KAAK,EAAE,IAAI,kBAAe,aAAa,GAAE;YAC5C,8BAAG,KAAK,EAAE,YAAY,kBAAe,eAAe,GAAE;eAChD,KAAK,CACI,CAAC;IACxB,CAAC;IArBD,8BAqBC;IACD,MAAqB,YAAa,SAAQ,yBAAW;QA2BjD,IAAW,KAAK;;YACZ,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;gBACjC,OAAO,IAAI,CAAC,YAAY,CAAC;aAC5B;YACD,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,uBAAe,CAAC;YAC7C,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAED,IAAW,KAAK,CAAC,CAAC;;YACd,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACb,OAAO;aACV;YACD,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,uBAAe,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;QAED,IAAW,YAAY;;YACnB,OAAO,MAAA,IAAI,CAAC,aAAa,0CAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,IAAW,YAAY,CAAC,KAAK;;YACzB,MAAM,EAAE,SAAG,IAAI,CAAC,aAAa,oCAAlB,IAAI,CAAC,aAAa,GAAK,EAAE,CAAA,CAAC;YACrC,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,KAAK,KAAK,KAAK,EAAE;gBACjB,OAAO;aACV;YACD,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9C,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAQM,iBAAiB,CAAC,IAAY;;YACjC,QAAQ,IAAI,EAAE;gBACV,KAAK,OAAO;oBACR,MAAA,IAAI,CAAC,eAAe,0CAAE,OAAO,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACzB,MAAM,CAAC,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,EAAE;wBACxB,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;wBAC9C,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC3C,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,EAAE;wBACH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;qBACrD;oBACD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;oBAC7B,IAAI,EAAE,EAAE;wBACJ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;qBACnB;oBACD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM;gBACV,KAAK,eAAe;oBAChB,MAAA,IAAI,CAAC,uBAAuB,0CAAE,OAAO,EAAE,CAAC;oBACxC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;oBACzC,MAAM,EAAE,GAAG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,CAAC,GAAG,EAAE;wBACjC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;wBAC9C,uBAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC3C,CAAC,CAAC,CAAC;oBACH,IAAI,EAAE,EAAE;wBACJ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;qBAC9D;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM;gBACV,KAAK,cAAc;oBACf,IAAI,CAAC,WAAW,EAAE,CAAC;oBACnB,MAAM;gBACV,KAAK,kBAAkB;oBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACxB,MAAM;aACb;QACL,CAAC;QAEM,OAAO,CAAI,MAA+C,EAAE,SAAuB;;YACtF,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,EAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAgC,CAAC;YACvD,OAAO,KAAK,EAAE;gBACV,uCAAuC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,KAAK,CAAC,kBAAiC,CAAC;aACnD;QACL,CAAC;QAEM,CAAC,GAAG,CAAC,EAAsB,EAAE,YAAqB,EAAG,SAAuB;;YAC/E,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,EAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,IAAI,GAAG,SAAS,CAAC,iBAAgC,CAAC;YACtD,OAAO,IAAI,EAAE;gBACT,uCAAuC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAI,YAAY,EAAE;oBACd,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;iBACjD;gBACD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC7B,IAAI,EAAE,EAAE;oBACJ,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;wBACV,MAAM,EAAE,CAAC;qBACZ;oBACD,SAAS;iBACZ;gBACD,MAAO,EAAE,CAAC;gBACV,IAAI,GAAG,IAAI,CAAC,kBAAiC,CAAC;aACjD;QACL,CAAC;QAEM,CAAC,GAAG,CAAC,SAAuB;;YAC/B,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,EAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,OAAO,GAAG,SAAS,CAAC,iBAAgC,CAAC;YACzD,OAAO,OAAO,EAAE;gBACZ,uCAAuC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACzB,OAAO,GAAG,OAAO,CAAC,kBAAiC,CAAC;aACvD;QACL,CAAC;QAEM,WAAW,CAAC,SAAuB;;YACtC,SAAS,aAAT,SAAS,cAAT,SAAS,IAAT,SAAS,GAAK,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,EAAC;YAClD,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;YACxC,OAAO,KAAK,EAAE;gBACV,MAAM,CAAC,GAAG,KAAY,CAAC;gBACvB,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAA,CAAC,CAAC,WAAW,0CAAE,OAAO,EAAE,CAAC;gBACzB,CAAC,CAAC,MAAM,EAAE,CAAC;aACd;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7B,IAAI,CAAC,EAAE,EAAE;gBACL,OAAO;aACV;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;YAED,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;gBAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACvB,MAAM,EAAE,SAAG,CAAC,CAAC,UAAU,oCAAZ,CAAC,CAAC,UAAU,GAAK,EAAE,CAAA,CAAC;gBAC/B,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACvB,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzC,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/C,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,OAAO,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,oCACN,CAAC,CACD,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;aAC5B;QAEL,CAAC;QAES,aAAa;;YACnB,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,OAAO,GAAG,SAAS,CAAC,iBAAgC,CAAC;YACzD,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,OAAO,EAAE;gBACZ,uCAAuC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC/C,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,OAAO,CAAC;gBACd,OAAO,GAAG,OAAO,CAAC,kBAAiC,CAAC;aACvD;QAEL,CAAC;QAES,SAAS;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QAES,cAAc,CAAC,CAAa;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;YACrC,IAAI,SAAS,GAAG,WAAW,CAAC;YAC5B,OAAO,MAAM,EAAE;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;gBACjD,IAAI,cAAc,EAAE;oBAChB,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;iBAC9E;gBACD,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;oBAClC,uCAAuC;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBAChC,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,cAAc,EAAE;wBAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;wBAC9B,IAAI,EAAE,EAAE;4BACJ,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC/B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gCACd,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6BAChB;iCAAM;gCACH,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;6BACtB;yBACJ;qBACJ;oBACD,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE;4BAClD,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,KAAK;yBACjB,CAAC,CAAC,CAAC;qBACP;oBACD,OAAO;iBACV;gBACD,MAAM,GAAG,MAAM,CAAC,aAA4B,CAAC;aAChD;QACL,CAAC;QAES,gBAAgB;;YACtB,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,cAAc,mCAAI,IAAI,CAAC,OAAO,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,OAAO,GAAG,SAAS,CAAC,iBAAgC,CAAC;YACzD,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,gBAAgB,mCAAI,iBAAS,CAAC;YAC9C,OAAO,OAAO,EAAE;gBACZ,uCAAuC;gBACvC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/C,OAAO,GAAG,OAAO,CAAC,kBAAiC,CAAC;aACvD;QACL,CAAC;KAEJ;IAvQG;QADC,mCAAgB;;gEACsB;IAGvC;QADC,mCAAgB;;uDACW;IAG5B;QADC,mCAAgB;;wDACU;IAG3B;QADC,mCAAgB;;+CACG;IAGpB;QADC,mCAAgB;;0DAC+B;IAGhD;QADC,mCAAgB;;sDACoB;IAGrC;QADC,mCAAgB;;mDACY;IAzBjC,+BA8QC"}
@@ -0,0 +1,6 @@
1
+ import AtomRepeater from "./AtomRepeater";
2
+ export default class CheckBoxList extends AtomRepeater {
3
+ labelPath: any;
4
+ protected preCreate(): void;
5
+ }
6
+ //# sourceMappingURL=CheckBoxList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBoxList.d.ts","sourceRoot":"","sources":["../../src/basic/CheckBoxList.tsx"],"names":[],"mappings":"AAKA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAoB1C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IAG3C,SAAS,MAAC;IAEjB,SAAS,CAAC,SAAS,IAAI,IAAI;CAyB9B"}
@@ -0,0 +1,70 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ (function (factory) {
11
+ if (typeof module === "object" && typeof module.exports === "object") {
12
+ var v = factory(require, exports);
13
+ if (v !== undefined) module.exports = v;
14
+ }
15
+ else if (typeof define === "function" && define.amd) {
16
+ define(["require", "exports", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/Colors", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/StyleRule", "@web-atoms/core/dist/web/styles/CSS", "./AtomRepeater"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ const BindableProperty_1 = require("@web-atoms/core/dist/core/BindableProperty");
22
+ const Colors_1 = require("@web-atoms/core/dist/core/Colors");
23
+ const XNode_1 = require("@web-atoms/core/dist/core/XNode");
24
+ const StyleRule_1 = require("@web-atoms/core/dist/style/StyleRule");
25
+ const CSS_1 = require("@web-atoms/core/dist/web/styles/CSS");
26
+ const AtomRepeater_1 = require("./AtomRepeater");
27
+ (0, CSS_1.default)((0, StyleRule_1.default)()
28
+ .flexLayout({ inline: true, justifyContent: "flex-start" })
29
+ .flexFlow("wrap"), "div[data-checkbox-list=checkbox-list]");
30
+ (0, CSS_1.default)((0, StyleRule_1.default)()
31
+ .flexLayout({ justifyContent: "flex-start" })
32
+ .marginRight(5)
33
+ .child((0, StyleRule_1.default)("span")
34
+ .cursor("pointer"))
35
+ .and((0, StyleRule_1.default)("[data-selected-item=true]")
36
+ .color(Colors_1.default.blue))
37
+ .displayNone("[data-selected-item=true] > i.far")
38
+ .displayNone("[data-selected-item=false] > i.fas"), "div[data-item-type=checkbox]");
39
+ class CheckBoxList extends AtomRepeater_1.default {
40
+ preCreate() {
41
+ super.preCreate();
42
+ this.element.dataset.checkboxList = "checkbox-list";
43
+ this.bindEvent(this.element, "itemClick", (e) => {
44
+ const s = this.selectedItems;
45
+ if (!s) {
46
+ return;
47
+ }
48
+ const item = e.detail;
49
+ if (s.indexOf(item) === -1) {
50
+ s.add(item);
51
+ this.element.dispatchEvent(new CustomEvent("itemSelect", { detail: item, bubbles: false }));
52
+ }
53
+ else {
54
+ this.element.dispatchEvent(new CustomEvent("itemDeselect", { detail: item, bubbles: false }));
55
+ s.remove(item);
56
+ }
57
+ });
58
+ this.itemRenderer = (item) => XNode_1.default.create("div", { "data-item-type": "checkbox" },
59
+ XNode_1.default.create("i", { class: "far fa-square" }),
60
+ XNode_1.default.create("i", { class: "fas fa-check-square" }),
61
+ XNode_1.default.create("span", { text: item.label }));
62
+ }
63
+ }
64
+ __decorate([
65
+ BindableProperty_1.BindableProperty,
66
+ __metadata("design:type", Object)
67
+ ], CheckBoxList.prototype, "labelPath", void 0);
68
+ exports.default = CheckBoxList;
69
+ });
70
+ //# sourceMappingURL=CheckBoxList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckBoxList.js","sourceRoot":"","sources":["../../src/basic/CheckBoxList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;IAAA,iFAA8E;IAC9E,6DAAsD;IACtD,2DAAoD;IACpD,oEAA6D;IAC7D,6DAAsD;IACtD,iDAA0C;IAE1C,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAC,CAAC;SACzD,QAAQ,CAAC,MAAM,CAAC,EACrB,uCAAuC,CAAC,CAAC;IAEzC,IAAA,aAAG,EAAC,IAAA,mBAAS,GAAE;SACV,UAAU,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;SAC5C,WAAW,CAAC,CAAC,CAAC;SACd,KAAK,CAAC,IAAA,mBAAS,EAAC,MAAM,CAAC;SACnB,MAAM,CAAC,SAAS,CAAC,CACrB;SACA,GAAG,CAAC,IAAA,mBAAS,EAAC,2BAA2B,CAAC;SACtC,KAAK,CAAC,gBAAM,CAAC,IAAI,CAAC,CACtB;SACA,WAAW,CAAC,mCAAmC,CAAC;SAChD,WAAW,CAAC,oCAAoC,CAAC,EACpD,8BAA8B,CAAC,CAAC;IAElC,MAAqB,YAAa,SAAQ,sBAAY;QAKxC,SAAS;YACf,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAc,EAAE,EAAE;gBACzD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC7B,IAAI,CAAC,CAAC,EAAE;oBACJ,OAAO;iBACV;gBACD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;oBACxB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACZ,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC/F;qBAAM;oBACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC9F,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,kDAAoB,UAAU;gBACxD,8BAAG,KAAK,EAAC,eAAe,GAAE;gBAC1B,8BAAG,KAAK,EAAC,qBAAqB,GAAE;gBAChC,iCAAM,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CACvB,CAAC;QACX,CAAC;KAEJ;IA3BG;QADC,mCAAgB;;mDACA;IAHrB,+BA8BC"}
@@ -0,0 +1,10 @@
1
+ import AtomRepeater from "./AtomRepeater";
2
+ export default class ComboBox extends AtomRepeater {
3
+ labelPath: any;
4
+ private isChanging;
5
+ constructor(app: any, e: any);
6
+ updateItems(container?: HTMLElement): void;
7
+ protected preCreate(): void;
8
+ protected changeSelection(): void;
9
+ }
10
+ //# sourceMappingURL=ComboBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../src/basic/ComboBox.tsx"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,YAAY;IAGvC,SAAS,EAAE,GAAG,CAAC;IAEtB,OAAO,CAAC,UAAU,CAAS;gBAEf,GAAG,KAAA,EAAE,CAAC,KAAA;IAIX,WAAW,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI;IAkBjD,SAAS,CAAC,SAAS,IAAI,IAAI;IAS3B,SAAS,CAAC,eAAe,IAAI,IAAI;CAapC"}