@3t-transform/threeteeui 0.0.1

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.
Files changed (63) hide show
  1. package/dist/cjs/index-eb8fc323.js +1620 -0
  2. package/dist/cjs/index.cjs.js +2 -0
  3. package/dist/cjs/loader.cjs.js +21 -0
  4. package/dist/cjs/toolbar-656be6e6.js +34259 -0
  5. package/dist/cjs/tttx-page.cjs.entry.js +927 -0
  6. package/dist/cjs/tttx-worksheet.cjs.entry.js +47 -0
  7. package/dist/cjs/tttx.cjs.js +19 -0
  8. package/dist/collection/collection-manifest.json +13 -0
  9. package/dist/collection/components/patterns/tttx-page/tttx-page.css +162 -0
  10. package/dist/collection/components/patterns/tttx-page/tttx-page.js +213 -0
  11. package/dist/collection/components/patterns/tttx-page/tttx-page.stories.js +80 -0
  12. package/dist/collection/components/patterns/tttx-worksheet/tttx-worksheet.css +134 -0
  13. package/dist/collection/components/patterns/tttx-worksheet/tttx-worksheet.js +70 -0
  14. package/dist/collection/components/patterns/tttx-worksheet/tttx-worksheet.stories.js +44 -0
  15. package/dist/collection/docs/gettingstarted-developer.stories.js +9 -0
  16. package/dist/collection/docs/template.stories.js +10 -0
  17. package/dist/collection/index.js +1 -0
  18. package/dist/components/index.d.ts +23 -0
  19. package/dist/components/index.js +3 -0
  20. package/dist/components/tttx-page.d.ts +11 -0
  21. package/dist/components/tttx-page.js +953 -0
  22. package/dist/components/tttx-worksheet.d.ts +11 -0
  23. package/dist/components/tttx-worksheet.js +6 -0
  24. package/dist/components/tttx-worksheet2.js +34288 -0
  25. package/dist/esm/index-4c11a593.js +1594 -0
  26. package/dist/esm/index.js +1 -0
  27. package/dist/esm/loader.js +17 -0
  28. package/dist/esm/polyfills/core-js.js +11 -0
  29. package/dist/esm/polyfills/css-shim.js +1 -0
  30. package/dist/esm/polyfills/dom.js +79 -0
  31. package/dist/esm/polyfills/es5-html-element.js +1 -0
  32. package/dist/esm/polyfills/index.js +34 -0
  33. package/dist/esm/polyfills/system.js +6 -0
  34. package/dist/esm/toolbar-cede4385.js +34231 -0
  35. package/dist/esm/tttx-page.entry.js +923 -0
  36. package/dist/esm/tttx-worksheet.entry.js +43 -0
  37. package/dist/esm/tttx.js +17 -0
  38. package/dist/index.cjs.js +1 -0
  39. package/dist/index.js +1 -0
  40. package/dist/tttx/index.esm.js +0 -0
  41. package/dist/tttx/p-2681b874.js +2 -0
  42. package/dist/tttx/p-d038fe18.js +1 -0
  43. package/dist/tttx/p-d5c31f03.entry.js +1 -0
  44. package/dist/tttx/p-e40966f3.entry.js +1 -0
  45. package/dist/tttx/tttx.css +1 -0
  46. package/dist/tttx/tttx.esm.js +1 -0
  47. package/dist/types/components/patterns/tttx-page/tttx-page.d.ts +21 -0
  48. package/dist/types/components/patterns/tttx-page/tttx-page.stories.d.ts +48 -0
  49. package/dist/types/components/patterns/tttx-worksheet/tttx-worksheet.d.ts +9 -0
  50. package/dist/types/components/patterns/tttx-worksheet/tttx-worksheet.stories.d.ts +23 -0
  51. package/dist/types/components.d.ts +66 -0
  52. package/dist/types/docs/gettingstarted-developer.stories.d.ts +5 -0
  53. package/dist/types/docs/template.stories.d.ts +5 -0
  54. package/dist/types/index.d.ts +1 -0
  55. package/dist/types/stencil-public-runtime.d.ts +1581 -0
  56. package/loader/cdn.js +3 -0
  57. package/loader/index.cjs.js +3 -0
  58. package/loader/index.d.ts +12 -0
  59. package/loader/index.es2017.js +3 -0
  60. package/loader/index.js +4 -0
  61. package/loader/package.json +11 -0
  62. package/package.json +60 -0
  63. package/readme.md +90 -0
