@qtoggle/qui 0.0.0
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/.eslintignore +2 -0
- package/.eslintrc.json +492 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- package/.github/ISSUE_TEMPLATE/improvement_proposal.md +20 -0
- package/.github/workflows/main.yml +74 -0
- package/.pre-commit-config.yaml +8 -0
- package/LICENSE.txt +177 -0
- package/README.md +4 -0
- package/font/dejavusans-bold.woff +0 -0
- package/font/dejavusans-bolditalic.woff +0 -0
- package/font/dejavusans-italic.woff +0 -0
- package/font/dejavusans-regular.woff +0 -0
- package/img/qui-icons.svg +1937 -0
- package/js/base/base.js +47 -0
- package/js/base/condition-variable.js +92 -0
- package/js/base/errors.js +36 -0
- package/js/base/i18n.js +20 -0
- package/js/base/mixwith.js +135 -0
- package/js/base/require-js-compat.js +78 -0
- package/js/base/signal.js +91 -0
- package/js/base/singleton.js +66 -0
- package/js/base/timer.js +126 -0
- package/js/config.js +184 -0
- package/js/forms/common-fields/check-field.js +42 -0
- package/js/forms/common-fields/choice-buttons-field.js +30 -0
- package/js/forms/common-fields/color-combo-field.js +37 -0
- package/js/forms/common-fields/combo-field.js +108 -0
- package/js/forms/common-fields/common-fields.js +23 -0
- package/js/forms/common-fields/composite-field.js +132 -0
- package/js/forms/common-fields/custom-html-field.js +51 -0
- package/js/forms/common-fields/email-field.js +30 -0
- package/js/forms/common-fields/file-picker-field.js +46 -0
- package/js/forms/common-fields/jquery-ui-field.js +111 -0
- package/js/forms/common-fields/labels-field.js +69 -0
- package/js/forms/common-fields/numeric-field.js +39 -0
- package/js/forms/common-fields/password-field.js +28 -0
- package/js/forms/common-fields/phone-field.js +26 -0
- package/js/forms/common-fields/progress-disk-field.js +69 -0
- package/js/forms/common-fields/push-button-field.js +138 -0
- package/js/forms/common-fields/slider-field.js +51 -0
- package/js/forms/common-fields/text-area-field.js +34 -0
- package/js/forms/common-fields/text-field.js +89 -0
- package/js/forms/common-fields/up-down-field.js +85 -0
- package/js/forms/common-forms/common-forms.js +16 -0
- package/js/forms/common-forms/options-form.js +77 -0
- package/js/forms/common-forms/page-form.js +115 -0
- package/js/forms/form-button.js +202 -0
- package/js/forms/form-field.js +1183 -0
- package/js/forms/form.js +1181 -0
- package/js/forms/forms.js +68 -0
- package/js/global-glass.js +100 -0
- package/js/icons/default-stock.js +173 -0
- package/js/icons/icon.js +64 -0
- package/js/icons/icons.js +16 -0
- package/js/icons/multi-state-sprites-icon.js +362 -0
- package/js/icons/stock-icon.js +219 -0
- package/js/icons/stock.js +98 -0
- package/js/icons/stocks.js +57 -0
- package/js/index.js +232 -0
- package/js/lib/jquery.longpress.js +79 -0
- package/js/lib/jquery.module.js +4 -0
- package/js/lib/logger.module.js +4 -0
- package/js/lib/pep.module.js +4 -0
- package/js/lists/common-items/common-items.js +5 -0
- package/js/lists/common-items/icon-label-list-item.js +86 -0
- package/js/lists/common-lists/common-lists.js +5 -0
- package/js/lists/common-lists/page-list.js +53 -0
- package/js/lists/list-item.js +147 -0
- package/js/lists/list.js +636 -0
- package/js/lists/lists.js +26 -0
- package/js/main-ui/main-ui.js +64 -0
- package/js/main-ui/menu-bar.js +144 -0
- package/js/main-ui/options-bar.js +181 -0
- package/js/main-ui/status.js +185 -0
- package/js/main-ui/top-bar.js +59 -0
- package/js/messages/common-message-forms/common-message-forms.js +7 -0
- package/js/messages/common-message-forms/confirm-message-form.js +81 -0
- package/js/messages/common-message-forms/simple-message-form.js +67 -0
- package/js/messages/common-message-forms/sticky-simple-message-form.js +27 -0
- package/js/messages/message-form.js +107 -0
- package/js/messages/messages.js +21 -0
- package/js/messages/sticky-modal-page.js +98 -0
- package/js/messages/sticky-modal-progress-message.js +27 -0
- package/js/messages/toast.js +164 -0
- package/js/navigation.js +654 -0
- package/js/pages/breadcrumbs.js +124 -0
- package/js/pages/common-pages/common-pages.js +6 -0
- package/js/pages/common-pages/modal-progress-page.js +83 -0
- package/js/pages/common-pages/structured-page.js +46 -0
- package/js/pages/page.js +1018 -0
- package/js/pages/pages-context.js +154 -0
- package/js/pages/pages.js +252 -0
- package/js/pwa.js +337 -0
- package/js/sections/section.js +612 -0
- package/js/sections/sections.js +300 -0
- package/js/tables/common-cells/common-cells.js +7 -0
- package/js/tables/common-cells/icon-label-table-cell.js +68 -0
- package/js/tables/common-cells/push-button-table-cell.js +133 -0
- package/js/tables/common-cells/simple-table-cell.js +37 -0
- package/js/tables/common-tables/common-tables.js +5 -0
- package/js/tables/common-tables/page-table.js +55 -0
- package/js/tables/table-cell.js +198 -0
- package/js/tables/table-row.js +126 -0
- package/js/tables/table.js +492 -0
- package/js/tables/tables.js +36 -0
- package/js/theme.js +304 -0
- package/js/utils/ajax.js +126 -0
- package/js/utils/array.js +194 -0
- package/js/utils/colors.js +445 -0
- package/js/utils/cookies.js +65 -0
- package/js/utils/crypto.js +439 -0
- package/js/utils/css.js +234 -0
- package/js/utils/date.js +300 -0
- package/js/utils/files.js +27 -0
- package/js/utils/gestures.js +165 -0
- package/js/utils/html.js +76 -0
- package/js/utils/misc.js +81 -0
- package/js/utils/object.js +324 -0
- package/js/utils/promise.js +49 -0
- package/js/utils/string.js +192 -0
- package/js/utils/url.js +187 -0
- package/js/utils/utils.js +3 -0
- package/js/utils/visibility-manager.js +211 -0
- package/js/views/common-views/common-views.js +7 -0
- package/js/views/common-views/icon-label-view.js +210 -0
- package/js/views/common-views/progress-view.js +89 -0
- package/js/views/common-views/structured-view.js +368 -0
- package/js/views/view.js +467 -0
- package/js/views/views.js +3 -0
- package/js/widgets/base-widget.js +23 -0
- package/js/widgets/common-widgets/check-button.js +109 -0
- package/js/widgets/common-widgets/choice-buttons.js +322 -0
- package/js/widgets/common-widgets/color-combo.js +104 -0
- package/js/widgets/common-widgets/combo.js +645 -0
- package/js/widgets/common-widgets/common-widgets.js +17 -0
- package/js/widgets/common-widgets/email-input.js +7 -0
- package/js/widgets/common-widgets/file-picker.js +133 -0
- package/js/widgets/common-widgets/labels.js +132 -0
- package/js/widgets/common-widgets/numeric-input.js +49 -0
- package/js/widgets/common-widgets/password-input.js +91 -0
- package/js/widgets/common-widgets/phone-input.js +7 -0
- package/js/widgets/common-widgets/progress-disk.js +174 -0
- package/js/widgets/common-widgets/push-button.js +155 -0
- package/js/widgets/common-widgets/slider.js +455 -0
- package/js/widgets/common-widgets/text-area.js +52 -0
- package/js/widgets/common-widgets/text-input.js +174 -0
- package/js/widgets/common-widgets/up-down.js +351 -0
- package/js/widgets/widgets.js +57 -0
- package/js/window.js +557 -0
- package/jsdoc.conf.json +20 -0
- package/less/base.less +123 -0
- package/less/forms/common-fields.less +101 -0
- package/less/forms/common-forms.less +5 -0
- package/less/forms/form-button.less +21 -0
- package/less/forms/form-field.less +266 -0
- package/less/forms/form.less +131 -0
- package/less/global-glass.less +64 -0
- package/less/icon-label-view.less +82 -0
- package/less/icons.less +144 -0
- package/less/lists.less +105 -0
- package/less/main-ui.less +328 -0
- package/less/messages.less +189 -0
- package/less/no-effects.less +24 -0
- package/less/pages/breadcrumbs.less +98 -0
- package/less/pages/common-pages.less +36 -0
- package/less/pages/page.less +70 -0
- package/less/progress-view.less +51 -0
- package/less/stock-icons.less +43 -0
- package/less/structured-view.less +245 -0
- package/less/tables.less +84 -0
- package/less/theme-dark.less +133 -0
- package/less/theme-light.less +132 -0
- package/less/theme.less +419 -0
- package/less/visibility-manager.less +11 -0
- package/less/widgets/check-button.less +96 -0
- package/less/widgets/choice-buttons.less +160 -0
- package/less/widgets/color-combo.less +33 -0
- package/less/widgets/combo.less +230 -0
- package/less/widgets/common-buttons.less +120 -0
- package/less/widgets/common.less +24 -0
- package/less/widgets/input.less +258 -0
- package/less/widgets/labels.less +81 -0
- package/less/widgets/progress-disk.less +70 -0
- package/less/widgets/slider.less +199 -0
- package/less/widgets/updown.less +115 -0
- package/less/widgets/various.less +36 -0
- package/package.json +47 -0
- package/pyproject.toml +45 -0
- package/qui/__init__.py +110 -0
- package/qui/constants.py +1 -0
- package/qui/exceptions.py +2 -0
- package/qui/j2template.py +71 -0
- package/qui/settings.py +60 -0
- package/qui/templates/manifest.json +25 -0
- package/qui/templates/qui.html +126 -0
- package/qui/templates/service-worker.js +188 -0
- package/qui/web/__init__.py +0 -0
- package/qui/web/tornado.py +220 -0
- package/scripts/postinstall.sh +10 -0
- package/webpack/webpack-adjust-css-urls-loader.js +36 -0
- package/webpack/webpack-common.js +384 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
|
|
2
|
+
import $ from '$qui/lib/jquery.module.js'
|
|
3
|
+
|
|
4
|
+
import {mix} from '$qui/base/mixwith.js'
|
|
5
|
+
import * as Tables from '$qui/tables/tables.js'
|
|
6
|
+
import VisibilityManager from '$qui/utils/visibility-manager.js'
|
|
7
|
+
import ViewMixin from '$qui/views/view.js'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A table cell.
|
|
12
|
+
* @alias qui.tables.TableCell
|
|
13
|
+
* @mixes qui.views.ViewMixin
|
|
14
|
+
*/
|
|
15
|
+
class TableCell extends mix().with(ViewMixin) {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @constructs
|
|
19
|
+
* @param {*} [initialValue] an optional initial value for the cell
|
|
20
|
+
* @param {?String} [horizontalAlign] horizontal alignment; uses table settings by default; one of:
|
|
21
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_LEFT}
|
|
22
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_CENTER}
|
|
23
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_RIGHT}
|
|
24
|
+
* @param {?String} [verticalAlign] vertical alignment; uses table settings by default; one of:
|
|
25
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_TOP}
|
|
26
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_CENTER}
|
|
27
|
+
* * {@link qui.tables.TABLE_CELL_ALIGN_BOTTOM}
|
|
28
|
+
* @param {...*} args parent class parameters
|
|
29
|
+
*/
|
|
30
|
+
constructor({
|
|
31
|
+
initialValue = null,
|
|
32
|
+
horizontalAlign = null,
|
|
33
|
+
verticalAlign = null,
|
|
34
|
+
...args
|
|
35
|
+
} = {}) {
|
|
36
|
+
|
|
37
|
+
super(args)
|
|
38
|
+
|
|
39
|
+
this._value = initialValue
|
|
40
|
+
this._horizontalAlign = horizontalAlign
|
|
41
|
+
this._verticalAlign = verticalAlign
|
|
42
|
+
|
|
43
|
+
this._visibilityManager = null
|
|
44
|
+
this._row = null
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
makeHTML() {
|
|
48
|
+
let html = $('<div></div>', {class: 'qui-table-cell'})
|
|
49
|
+
|
|
50
|
+
/* Decide on horizontal alignment */
|
|
51
|
+
let horizontalAlign = this._horizontalAlign
|
|
52
|
+
if (!horizontalAlign) {
|
|
53
|
+
let index = this._row.getCellIndex(this)
|
|
54
|
+
if (index >= 0) {
|
|
55
|
+
let defaultHorizontalAlign = this._row.getTable().getHorizontalAlign()
|
|
56
|
+
if (defaultHorizontalAlign) {
|
|
57
|
+
horizontalAlign = defaultHorizontalAlign[index]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (!horizontalAlign) {
|
|
62
|
+
horizontalAlign = Tables.TABLE_CELL_ALIGN_CENTER /* The very default */
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Decide on vertical alignment */
|
|
66
|
+
let verticalAlign = this._verticalAlign
|
|
67
|
+
if (!verticalAlign) {
|
|
68
|
+
let index = this._row.getCellIndex(this)
|
|
69
|
+
if (index >= 0) {
|
|
70
|
+
let defaultVerticalAlign = this._row.getTable().getVerticalAlign()
|
|
71
|
+
if (defaultVerticalAlign) {
|
|
72
|
+
verticalAlign = defaultVerticalAlign[index]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!verticalAlign) {
|
|
77
|
+
verticalAlign = Tables.TABLE_CELL_ALIGN_CENTER /* The very default */
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
html.addClass(`horizontal-align-${horizontalAlign}`)
|
|
81
|
+
html.addClass(`vertical-align-${verticalAlign}`)
|
|
82
|
+
html.html(this.makeContent())
|
|
83
|
+
|
|
84
|
+
this._visibilityManager = new VisibilityManager({element: html})
|
|
85
|
+
|
|
86
|
+
return html
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
init() {
|
|
90
|
+
if (this._value != null) {
|
|
91
|
+
this.showValue(this._value)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Implement this method to create the actual table cell content.
|
|
97
|
+
* @abstract
|
|
98
|
+
* @returns {jQuery}
|
|
99
|
+
*/
|
|
100
|
+
makeContent() {
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
/* Visibility */
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Show the cell.
|
|
108
|
+
*/
|
|
109
|
+
show() {
|
|
110
|
+
this._visibilityManager.showElement()
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Hide the cell.
|
|
115
|
+
*/
|
|
116
|
+
hide() {
|
|
117
|
+
this._visibilityManager.hideElement()
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
/* Value */
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Return the current value.
|
|
125
|
+
* @returns {*}
|
|
126
|
+
*/
|
|
127
|
+
getValue() {
|
|
128
|
+
return this._value
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Set the current value.
|
|
133
|
+
* @param {*} value
|
|
134
|
+
*/
|
|
135
|
+
setValue(value) {
|
|
136
|
+
this._value = value
|
|
137
|
+
this.showValue(value)
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Implement this method to display the value in the cell content.
|
|
142
|
+
* @abstract
|
|
143
|
+
* @param {*} value
|
|
144
|
+
*/
|
|
145
|
+
showValue(value) {
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
/* Selection */
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Tell if cell is selected or not.
|
|
153
|
+
*/
|
|
154
|
+
isSelected() {
|
|
155
|
+
return this.getHTML().hasClass('selected')
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Select or deselect cell.
|
|
160
|
+
* @param {Boolean} selected
|
|
161
|
+
*/
|
|
162
|
+
setSelected(selected) {
|
|
163
|
+
this.getHTML().toggleClass('selected', selected)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Set select mode. This is internally called by owning {@link qui.tables.TableRow}.
|
|
168
|
+
* @param {String} selectMode one of:
|
|
169
|
+
* * {@link qui.lists.LIST_SELECT_MODE_DISABLED}
|
|
170
|
+
* * {@link qui.lists.LIST_SELECT_MODE_SINGLE} (default)
|
|
171
|
+
* * {@link qui.lists.LIST_SELECT_MODE_MULTIPLE}
|
|
172
|
+
*/
|
|
173
|
+
setSelectMode(selectMode) {
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
/* Table row */
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Return the owning row.
|
|
181
|
+
* @returns {qui.tables.TableRow}
|
|
182
|
+
*/
|
|
183
|
+
getRow() {
|
|
184
|
+
return this._row
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Set the owning row.
|
|
189
|
+
* @param {qui.tables.TableRow} row
|
|
190
|
+
*/
|
|
191
|
+
setRow(row) {
|
|
192
|
+
this._row = row
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
export default TableCell
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
|
|
2
|
+
import $ from '$qui/lib/jquery.module.js'
|
|
3
|
+
|
|
4
|
+
import ListItem from '$qui/lists/list-item.js'
|
|
5
|
+
import * as Lists from '$qui/lists/lists.js'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A table row.
|
|
10
|
+
* @alias qui.tables.TableRow
|
|
11
|
+
* @extends qui.lists.ListItem
|
|
12
|
+
*/
|
|
13
|
+
class TableRow extends ListItem {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @constructs
|
|
17
|
+
* @param {qui.tables.TableCell[]} cells table cells
|
|
18
|
+
* @param {Array} [initialValues] optional initial values
|
|
19
|
+
* @param {...*} args parent class parameters
|
|
20
|
+
*/
|
|
21
|
+
constructor({cells, initialValues = null, ...args}) {
|
|
22
|
+
super(args)
|
|
23
|
+
|
|
24
|
+
this._cells = cells
|
|
25
|
+
this._initialValues = initialValues
|
|
26
|
+
|
|
27
|
+
this._cells.forEach(c => this.prepareCell(c))
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
init() {
|
|
31
|
+
|
|
32
|
+
if (this._initialValues != null) {
|
|
33
|
+
this.setValues(this._initialValues)
|
|
34
|
+
this._initialValues = null /* Don't waste memory */
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
initHTML(html) {
|
|
39
|
+
html.addClass('qui-table-row')
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
makeContent() {
|
|
43
|
+
return this._cells.reduce((a, c) => a.add(c.getHTML()), $())
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
/* Cells */
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Return row cells.
|
|
51
|
+
* @returns {qui.tables.TableCell[]}
|
|
52
|
+
*/
|
|
53
|
+
getCells() {
|
|
54
|
+
return this._cells.slice()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Prepare cell to be part of this row.
|
|
59
|
+
* @param {qui.tables.TableCell} cell
|
|
60
|
+
*/
|
|
61
|
+
prepareCell(cell) {
|
|
62
|
+
cell.setRow(this)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Return the index of the given cell. If the field does not belong to this row, `-1` is returned.
|
|
67
|
+
* @param {qui.tables.TableCell} cell the cell
|
|
68
|
+
* @returns {Number}
|
|
69
|
+
*/
|
|
70
|
+
getCellIndex(cell) {
|
|
71
|
+
return this._cells.indexOf(cell)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* Values */
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Return the current values of the cells.
|
|
79
|
+
* @returns {Array}
|
|
80
|
+
*/
|
|
81
|
+
getValues() {
|
|
82
|
+
return this._cells.map(c => c.getValue())
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Set row values. If more values than needed are supplied, extra values are ignored. If less values are supplied,
|
|
87
|
+
* extra cells are left unchanged.
|
|
88
|
+
* @param {Array} values
|
|
89
|
+
* @param {Number} [index] optional start index (defaults to `0`)
|
|
90
|
+
*/
|
|
91
|
+
setValues(values, index = 0) {
|
|
92
|
+
let cells = this._cells.slice(index, index + values.length)
|
|
93
|
+
cells.forEach((c, i) => c.setValue(values[i]))
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
/* Selection */
|
|
98
|
+
|
|
99
|
+
setSelectMode(selectMode) {
|
|
100
|
+
/* Forward select mode to cells */
|
|
101
|
+
this._cells.forEach(c => c.setSelectMode(selectMode))
|
|
102
|
+
|
|
103
|
+
this.getHTML().toggleClass('qui-base-button', selectMode !== Lists.LIST_SELECT_MODE_DISABLED)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
setSelected(selected) {
|
|
107
|
+
super.setSelected(selected)
|
|
108
|
+
|
|
109
|
+
this._cells.forEach(c => c.setSelected(selected))
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
/* Table */
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Return the owning table.
|
|
117
|
+
* @returns {qui.tables.Table}
|
|
118
|
+
*/
|
|
119
|
+
getTable() {
|
|
120
|
+
return /** @type qui.tables.Table */ this.getList()
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
export default TableRow
|