@@ -0,0 +1,953 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { C as CollectionWidget, B as BindableTemplate, a as Button, e as extend, i as isFunction, $, W as Widget, b as isDefined, r as registerComponent, h as hasWindow, g as getOuterWidth, m as messageLocalization, F as FunctionTemplate, L as ListSearch, D as DataSource, A as ArrayStore, c as compileGetter, n as noop, d as Deferred, G as Guid, f as getPublicElement, P as Popup, j as isPlainObject, k as ensureDefined, l as DataHelperMixin, o as getImageContainer, T as Toolbar, p as defineCustomElement$2 } from './tttx-worksheet2.js';
3
+
4
+ /**
5
+ * DevExtreme (esm/ui/button_group.js)
6
+ * Version: 22.1.6
7
+ * Build date: Tue Oct 18 2022
8
+ *
9
+ * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
10
+ * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
11
+ */
12
+ var BUTTON_GROUP_CLASS = "dx-buttongroup";
13
+ var BUTTON_GROUP_WRAPPER_CLASS = BUTTON_GROUP_CLASS + "-wrapper";
14
+ var BUTTON_GROUP_ITEM_CLASS = BUTTON_GROUP_CLASS + "-item";
15
+ var BUTTON_GROUP_FIRST_ITEM_CLASS = BUTTON_GROUP_CLASS + "-first-item";
16
+ var BUTTON_GROUP_LAST_ITEM_CLASS = BUTTON_GROUP_CLASS + "-last-item";
17
+ var BUTTON_GROUP_ITEM_HAS_WIDTH = BUTTON_GROUP_ITEM_CLASS + "-has-width";
18
+ var SHAPE_STANDARD_CLASS = "dx-shape-standard";
19
+ var ButtonCollection = CollectionWidget.inherit({
20
+ _initTemplates() {
21
+ this.callBase();
22
+ this._templateManager.addDefaultTemplates({
23
+ item: new BindableTemplate(($container, data, model) => {
24
+ this._prepareItemStyles($container);
25
+ var template = this.option("buttonTemplate");
26
+ this._createComponent($container, Button, extend({}, model, data, this._getBasicButtonOptions(), {
27
+ _templateData: this._hasCustomTemplate(template) ? model : {},
28
+ template: model.template || template
29
+ }));
30
+ }, ["text", "type", "icon", "disabled", "visible", "hint"], this.option("integrationOptions.watchMethod"))
31
+ });
32
+ },
33
+ _getBasicButtonOptions() {
34
+ return {
35
+ focusStateEnabled: false,
36
+ onClick: null,
37
+ hoverStateEnabled: this.option("hoverStateEnabled"),
38
+ activeStateEnabled: this.option("activeStateEnabled"),
39
+ stylingMode: this.option("stylingMode")
40
+ }
41
+ },
42
+ _getDefaultOptions: function() {
43
+ return extend(this.callBase(), {
44
+ itemTemplateProperty: null
45
+ })
46
+ },
47
+ _hasCustomTemplate(template) {
48
+ return isFunction(template) || this.option("integrationOptions.templates")[template]
49
+ },
50
+ _prepareItemStyles($item) {
51
+ var itemIndex = $item.data("dxItemIndex");
52
+ 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);
53
+ var items = this.option("items");
54
+ items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);
55
+ $item.addClass(SHAPE_STANDARD_CLASS);
56
+ },
57
+ _renderItemContent(args) {
58
+ args.container = $(args.container).parent();
59
+ return this.callBase(args)
60
+ },
61
+ _renderItemContentByNode: function(args, $node) {
62
+ args.container = $(args.container.children().first());
63
+ return this.callBase(args, $node)
64
+ },
65
+ _focusTarget() {
66
+ return this.$element().parent()
67
+ },
68
+ _keyboardEventBindingTarget() {
69
+ return this._focusTarget()
70
+ },
71
+ _refreshContent() {
72
+ this._prepareContent();
73
+ this._renderContent();
74
+ },
75
+ _itemClass: () => BUTTON_GROUP_ITEM_CLASS,
76
+ _itemSelectHandler: function(e) {
77
+ if ("single" === this.option("selectionMode") && this.isItemSelected(e.currentTarget)) {
78
+ return
79
+ }
80
+ this.callBase(e);
81
+ }
82
+ });
83
+ var ButtonGroup = Widget.inherit({
84
+ _getDefaultOptions() {
85
+ return extend(this.callBase(), {
86
+ hoverStateEnabled: true,
87
+ focusStateEnabled: true,
88
+ selectionMode: "single",
89
+ selectedItems: [],
90
+ selectedItemKeys: [],
91
+ stylingMode: "contained",
92
+ keyExpr: "text",
93
+ items: [],
94
+ buttonTemplate: "content",
95
+ onSelectionChanged: null,
96
+ onItemClick: null
97
+ })
98
+ },
99
+ _init() {
100
+ this.callBase();
101
+ this._createItemClickAction();
102
+ },
103
+ _createItemClickAction() {
104
+ this._itemClickAction = this._createActionByOption("onItemClick");
105
+ },
106
+ _initMarkup() {
107
+ this.setAria("role", "group");
108
+ this.$element().addClass(BUTTON_GROUP_CLASS);
109
+ this._renderButtons();
110
+ this._syncSelectionOptions();
111
+ this.callBase();
112
+ },
113
+ _fireSelectionChangeEvent: function(addedItems, removedItems) {
114
+ this._createActionByOption("onSelectionChanged", {
115
+ excludeValidators: ["disabled", "readOnly"]
116
+ })({
117
+ addedItems: addedItems,
118
+ removedItems: removedItems
119
+ });
120
+ },
121
+ _renderButtons() {
122
+ var $buttons = $("<div>").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());
123
+ var selectedItems = this.option("selectedItems");
124
+ var options = {
125
+ selectionMode: this.option("selectionMode"),
126
+ items: this.option("items"),
127
+ keyExpr: this.option("keyExpr"),
128
+ buttonTemplate: this.option("buttonTemplate"),
129
+ scrollingEnabled: false,
130
+ selectedItemKeys: this.option("selectedItemKeys"),
131
+ focusStateEnabled: this.option("focusStateEnabled"),
132
+ hoverStateEnabled: this.option("hoverStateEnabled"),
133
+ activeStateEnabled: this.option("activeStateEnabled"),
134
+ stylingMode: this.option("stylingMode"),
135
+ accessKey: this.option("accessKey"),
136
+ tabIndex: this.option("tabIndex"),
137
+ noDataText: "",
138
+ selectionRequired: false,
139
+ onItemRendered: e => {
140
+ var width = this.option("width");
141
+ isDefined(width) && $(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH);
142
+ },
143
+ onSelectionChanged: e => {
144
+ this._syncSelectionOptions();
145
+ this._fireSelectionChangeEvent(e.addedItems, e.removedItems);
146
+ },
147
+ onItemClick: e => {
148
+ this._itemClickAction(e);
149
+ }
150
+ };
151
+ if (isDefined(selectedItems) && selectedItems.length) {
152
+ options.selectedItems = selectedItems;
153
+ }
154
+ this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options);
155
+ },
156
+ _syncSelectionOptions() {
157
+ this._setOptionWithoutOptionChange("selectedItems", this._buttonsCollection.option("selectedItems"));
158
+ this._setOptionWithoutOptionChange("selectedItemKeys", this._buttonsCollection.option("selectedItemKeys"));
159
+ },
160
+ _optionChanged(args) {
161
+ switch (args.name) {
162
+ case "stylingMode":
163
+ case "selectionMode":
164
+ case "keyExpr":
165
+ case "buttonTemplate":
166
+ case "items":
167
+ case "activeStateEnabled":
168
+ case "focusStateEnabled":
169
+ case "hoverStateEnabled":
170
+ case "tabIndex":
171
+ this._invalidate();
172
+ break;
173
+ case "selectedItemKeys":
174
+ case "selectedItems":
175
+ this._buttonsCollection.option(args.name, args.value);
176
+ break;
177
+ case "onItemClick":
178
+ this._createItemClickAction();
179
+ break;
180
+ case "onSelectionChanged":
181
+ break;
182
+ case "width":
183
+ this.callBase(args);
184
+ this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);
185
+ break;
186
+ default:
187
+ this.callBase(args);
188
+ }
189
+ }
190
+ });
191
+ registerComponent("dxButtonGroup", ButtonGroup);
192
+
193
+ /**
194
+ * DevExtreme (esm/ui/drop_down_editor/utils.js)
195
+ * Version: 22.1.6
196
+ * Build date: Tue Oct 18 2022
197
+ *
198
+ * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
199
+ * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
200
+ */
201
+ var getElementWidth = function($element) {
202
+ if (hasWindow()) {
203
+ return getOuterWidth($element)
204
+ }
205
+ };
206
+ var getSizeValue = function(size) {
207
+ if (null === size) {
208
+ size = void 0;
209
+ }
210
+ if ("function" === typeof size) {
211
+ size = size();
212
+ }
213
+ return size
214
+ };
215
+
216
+ /**
217
+ * DevExtreme (esm/ui/drop_down_button.js)
218
+ * Version: 22.1.6
219
+ * Build date: Tue Oct 18 2022
220
+ *
221
+ * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
222
+ * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
223
+ */
224
+ var DROP_DOWN_BUTTON_CLASS = "dx-dropdownbutton";
225
+ var DROP_DOWN_BUTTON_CONTENT = "dx-dropdownbutton-content";
226
+ var DROP_DOWN_BUTTON_ACTION_CLASS = "dx-dropdownbutton-action";
227
+ var DROP_DOWN_BUTTON_TOGGLE_CLASS = "dx-dropdownbutton-toggle";
228
+ var DROP_DOWN_BUTTON_HAS_ARROW_CLASS = "dx-dropdownbutton-has-arrow";
229
+ var DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = "dx-dropdownbutton-popup-wrapper";
230
+ var DROP_DOWN_EDITOR_OVERLAY_CLASS = "dx-dropdowneditor-overlay";
231
+ var DX_BUTTON_TEXT_CLASS = "dx-button-text";
232
+ var DX_ICON_RIGHT_CLASS = "dx-icon-right";
233
+ var DropDownButton = Widget.inherit({
234
+ _getDefaultOptions() {
235
+ return extend(this.callBase(), {
236
+ itemTemplate: "item",
237
+ keyExpr: "this",
238
+ displayExpr: void 0,
239
+ selectedItem: null,
240
+ selectedItemKey: null,
241
+ stylingMode: "outlined",
242
+ deferRendering: true,
243
+ noDataText: messageLocalization.format("dxCollectionWidget-noDataText"),
244
+ useSelectMode: false,
245
+ splitButton: false,
246
+ showArrowIcon: true,
247
+ text: "",
248
+ icon: void 0,
249
+ onButtonClick: null,
250
+ onSelectionChanged: null,
251
+ onItemClick: null,
252
+ opened: false,
253
+ items: null,
254
+ dataSource: null,
255
+ focusStateEnabled: true,
256
+ hoverStateEnabled: true,
257
+ dropDownOptions: {},
258
+ dropDownContentTemplate: "content",
259
+ wrapItemText: false,
260
+ useItemTextAsTitle: true,
261
+ grouped: false,
262
+ groupTemplate: "group",
263
+ buttonGroupOptions: {}
264
+ })
265
+ },
266
+ _setOptionsByReference() {
267
+ this.callBase();
268
+ extend(this._optionsByReference, {
269
+ selectedItem: true
270
+ });
271
+ },
272
+ _init() {
273
+ this.callBase();
274
+ this._createItemClickAction();
275
+ this._createActionClickAction();
276
+ this._createSelectionChangedAction();
277
+ this._initDataSource();
278
+ this._compileKeyGetter();
279
+ this._compileDisplayGetter();
280
+ this._itemsToDataSource(this.option("items"));
281
+ this._options.cache("buttonGroupOptions", this.option("buttonGroupOptions"));
282
+ this._options.cache("dropDownOptions", this.option("dropDownOptions"));
283
+ },
284
+ _initTemplates() {
285
+ this._templateManager.addDefaultTemplates({
286
+ content: new FunctionTemplate(options => {
287
+ var $popupContent = $(options.container);
288
+ var $listContainer = $("<div>").appendTo($popupContent);
289
+ this._list = this._createComponent($listContainer, ListSearch, this._listOptions());
290
+ this._list.registerKeyHandler("escape", this._escHandler.bind(this));
291
+ this._list.registerKeyHandler("tab", this._escHandler.bind(this));
292
+ this._list.registerKeyHandler("leftArrow", this._escHandler.bind(this));
293
+ this._list.registerKeyHandler("rightArrow", this._escHandler.bind(this));
294
+ })
295
+ });
296
+ this.callBase();
297
+ },
298
+ _itemsToDataSource: function(value) {
299
+ if (!this._dataSource) {
300
+ this._dataSource = new DataSource({
301
+ store: new ArrayStore({
302
+ key: this._getKey(),
303
+ data: value
304
+ }),
305
+ pageSize: 0
306
+ });
307
+ }
308
+ },
309
+ _getKey: function() {
310
+ var _this$_dataSource;
311
+ var keyExpr = this.option("keyExpr");
312
+ var storeKey = null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.key();
313
+ return isDefined(storeKey) && (!isDefined(keyExpr) || "this" === keyExpr) ? storeKey : keyExpr
314
+ },
315
+ _compileKeyGetter() {
316
+ this._keyGetter = compileGetter(this._getKey());
317
+ },
318
+ _compileDisplayGetter() {
319
+ this._displayGetter = compileGetter(this.option("displayExpr"));
320
+ },
321
+ _initMarkup() {
322
+ this.callBase();
323
+ this.$element().addClass(DROP_DOWN_BUTTON_CLASS);
324
+ this._renderButtonGroup();
325
+ this._updateArrowClass();
326
+ if (isDefined(this.option("selectedItemKey"))) {
327
+ this._loadSelectedItem().done(this._updateActionButton.bind(this));
328
+ }
329
+ },
330
+ _renderFocusTarget: noop,
331
+ _render() {
332
+ if (!this.option("deferRendering") || this.option("opened")) {
333
+ this._renderPopup();
334
+ }
335
+ this.callBase();
336
+ },
337
+ _renderContentImpl() {
338
+ if (this._popup) {
339
+ this._renderPopupContent();
340
+ }
341
+ return this.callBase()
342
+ },
343
+ _loadSelectedItem() {
344
+ var _this$_loadSingleDefe;
345
+ null === (_this$_loadSingleDefe = this._loadSingleDeferred) || void 0 === _this$_loadSingleDefe ? void 0 : _this$_loadSingleDefe.reject();
346
+ var d = new Deferred;
347
+ if (this._list && void 0 !== this._lastSelectedItemData) {
348
+ var cachedResult = this.option("useSelectMode") ? this._list.option("selectedItem") : this._lastSelectedItemData;
349
+ return d.resolve(cachedResult)
350
+ }
351
+ this._lastSelectedItemData = void 0;
352
+ var selectedItemKey = this.option("selectedItemKey");
353
+ this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(() => {
354
+ d.resolve(null);
355
+ });
356
+ this._loadSingleDeferred = d;
357
+ return d.promise()
358
+ },
359
+ _createActionClickAction() {
360
+ this._actionClickAction = this._createActionByOption("onButtonClick");
361
+ },
362
+ _createSelectionChangedAction() {
363
+ this._selectionChangedAction = this._createActionByOption("onSelectionChanged");
364
+ },
365
+ _createItemClickAction() {
366
+ this._itemClickAction = this._createActionByOption("onItemClick");
367
+ },
368
+ _fireSelectionChangedAction(_ref) {
369
+ var {
370
+ previousValue: previousValue,
371
+ value: value
372
+ } = _ref;
373
+ this._selectionChangedAction({
374
+ item: value,
375
+ previousItem: previousValue
376
+ });
377
+ },
378
+ _fireItemClickAction(_ref2) {
379
+ var {
380
+ event: event,
381
+ itemElement: itemElement,
382
+ itemData: itemData
383
+ } = _ref2;
384
+ return this._itemClickAction({
385
+ event: event,
386
+ itemElement: itemElement,
387
+ itemData: this._actionItem || itemData
388
+ })
389
+ },
390
+ _actionButtonConfig() {
391
+ return {
392
+ text: this.option("text"),
393
+ icon: this.option("icon"),
394
+ elementAttr: {
395
+ class: DROP_DOWN_BUTTON_ACTION_CLASS
396
+ }
397
+ }
398
+ },
399
+ _getButtonGroupItems() {
400
+ var items = [];
401
+ items.push(this._actionButtonConfig());
402
+ if (this.option("splitButton")) {
403
+ items.push({
404
+ icon: "spindown",
405
+ elementAttr: {
406
+ class: DROP_DOWN_BUTTON_TOGGLE_CLASS
407
+ }
408
+ });
409
+ }
410
+ return items
411
+ },
412
+ _buttonGroupItemClick(_ref3) {
413
+ var {
414
+ event: event,
415
+ itemData: itemData
416
+ } = _ref3;
417
+ var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;
418
+ var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;
419
+ if (isToggleButton) {
420
+ this.toggle();
421
+ } else if (isActionButton) {
422
+ this._actionClickAction({
423
+ event: event,
424
+ selectedItem: this.option("selectedItem")
425
+ });
426
+ if (!this.option("splitButton")) {
427
+ this.toggle();
428
+ }
429
+ }
430
+ },
431
+ _buttonGroupOptions() {
432
+ var {
433
+ splitButton: splitButton,
434
+ showArrowIcon: showArrowIcon,
435
+ focusStateEnabled: focusStateEnabled,
436
+ hoverStateEnabled: hoverStateEnabled,
437
+ stylingMode: stylingMode,
438
+ accessKey: accessKey,
439
+ tabIndex: tabIndex
440
+ } = this.option();
441
+ var buttonTemplate = splitButton || !showArrowIcon ? "content" : (_ref4, buttonContent) => {
442
+ var {
443
+ text: text,
444
+ icon: icon
445
+ } = _ref4;
446
+ var $firstIcon = getImageContainer(icon);
447
+ var $textContainer = text ? $("<span>").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;
448
+ var $secondIcon = getImageContainer("spindown").addClass(DX_ICON_RIGHT_CLASS);
449
+ $(buttonContent).append($firstIcon, $textContainer, $secondIcon);
450
+ };
451
+ return extend({
452
+ items: this._getButtonGroupItems(),
453
+ onItemClick: this._buttonGroupItemClick.bind(this),
454
+ width: "100%",
455
+ height: "100%",
456
+ selectionMode: "none",
457
+ onKeyboardHandled: e => this._keyboardHandler(e),
458
+ buttonTemplate: buttonTemplate,
459
+ focusStateEnabled: focusStateEnabled,
460
+ hoverStateEnabled: hoverStateEnabled,
461
+ stylingMode: stylingMode,
462
+ accessKey: accessKey,
463
+ tabIndex: tabIndex
464
+ }, this._options.cache("buttonGroupOptions"))
465
+ },
466
+ _renderPopupContent() {
467
+ var $content = this._popup.$content();
468
+ var template = this._getTemplateByOption("dropDownContentTemplate");
469
+ $content.empty();
470
+ this._popupContentId = "dx-" + new Guid;
471
+ this.setAria("id", this._popupContentId, $content);
472
+ return template.render({
473
+ container: getPublicElement($content),
474
+ model: this.option("items") || this._dataSource
475
+ })
476
+ },
477
+ _popupOptions() {
478
+ var horizontalAlignment = this.option("rtlEnabled") ? "right" : "left";
479
+ return extend({
480
+ dragEnabled: false,
481
+ focusStateEnabled: false,
482
+ deferRendering: this.option("deferRendering"),
483
+ hideOnOutsideClick: e => {
484
+ var $element = this.$element();
485
+ var $buttonClicked = $(e.target).closest(".".concat(DROP_DOWN_BUTTON_CLASS));
486
+ return !$buttonClicked.is($element)
487
+ },
488
+ showTitle: false,
489
+ animation: {
490
+ show: {
491
+ type: "fade",
492
+ duration: 0,
493
+ from: 0,
494
+ to: 1
495
+ },
496
+ hide: {
497
+ type: "fade",
498
+ duration: 400,
499
+ from: 1,
500
+ to: 0
501
+ }
502
+ },
503
+ _ignoreFunctionValueDeprecation: true,
504
+ width: () => getElementWidth(this.$element()),
505
+ height: "auto",
506
+ shading: false,
507
+ position: {
508
+ of: this.$element(),
509
+ collision: "flipfit",
510
+ my: horizontalAlignment + " top",
511
+ at: horizontalAlignment + " bottom"
512
+ },
513
+ wrapperAttr: {
514
+ class: DROP_DOWN_EDITOR_OVERLAY_CLASS
515
+ }
516
+ }, this._options.cache("dropDownOptions"), {
517
+ visible: this.option("opened")
518
+ })
519
+ },
520
+ _listOptions() {
521
+ var selectedItemKey = this.option("selectedItemKey");
522
+ var useSelectMode = this.option("useSelectMode");
523
+ return {
524
+ selectionMode: useSelectMode ? "single" : "none",
525
+ wrapItemText: this.option("wrapItemText"),
526
+ focusStateEnabled: this.option("focusStateEnabled"),
527
+ hoverStateEnabled: this.option("hoverStateEnabled"),
528
+ useItemTextAsTitle: this.option("useItemTextAsTitle"),
529
+ onContentReady: () => this._fireContentReadyAction(),
530
+ selectedItemKeys: isDefined(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],
531
+ grouped: this.option("grouped"),
532
+ groupTemplate: this.option("groupTemplate"),
533
+ keyExpr: this._getKey(),
534
+ noDataText: this.option("noDataText"),
535
+ displayExpr: this.option("displayExpr"),
536
+ itemTemplate: this.option("itemTemplate"),
537
+ items: this.option("items"),
538
+ dataSource: this._dataSource,
539
+ onItemClick: e => {
540
+ if (!this.option("useSelectMode")) {
541
+ this._lastSelectedItemData = e.itemData;
542
+ }
543
+ this.option("selectedItemKey", this._keyGetter(e.itemData));
544
+ var actionResult = this._fireItemClickAction(e);
545
+ if (false !== actionResult) {
546
+ this.toggle(false);
547
+ this._buttonGroup.focus();
548
+ }
549
+ }
550
+ }
551
+ },
552
+ _upDownKeyHandler() {
553
+ if (this._popup && this._popup.option("visible") && this._list) {
554
+ this._list.focus();
555
+ } else {
556
+ this.open();
557
+ }
558
+ return true
559
+ },
560
+ _escHandler() {
561
+ this.close();
562
+ this._buttonGroup.focus();
563
+ return true
564
+ },
565
+ _tabHandler() {
566
+ this.close();
567
+ return true
568
+ },
569
+ _renderPopup() {
570
+ var $popup = $("<div>");
571
+ this.$element().append($popup);
572
+ this._popup = this._createComponent($popup, Popup, this._popupOptions());
573
+ this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);
574
+ this._popup.$wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);
575
+ this._popup.on("hiding", this._popupHidingHandler.bind(this));
576
+ this._popup.on("showing", this._popupShowingHandler.bind(this));
577
+ this._bindInnerWidgetOptions(this._popup, "dropDownOptions");
578
+ },
579
+ _popupHidingHandler() {
580
+ this.option("opened", false);
581
+ this._setAriaExpanded(false);
582
+ },
583
+ _popupOptionChanged: function(args) {
584
+ var options = Widget.getOptionsFromContainer(args);
585
+ this._setPopupOption(options);
586
+ var optionsKeys = Object.keys(options);
587
+ if (-1 !== optionsKeys.indexOf("width") || -1 !== optionsKeys.indexOf("height")) {
588
+ this._dimensionChanged();
589
+ }
590
+ },
591
+ _dimensionChanged: function() {
592
+ var popupWidth = getSizeValue(this.option("dropDownOptions.width"));
593
+ if (void 0 === popupWidth) {
594
+ this._setPopupOption("width", () => getElementWidth(this.$element()));
595
+ }
596
+ },
597
+ _setPopupOption: function(optionName, value) {
598
+ this._setWidgetOption("_popup", arguments);
599
+ },
600
+ _popupShowingHandler() {
601
+ this.option("opened", true);
602
+ this._setAriaExpanded(true);
603
+ },
604
+ _setAriaExpanded(value) {
605
+ this._ariaExpandedElements.forEach(ariaElement => {
606
+ this.setAria({
607
+ expanded: value,
608
+ owns: value ? this._popupContentId : void 0
609
+ }, $(ariaElement));
610
+ });
611
+ },
612
+ _renderButtonGroup() {
613
+ var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || $("<div>");
614
+ if (!this._buttonGroup) {
615
+ this.$element().append($buttonGroup);
616
+ }
617
+ this._buttonGroup = this._createComponent($buttonGroup, ButtonGroup, this._buttonGroupOptions());
618
+ var buttonElements = this._buttonGroup.$element().find(".dx-button").toArray();
619
+ this._ariaExpandedElements = [...buttonElements, this.$element()];
620
+ this._buttonGroup.registerKeyHandler("downArrow", this._upDownKeyHandler.bind(this));
621
+ this._buttonGroup.registerKeyHandler("tab", this._tabHandler.bind(this));
622
+ this._buttonGroup.registerKeyHandler("upArrow", this._upDownKeyHandler.bind(this));
623
+ this._buttonGroup.registerKeyHandler("escape", this._escHandler.bind(this));
624
+ this._bindInnerWidgetOptions(this._buttonGroup, "buttonGroupOptions");
625
+ this._setAriaExpanded(this.option("opened"));
626
+ },
627
+ _updateArrowClass() {
628
+ var hasArrow = this.option("splitButton") || this.option("showArrowIcon");
629
+ this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow);
630
+ },
631
+ toggle(visible) {
632
+ if (!this._popup) {
633
+ this._renderPopup();
634
+ this._renderContent();
635
+ }
636
+ return this._popup.toggle(visible)
637
+ },
638
+ open() {
639
+ return this.toggle(true)
640
+ },
641
+ close() {
642
+ return this.toggle(false)
643
+ },
644
+ _setListOption(name, value) {
645
+ this._list && this._list.option(name, value);
646
+ },
647
+ _getDisplayValue(item) {
648
+ var isPrimitiveItem = !isPlainObject(item);
649
+ var displayValue = isPrimitiveItem ? item : this._displayGetter(item);
650
+ return !isPlainObject(displayValue) ? String(ensureDefined(displayValue, "")) : ""
651
+ },
652
+ _updateActionButton(selectedItem) {
653
+ if (this.option("useSelectMode")) {
654
+ this.option({
655
+ text: this._getDisplayValue(selectedItem),
656
+ icon: isPlainObject(selectedItem) ? selectedItem.icon : void 0
657
+ });
658
+ }
659
+ this._setOptionWithoutOptionChange("selectedItem", selectedItem);
660
+ this._setOptionWithoutOptionChange("selectedItemKey", this._keyGetter(selectedItem));
661
+ },
662
+ _clean() {
663
+ this._list && this._list.$element().remove();
664
+ this._popup && this._popup.$element().remove();
665
+ },
666
+ _selectedItemKeyChanged(value) {
667
+ this._setListOption("selectedItemKeys", this.option("useSelectMode") && isDefined(value) ? [value] : []);
668
+ var previousItem = this.option("selectedItem");
669
+ this._loadSelectedItem().done(selectedItem => {
670
+ this._updateActionButton(selectedItem);
671
+ if (this._displayGetter(previousItem) !== this._displayGetter(selectedItem)) {
672
+ this._fireSelectionChangedAction({
673
+ previousValue: previousItem,
674
+ value: selectedItem
675
+ });
676
+ }
677
+ });
678
+ },
679
+ _actionButtonOptionChanged(_ref5) {
680
+ var {
681
+ name: name,
682
+ value: value
683
+ } = _ref5;
684
+ var newConfig = {};
685
+ newConfig[name] = value;
686
+ this._buttonGroup.option("items[0]", extend({}, this._actionButtonConfig(), newConfig));
687
+ this._popup && this._popup.repaint();
688
+ },
689
+ _selectModeChanged(value) {
690
+ if (value) {
691
+ this._setListOption("selectionMode", "single");
692
+ var selectedItemKey = this.option("selectedItemKey");
693
+ this._setListOption("selectedItemKeys", isDefined(selectedItemKey) ? [selectedItemKey] : []);
694
+ this._selectedItemKeyChanged(this.option("selectedItemKey"));
695
+ } else {
696
+ this._setListOption("selectionMode", "none");
697
+ this.option({
698
+ selectedItemKey: void 0,
699
+ selectedItem: void 0
700
+ });
701
+ this._actionButtonOptionChanged({
702
+ text: this.option("text")
703
+ });
704
+ }
705
+ },
706
+ _updateItemCollection(optionName) {
707
+ var selectedItemKey = this.option("selectedItemKey");
708
+ this._setListOption("selectedItem", null);
709
+ this._setWidgetOption("_list", [optionName]);
710
+ if (isDefined(selectedItemKey)) {
711
+ this._loadSelectedItem().done(selectedItem => {
712
+ this._setListOption("selectedItemKeys", [selectedItemKey]);
713
+ this._setListOption("selectedItem", selectedItem);
714
+ }).fail(error => {
715
+ this._setListOption("selectedItemKeys", []);
716
+ }).always(this._updateActionButton.bind(this));
717
+ }
718
+ },
719
+ _updateDataSource: function() {
720
+ var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();
721
+ this._dataSource = void 0;
722
+ this._itemsToDataSource(items);
723
+ this._updateKeyExpr();
724
+ },
725
+ _updateKeyExpr: function() {
726
+ this._compileKeyGetter();
727
+ this._setListOption("keyExpr", this._getKey());
728
+ },
729
+ focus: function() {
730
+ this._buttonGroup.focus();
731
+ },
732
+ _optionChanged(args) {
733
+ var _this$_popup;
734
+ var {
735
+ name: name,
736
+ value: value
737
+ } = args;
738
+ switch (name) {
739
+ case "useSelectMode":
740
+ this._selectModeChanged(value);
741
+ break;
742
+ case "splitButton":
743
+ this._updateArrowClass();
744
+ this._renderButtonGroup();
745
+ break;
746
+ case "displayExpr":
747
+ this._compileDisplayGetter();
748
+ this._setListOption(name, value);
749
+ this._updateActionButton(this.option("selectedItem"));
750
+ break;
751
+ case "keyExpr":
752
+ this._updateDataSource();
753
+ break;
754
+ case "buttonGroupOptions":
755
+ this._innerWidgetOptionChanged(this._buttonGroup, args);
756
+ break;
757
+ case "dropDownOptions":
758
+ if ("dropDownOptions.visible" === args.fullName) {
759
+ break
760
+ }
761
+ if (void 0 !== args.value.visible) {
762
+ delete args.value.visible;
763
+ }
764
+ this._popupOptionChanged(args);
765
+ this._innerWidgetOptionChanged(this._popup, args);
766
+ break;
767
+ case "opened":
768
+ this.toggle(value);
769
+ break;
770
+ case "focusStateEnabled":
771
+ case "hoverStateEnabled":
772
+ this._setListOption(name, value);
773
+ this._buttonGroup.option(name, value);
774
+ this.callBase(args);
775
+ break;
776
+ case "items":
777
+ this._updateDataSource(this.option("items"));
778
+ this._updateItemCollection(name);
779
+ break;
780
+ case "dataSource":
781
+ if (Array.isArray(value)) {
782
+ this._updateDataSource(this.option("dataSource"));
783
+ } else {
784
+ this._initDataSource();
785
+ this._updateKeyExpr();
786
+ }
787
+ this._updateItemCollection(name);
788
+ break;
789
+ case "icon":
790
+ case "text":
791
+ this._actionButtonOptionChanged(args);
792
+ break;
793
+ case "showArrowIcon":
794
+ this._updateArrowClass();
795
+ this._renderButtonGroup();
796
+ this._popup && this._popup.repaint();
797
+ break;
798
+ case "width":
799
+ case "height":
800
+ this.callBase(args);
801
+ null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();
802
+ break;
803
+ case "stylingMode":
804
+ this._buttonGroup.option(name, value);
805
+ break;
806
+ case "itemTemplate":
807
+ case "grouped":
808
+ case "noDataText":
809
+ case "groupTemplate":
810
+ case "wrapItemText":
811
+ case "useItemTextAsTitle":
812
+ this._setListOption(name, value);
813
+ break;
814
+ case "dropDownContentTemplate":
815
+ this._renderContent();
816
+ break;
817
+ case "selectedItemKey":
818
+ this._selectedItemKeyChanged(value);
819
+ break;
820
+ case "selectedItem":
821
+ break;
822
+ case "onItemClick":
823
+ this._createItemClickAction();
824
+ break;
825
+ case "onButtonClick":
826
+ this._createActionClickAction();
827
+ break;
828
+ case "onSelectionChanged":
829
+ this._createSelectionChangedAction();
830
+ break;
831
+ case "deferRendering":
832
+ this.toggle(this.option("opened"));
833
+ break;
834
+ case "tabIndex":
835
+ this._buttonGroup.option(name, value);
836
+ break;
837
+ default:
838
+ this.callBase(args);
839
+ }
840
+ }
841
+ }).include(DataHelperMixin);
842
+ registerComponent("dxDropDownButton", DropDownButton);
843
+
844
+ const tttxPageCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto&display=swap\");*{box-sizing:border-box}.flex-start{justify-content:start}.flex-end{justify-content:end}.flex-centre{justify-content:center}[class^=col-]{display:flex;padding-left:8px !important;padding-right:8px !important}h1,h2,h3,h4,h5,h6,p,label,small{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,label{display:block}*{font-family:\"Roboto\", sans-serif}html,body{font-weight:normal;font-size:16px}h1{font-weight:700;font-size:24px}h2{font-weight:700;font-size:20px}h3{font-weight:700;font-size:18px}h4{font-weight:normal;font-size:14px;text-transform:uppercase}button{font-weight:500;font-size:14px;text-transform:uppercase}small{font-weight:normal;font-size:14px}label{font-weight:700;font-size:16px}:host{display:block}.page{background-color:#F0F0F0;width:100%;height:100%}.page__platform-bar.dx-toolbar{position:fixed;top:0px;left:0px;right:0px;background-color:#142748;color:#ffffff;font-size:24px;padding:0 8px}.page__title-bar__container,.page__title-bar__container--large,.page__title-bar__container--medium,.page__title-bar__container--small{position:fixed;top:52px;left:0px;right:0px}.page__title-bar__container .dx-toolbar,.page__title-bar__container--large .dx-toolbar,.page__title-bar__container--medium .dx-toolbar,.page__title-bar__container--small .dx-toolbar{color:#212121;background-color:#F0F0F0;font-size:24px}.page__title-bar__container,.page__title-bar__container--medium,.page__title-bar__container--small{margin:0px auto}.page__title-bar__container--large{margin:0px 16px}.page__title-bar__container--medium{width:900px}.page__title-bar__container--small{width:600px}.page__title-bar__after-container__label{font-size:14px;color:#757575;font-weight:300}.page__title-bar__after-container__value{font-size:14px;color:#111111;font-weight:400;margin:0 10px 0 0}.page__platform-bar__button .dx-button-mode-text .dx-icon{color:white}.page__platform-bar__button__dropdown-options .dx-dropdownbutton-content .dx-list .dx-list-item:last-of-type::before{width:90%;margin:auto 5%;height:1px;content:\"\";position:absolute;background:grey}";
845
+
846
+ const TttxPage$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
847
+ constructor() {
848
+ super();
849
+ this.__registerHost();
850
+ this.appName = undefined;
851
+ this.pageTitle = undefined;
852
+ this.lastUpdated = undefined;
853
+ this.manageAccountsUrl = undefined;
854
+ this.logoutUrl = undefined;
855
+ this.pageSize = 'large';
856
+ this.helpUrl = undefined;
857
+ }
858
+ componentDidLoad() {
859
+ new Toolbar(this.platformBar, {
860
+ items: [
861
+ {
862
+ location: 'before',
863
+ locateInMenu: 'never',
864
+ text: this.appName
865
+ },
866
+ {
867
+ location: 'after',
868
+ widget: DropDownButton,
869
+ cssClass: 'page__platform-bar__button',
870
+ options: {
871
+ icon: 'overflow',
872
+ keyExpr: 'id',
873
+ displayExpr: 'text',
874
+ stylingMode: 'text',
875
+ showArrowIcon: false,
876
+ dropDownOptions: { width: '200', wrapperAttr: { class: 'page__platform-bar__button__dropdown-options' } },
877
+ items: this.platformBarButtonItems()
878
+ }
879
+ }
880
+ ]
881
+ });
882
+ new Toolbar(this.pageTitleBar, {
883
+ items: [
884
+ {
885
+ location: 'before',
886
+ text: this.pageTitle
887
+ },
888
+ {
889
+ location: 'after',
890
+ html: `<span class='page__title-bar__after-container__label'>Last updated</span> <span class='page__title-bar__after-container__value'>${this.lastUpdated}</span>`
891
+ },
892
+ {
893
+ location: 'after',
894
+ widget: Button,
895
+ options: {
896
+ text: 'help',
897
+ icon: 'help',
898
+ stylingMode: 'outlined',
899
+ onClick: () => { window.open(this.helpUrl, '_blank'); }
900
+ }
901
+ }
902
+ ]
903
+ });
904
+ }
905
+ platformBarButtonItems() {
906
+ return [
907
+ { id: 1, text: 'Manage Accounts', icon: "user", onClick: () => { window.open(this.manageAccountsUrl, '_blank'); } },
908
+ { id: 2, text: 'Logout', icon: "runner", onClick: () => { window.location.href = this.logoutUrl; } }
909
+ ];
910
+ }
911
+ pageSizeIsNumeric() {
912
+ return /^\d+$/.test(this.pageSize);
913
+ }
914
+ pageSizeClasses(baseClassName) {
915
+ return this.pageSizeIsNumeric() ? baseClassName : `${baseClassName}--${this.pageSize}`;
916
+ }
917
+ render() {
918
+ const customPageWidth = this.pageSizeIsNumeric ? { width: `${this.pageSize}px` } : {};
919
+ return (h(Host, { style: { margin: '0px', overflow: 'hidden' } }, h("div", { class: "page" }, h("div", { class: 'page__platform-bar', ref: el => (this.platformBar = el) }), h("div", { class: this.pageSizeClasses('page__title-bar__container'), style: Object.assign({}, customPageWidth) }, h("div", { ref: el => (this.pageTitleBar = el) })), h("tttx-worksheet", { pageSize: this.pageSize }))));
920
+ }
921
+ static get style() { return tttxPageCss; }
922
+ }, [0, "tttx-page", {
923
+ "appName": [1, "app-name"],
924
+ "pageTitle": [1, "page-title"],
925
+ "lastUpdated": [1, "last-updated"],
926
+ "manageAccountsUrl": [1, "manage-accounts-url"],
927
+ "logoutUrl": [1, "logout-url"],
928
+ "pageSize": [1, "page-size"],
929
+ "helpUrl": [1, "help-url"]
930
+ }]);
931
+ function defineCustomElement$1() {
932
+ if (typeof customElements === "undefined") {
933
+ return;
934
+ }
935
+ const components = ["tttx-page", "tttx-worksheet"];
936
+ components.forEach(tagName => { switch (tagName) {
937
+ case "tttx-page":
938
+ if (!customElements.get(tagName)) {
939
+ customElements.define(tagName, TttxPage$1);
940
+ }
941
+ break;
942
+ case "tttx-worksheet":
943
+ if (!customElements.get(tagName)) {
944
+ defineCustomElement$2();
945
+ }
946
+ break;
947
+ } });
948
+ }
949
+
950
+ const TttxPage = TttxPage$1;
951
+ const defineCustomElement = defineCustomElement$1;
952
+
953
+ export { TttxPage, defineCustomElement };