@qnc/qnc_data_tables 1.0.13 → 1.1.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/README.md CHANGED
@@ -38,6 +38,70 @@ qnc-data-table elements do not render any kind of "selection action buttons" (ie
38
38
 
39
39
  If you want to define your selection action buttons in your backend (ie. initial page html), we recommend using register_selection_fieldset_controller_custom_element.
40
40
 
41
+ ## Cell options / transformations
42
+
43
+ The cell content (html) returned by the backend will undergo one of several possible transformations, depending on what that html specifies. I don't like this approach, but it seems to be the only way to support several important patterns while protecting from common pitfalls.
44
+
45
+ Here we describe the different transformations in the same order in which we test the content. This is, roughly speaking, least common to most common.
46
+
47
+ In the subsequent sections, when we talk about "cell html matching an element", we mean that the string of html represents one complete element, with no surrounding text (not even whitespace). `<b>Something</b>` matches a `b` element, but ` <b>Something</b>` does not.
48
+
49
+ ### <* data-qdt-full-cell>
50
+
51
+ If the cell html matches one element with attribute `data-qdt-full-cell`, then that element will be used directly as the entire cell. It's parent element is a flex container, which will stretch it to the width of the column and height of the row.
52
+
53
+ It will match a CSS selector with a specificity of 1 class applying the following rules:
54
+
55
+ ```
56
+ .some-class-selector {
57
+ padding: var(--qdt-cell-vertical-padding) var(--qdt-cell-horizontal-padding);
58
+ }
59
+ ```
60
+
61
+ You may change the padding, as you see fit.
62
+
63
+ With this approach, you're opting out of our techniques for aligning the content within the cell. You're on your own.
64
+
65
+ If you set display to `flex` or `grid` on such an element, and that element has direct text node childen, then our `text-overflow: ellipsis` style won't work reliably.
66
+
67
+
68
+ ### <a> or <div>
69
+
70
+ If the cell html matches exactly one `a` or `div` element, then that element will be used directly as the entire cell. It's parent element is a flex container, which will stretch it to the width of the column and height of the row.
71
+
72
+ The element will "receive" standard padding, horizontal alignment (of children), and vertical alignment (of children). Specifically, it will match:
73
+
74
+ ```
75
+ .some-class-selector {
76
+ padding: var(--qdt-cell-vertical-padding) var(--qdt-cell-horizontal-padding);
77
+ display: flex;
78
+ align-items: var(--qdt-cell-align-items); /* for vertical alignment */
79
+ justify-content: var(--qdt-cell-justify-content); /* for horizontal alignment */
80
+ }
81
+ ```
82
+
83
+ You may change the padding, as you see fit.
84
+ You may change the `align-items` or `justify-content` to set the vertical or horizontal alignment to something that differs from that of the table/column.
85
+
86
+ Whatever content is inside this element will automatically be wrapped in an extra `div`. This serves two purposes:
87
+ - restores standard flow layout (while allowing us to align the content as a group)
88
+ - enables `text-overflow: ellipsis;` to work on text nodes (if they were directly inside the flex parent, then text-overflow wouldn't work)
89
+
90
+ The purpose of using a "div wrapper" is to allow you to change the padding or content alignment (via the style attribute).
91
+
92
+ The purpose of using a "link wrapper" is to allow the entire cell to be clickable (and you can also change padding or alignment via style attribute).
93
+
94
+
95
+ ### <button> or <label>
96
+
97
+ These behave just like `a` / `div` elements, except that their content is wrapped in a span, instead of a div (since neither of these elements may have div children, according to the HTML spec).
98
+
99
+ As with link elements, the purpose here is to create full-cell clickable elements.
100
+
101
+ ### Anything else
102
+
103
+ Any other content will be wrapped in two nested `div` elements. The outer one has the padding and display flex. The inner one is "plain". You have no ability to change the padding or alignment.
104
+
41
105
  ## Common Patterns
42
106
 
43
107
  ### Triggering all tables on the page to reload
@@ -56,6 +120,5 @@ for (const table of document.querySelectorAll('qnc-data-table, qnc-data-table-ad
56
120
 
57
121
 
58
122
  ## TODO
59
-
60
123
  - Move column controls into top control bar, use qnc-dialog instead of details
61
124
  - clean up styling, document how to customize (use custom css properties on the root element?)
@@ -37,6 +37,8 @@ type ManagedColumn = {
37
37
  sortable: boolean;
38
38
  enabled: boolean;
39
39
  width: number;
40
+ horizontal_alignment?: string;
41
+ data_vertical_alignment?: string;
40
42
  };
41
43
  type ColumnList = ReadonlyArray<Readonly<ManagedColumn>>;
42
44
  export type ConfiguredColumn = Readonly<ManagedColumn>;
@@ -143,6 +143,8 @@ type ManagedColumn = {
143
143
  sortable: boolean;
144
144
  enabled: boolean;
145
145
  width: number;
146
+ horizontal_alignment?: string;
147
+ data_vertical_alignment?: string;
146
148
  };
147
149
 
148
150
  type ColumnList = ReadonlyArray<Readonly<ManagedColumn>>;
@@ -8,7 +8,7 @@ import { read_options_from_json_string } from "./table_options.js";
8
8
  import { create_mithril_app } from "./create_mithril_app.js";
9
9
  import { TableManager } from "./table_manager.js";
10
10
  import { StateMachine } from "./state_machine.js";
11
- import { conditionally_wrapped_element } from "./conditionally_wrapped_element.js";
11
+ import { prepare_cell_html } from "./prepare_cell_html.js";
12
12
  import { redraw } from "mithril";
13
13
  /**
14
14
  Register the given tag name with customElements as data-table container which always uses the given Renderer.
@@ -57,7 +57,7 @@ _BaseQncDataTable_instances = new WeakSet(), _BaseQncDataTable_setup = function
57
57
  const config = this.getAttribute("table-config");
58
58
  if (!config)
59
59
  throw new Error("[table-config] attribute is required");
60
- const state_machine = new StateMachine(read_options_from_json_string(config), (html) => conditionally_wrapped_element(html).outerHTML, this, (state) => redraw());
60
+ const state_machine = new StateMachine(read_options_from_json_string(config), (html) => prepare_cell_html(html).outerHTML, this, (state) => redraw());
61
61
  create_mithril_app(this, state_machine, this.renderer);
62
62
  this._table_manager = new TableManager(state_machine, this);
63
63
  };
@@ -3,7 +3,7 @@ import { read_options_from_json_string } from "./table_options.js";
3
3
  import { create_mithril_app } from "./create_mithril_app.js";
4
4
  import { TableManager } from "./table_manager.js";
5
5
  import { StateMachine } from "./state_machine.js";
6
- import { conditionally_wrapped_element } from "./conditionally_wrapped_element.js";
6
+ import { prepare_cell_html } from "./prepare_cell_html.js";
7
7
  import { redraw, Vnode } from "mithril";
8
8
  import { AppState } from "./state_types.js";
9
9
 
@@ -47,7 +47,7 @@ export class BaseQncDataTable extends HTMLElement {
47
47
 
48
48
  const state_machine = new StateMachine(
49
49
  read_options_from_json_string(config),
50
- (html) => conditionally_wrapped_element(html).outerHTML,
50
+ (html) => prepare_cell_html(html).outerHTML,
51
51
  this,
52
52
  (state: AppState<string>) => redraw(),
53
53
  );
@@ -188,8 +188,14 @@ function header_cell(renderer, column, sort_state_interpreter, updaters, fixed,
188
188
  width: column.width + "px",
189
189
  },
190
190
  class: classes("qdt-cell", "qdt-resizable-header", fixed && `qnc-data-table-fixed-cell-${CSS.escape(table_key)}`),
191
- }, m("div", // the only reason this div is here is so that it has "overflow: hidden;", while the parent element has "overflow: visible" (to allow resize handle to overflow)
192
- renderer.render_header({
191
+ }, m("div", // serves two purposes: it has "overflow: hidden;", while the parent element has "overflow: visible" (to allow resize handle to overflow); also allows us to use flexbox for alignment
192
+ {
193
+ style: {
194
+ display: "flex",
195
+ justifyContent: column.horizontal_alignment,
196
+ alignItems: "center", // No strong opinion on default vertical alignment for headers; center seems reasonable
197
+ },
198
+ }, renderer.render_header({
193
199
  label: renderer.render_with_optional_help_text(column.display, column.help_text),
194
200
  sortable: column.sortable,
195
201
  sorted: sort_direction || "no",
@@ -248,6 +254,8 @@ function data_cell(column, content, fixed, table_key) {
248
254
  role: "cell",
249
255
  style: {
250
256
  width: column.width + "px",
257
+ "--qdt-cell-justify-content": column.horizontal_alignment,
258
+ "--qdt-cell-align-items": column.data_vertical_alignment,
251
259
  },
252
260
  class: classes("qdt-cell", fixed && `qnc-data-table-fixed-cell-${CSS.escape(table_key)}`),
253
261
  }, content);
@@ -265,7 +273,7 @@ function empty_checkbox_cell(table_key) {
265
273
  className: `qdt-cell qnc-data-table-fixed-cell-${CSS.escape(table_key)}`,
266
274
  },
267
275
  // Render an invisible checkbox, so this header cell takes up the same width as the rest of the checkbox cells
268
- m("label", { className: "qdt-row-checkbox-label" }, m("input", {
276
+ m("label", { className: "qdt-row-checkbox-label qdt-flex-cell" }, m("input", {
269
277
  type: "checkbox",
270
278
  style: {
271
279
  visibility: "hidden",
@@ -280,7 +288,7 @@ function checkbox_cell(pk, updaters, selected_pks, table_key) {
280
288
  role: "cell",
281
289
  style: { width: "auto" }, // This is the only auto-width column; it works because every row has the same content
282
290
  className: `qdt-cell qnc-data-table-fixed-cell-${CSS.escape(table_key)}`,
283
- }, m("label", { className: "qdt-row-checkbox-label" }, m("input", {
291
+ }, m("label", { className: "qdt-row-checkbox-label qdt-flex-cell" }, m("input", {
284
292
  type: "checkbox",
285
293
  checked: selected_pks.has(pk),
286
294
  onchange: (e) => {
@@ -423,7 +423,14 @@ function header_cell(
423
423
  },
424
424
 
425
425
  m(
426
- "div", // the only reason this div is here is so that it has "overflow: hidden;", while the parent element has "overflow: visible" (to allow resize handle to overflow)
426
+ "div", // serves two purposes: it has "overflow: hidden;", while the parent element has "overflow: visible" (to allow resize handle to overflow); also allows us to use flexbox for alignment
427
+ {
428
+ style: {
429
+ display: "flex",
430
+ justifyContent: column.horizontal_alignment,
431
+ alignItems: "center", // No strong opinion on default vertical alignment for headers; center seems reasonable
432
+ },
433
+ },
427
434
  renderer.render_header({
428
435
  label: renderer.render_with_optional_help_text(
429
436
  column.display,
@@ -554,6 +561,8 @@ function data_cell(
554
561
  role: "cell",
555
562
  style: {
556
563
  width: column.width + "px",
564
+ "--qdt-cell-justify-content": column.horizontal_alignment,
565
+ "--qdt-cell-align-items": column.data_vertical_alignment,
557
566
  },
558
567
  class: classes(
559
568
  "qdt-cell",
@@ -598,7 +607,7 @@ function empty_checkbox_cell(table_key: string) {
598
607
  // Render an invisible checkbox, so this header cell takes up the same width as the rest of the checkbox cells
599
608
  m(
600
609
  "label",
601
- { className: "qdt-row-checkbox-label" },
610
+ { className: "qdt-row-checkbox-label qdt-flex-cell" },
602
611
  m("input", {
603
612
  type: "checkbox",
604
613
  style: {
@@ -629,7 +638,7 @@ function checkbox_cell(
629
638
  },
630
639
  m(
631
640
  "label",
632
- { className: "qdt-row-checkbox-label" },
641
+ { className: "qdt-row-checkbox-label qdt-flex-cell" },
633
642
  m("input", {
634
643
  type: "checkbox",
635
644
  checked: selected_pks.has(pk),
@@ -0,0 +1,5 @@
1
+ /**
2
+ If html represents exactly one node, and that node is an HTMLElement, return that element.
3
+ Otherwise, wrap in a div.
4
+ */
5
+ export declare function prepare_cell_html(html: string): HTMLElement;
@@ -0,0 +1,38 @@
1
+ /**
2
+ If html represents exactly one node, and that node is an HTMLElement, return that element.
3
+ Otherwise, wrap in a div.
4
+ */
5
+ export function prepare_cell_html(html) {
6
+ const t = document.createElement("template");
7
+ t.innerHTML = html;
8
+ if (t.content.childNodes.length == 1 &&
9
+ t.content.children[0] instanceof HTMLElement) {
10
+ const element = t.content.children[0];
11
+ if (element.hasAttribute("data-qdt-full-cell"))
12
+ return element;
13
+ if (element instanceof HTMLDivElement ||
14
+ element instanceof HTMLAnchorElement) {
15
+ return as_flex_container(element, "div");
16
+ }
17
+ if (element instanceof HTMLButtonElement ||
18
+ element instanceof HTMLLabelElement) {
19
+ return as_flex_container(element, "span");
20
+ }
21
+ return doubly_wrapped(html);
22
+ }
23
+ return doubly_wrapped(html);
24
+ }
25
+ function as_flex_container(element, wrapper_tag) {
26
+ const inner = document.createElement(wrapper_tag);
27
+ for (const child of Array.from(element.childNodes)) {
28
+ inner.appendChild(child);
29
+ }
30
+ element.appendChild(inner);
31
+ element.classList.add("qdt-flex-cell");
32
+ return element;
33
+ }
34
+ function doubly_wrapped(content) {
35
+ const outer = document.createElement("div");
36
+ outer.innerHTML = content;
37
+ return as_flex_container(outer, "div");
38
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ If html represents exactly one node, and that node is an HTMLElement, return that element.
3
+ Otherwise, wrap in a div.
4
+ */
5
+ export function prepare_cell_html(html: string): HTMLElement {
6
+ const t = document.createElement("template");
7
+ t.innerHTML = html;
8
+ if (
9
+ t.content.childNodes.length == 1 &&
10
+ t.content.children[0] instanceof HTMLElement
11
+ ) {
12
+ const element = t.content.children[0];
13
+ if (element.hasAttribute("data-qdt-full-cell")) return element;
14
+
15
+ if (
16
+ element instanceof HTMLDivElement ||
17
+ element instanceof HTMLAnchorElement
18
+ ) {
19
+ return as_flex_container(element, "div");
20
+ }
21
+ if (
22
+ element instanceof HTMLButtonElement ||
23
+ element instanceof HTMLLabelElement
24
+ ) {
25
+ return as_flex_container(element, "span");
26
+ }
27
+ return doubly_wrapped(html);
28
+ }
29
+ return doubly_wrapped(html);
30
+ }
31
+
32
+ function as_flex_container(
33
+ element: HTMLElement,
34
+ wrapper_tag: string,
35
+ ): HTMLElement {
36
+ const inner = document.createElement(wrapper_tag);
37
+ for (const child of Array.from(element.childNodes)) {
38
+ inner.appendChild(child);
39
+ }
40
+ element.appendChild(inner);
41
+ element.classList.add("qdt-flex-cell");
42
+ return element;
43
+ }
44
+ function doubly_wrapped(content: string): HTMLElement {
45
+ const outer = document.createElement("div");
46
+ outer.innerHTML = content;
47
+ return as_flex_container(outer, "div");
48
+ }
@@ -7,6 +7,8 @@ declare const ColumnStruct: ss.Struct<{
7
7
  enabled: boolean;
8
8
  width: number;
9
9
  sortable: boolean;
10
+ horizontal_alignment: "left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start";
11
+ data_vertical_alignment: "center" | "end" | "start" | "stretch";
10
12
  }, {
11
13
  /** used to persist settings in Storage; must be unique across a table */
12
14
  key: ss.Struct<string, null>;
@@ -22,6 +24,10 @@ declare const ColumnStruct: ss.Struct<{
22
24
  /** whether or not the user can click the column header to sort by this column */
23
25
  /** when the user is sorting by this column, we will automatically set sort key to column_asc-KEY or column-desc-KEY */
24
26
  sortable: ss.Struct<boolean, null>;
27
+ /** effects BOTH headers and data cells; individual data cells can override */
28
+ horizontal_alignment: ss.Struct<"left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start", null>;
29
+ /** effects ONLY data cells (not header); individual data cells can override */
30
+ data_vertical_alignment: ss.Struct<"center" | "end" | "start" | "stretch", null>;
25
31
  }>;
26
32
  export type Column = ss.Infer<typeof ColumnStruct>;
27
33
  declare const OptionalStorageStruct: ss.Struct<"localStorage" | "sessionStorage" | null, null>;
@@ -54,6 +60,8 @@ declare const TableOptionsStruct: ss.Struct<{
54
60
  enabled: boolean;
55
61
  width: number;
56
62
  sortable: boolean;
63
+ horizontal_alignment: "left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start";
64
+ data_vertical_alignment: "center" | "end" | "start" | "stretch";
57
65
  }[];
58
66
  allow_selection: boolean;
59
67
  api_url: string;
@@ -89,6 +97,8 @@ declare const TableOptionsStruct: ss.Struct<{
89
97
  enabled: boolean;
90
98
  width: number;
91
99
  sortable: boolean;
100
+ horizontal_alignment: "left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start";
101
+ data_vertical_alignment: "center" | "end" | "start" | "stretch";
92
102
  }[], ss.Struct<{
93
103
  key: string;
94
104
  fixed: boolean;
@@ -97,6 +107,8 @@ declare const TableOptionsStruct: ss.Struct<{
97
107
  enabled: boolean;
98
108
  width: number;
99
109
  sortable: boolean;
110
+ horizontal_alignment: "left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start";
111
+ data_vertical_alignment: "center" | "end" | "start" | "stretch";
100
112
  }, {
101
113
  /** used to persist settings in Storage; must be unique across a table */
102
114
  key: ss.Struct<string, null>;
@@ -112,6 +124,10 @@ declare const TableOptionsStruct: ss.Struct<{
112
124
  /** whether or not the user can click the column header to sort by this column */
113
125
  /** when the user is sorting by this column, we will automatically set sort key to column_asc-KEY or column-desc-KEY */
114
126
  sortable: ss.Struct<boolean, null>;
127
+ /** effects BOTH headers and data cells; individual data cells can override */
128
+ horizontal_alignment: ss.Struct<"left" | "center" | "right" | "flex-start" | "flex-end" | "end" | "start", null>;
129
+ /** effects ONLY data cells (not header); individual data cells can override */
130
+ data_vertical_alignment: ss.Struct<"center" | "end" | "start" | "stretch", null>;
115
131
  }>>;
116
132
  allow_selection: ss.Struct<boolean, null>;
117
133
  api_url: ss.Struct<string, null>;
@@ -19,6 +19,23 @@ const ColumnStruct = ss.object({
19
19
  /** whether or not the user can click the column header to sort by this column */
20
20
  /** when the user is sorting by this column, we will automatically set sort key to column_asc-KEY or column-desc-KEY */
21
21
  sortable: ss.boolean(),
22
+ /** effects BOTH headers and data cells; individual data cells can override */
23
+ horizontal_alignment: ss.defaulted(ss.union([
24
+ ss.literal("left"),
25
+ ss.literal("center"),
26
+ ss.literal("right"),
27
+ ss.literal("flex-start"),
28
+ ss.literal("flex-end"),
29
+ ss.literal("end"),
30
+ ss.literal("start"),
31
+ ]), "flex-start"),
32
+ /** effects ONLY data cells (not header); individual data cells can override */
33
+ data_vertical_alignment: ss.defaulted(ss.union([
34
+ ss.literal("stretch"),
35
+ ss.literal("center"),
36
+ ss.literal("start"),
37
+ ss.literal("end"),
38
+ ]), "center"),
22
39
  });
23
40
  const OptionalStorageStruct = ss.union([
24
41
  ss.literal("localStorage"),
@@ -31,6 +31,31 @@ const ColumnStruct = ss.object({
31
31
  /** whether or not the user can click the column header to sort by this column */
32
32
  /** when the user is sorting by this column, we will automatically set sort key to column_asc-KEY or column-desc-KEY */
33
33
  sortable: ss.boolean(),
34
+
35
+ /** effects BOTH headers and data cells; individual data cells can override */
36
+ horizontal_alignment: ss.defaulted(
37
+ ss.union([
38
+ ss.literal("left"),
39
+ ss.literal("center"),
40
+ ss.literal("right"),
41
+ ss.literal("flex-start"),
42
+ ss.literal("flex-end"),
43
+ ss.literal("end"),
44
+ ss.literal("start"),
45
+ ]),
46
+ "flex-start",
47
+ ),
48
+
49
+ /** effects ONLY data cells (not header); individual data cells can override */
50
+ data_vertical_alignment: ss.defaulted(
51
+ ss.union([
52
+ ss.literal("stretch"),
53
+ ss.literal("center"),
54
+ ss.literal("start"),
55
+ ss.literal("end"),
56
+ ]),
57
+ "center",
58
+ ),
34
59
  });
35
60
  export type Column = ss.Infer<typeof ColumnStruct>;
36
61
 
@@ -1 +1 @@
1
- {"fileNames":["../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es6.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es5.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.dom.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.decorators.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@qnc/type_utils/build/index.d.ts","../src/bound_stored_value.ts","../node_modules/superstruct/dist/error.d.ts","../node_modules/superstruct/dist/utils.d.ts","../node_modules/superstruct/dist/struct.d.ts","../node_modules/superstruct/dist/structs/coercions.d.ts","../node_modules/superstruct/dist/structs/refinements.d.ts","../node_modules/superstruct/dist/structs/types.d.ts","../node_modules/superstruct/dist/structs/utilities.d.ts","../node_modules/superstruct/dist/index.d.ts","../src/table_options.ts","../src/column_manager.ts","../src/column_resizing.ts","../src/watched_mutable_value.ts","../src/state_types.ts","../src/column_sorting.ts","../src/conditionally_wrapped_element.ts","../src/event_names.ts","../src/state_machine.ts","../node_modules/@types/mithril/index.d.ts","../src/renderer.ts","../node_modules/@qnc/drag_sorter2/dist/npm/drag_sorter2.d.ts","../src/mithril_view.ts","../src/create_mithril_app.ts","../intermediate/qnc_data_tables_inline_css.d.ts","../src/create_style.ts","../src/table_manager.ts","../src/custom_element.ts","../src/selection_fieldset_controller.ts","../src/index.ts","../src/optional_storage.ts","../src/overflow_class_manager.ts"],"fileIdsList":[[21,23,24,25,26,27],[21,22],[23],[22,23],[21,23],[19],[19,28,29],[19,33],[37,38,39,41],[43],[29,33,35,37,38,39,42,45],[29,39,44,46,47],[29,30,31,32,33,38,39,40],[38],[45,46],[19,20,29,30,32,33,34,36],[29,30,32],[36,37],[19,28]],"fileInfos":[{"version":"df039a67536fe2acc3affdcbfb645892f842db36fe599e8e652e2f0c640a90d1","impliedFormat":1},{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c3ac004344cd885a3e9900c9c791da896c6c19c2fea8812a3196694b18624058","impliedFormat":99},{"version":"b9655fec9e804d1a5c0c982f078c2727c1df6ade35c415f7134d04257d39b792","signature":"f50456435236fdfb4bdb108b048c001ad3f963ec72593f90f6a50c62dfa3d953","impliedFormat":99},{"version":"56e933722bc0b995aa96a7d023497871ce07d1500d9dae9e95875b3208b23169","impliedFormat":99},{"version":"ce84cd04b7ff2a0935c34d426d049a4738dc1d32300f713e8f674b2fea83520b","impliedFormat":99},{"version":"1431e40edac4e9251b18760a8b7e294a3be538d15ec1bac6e90ea84efbd75434","impliedFormat":99},{"version":"6cc836c7185e9763e11d373e166b1f6f523b3b2de800af03cc8db68583ce6c03","impliedFormat":99},{"version":"ce4399c8e23cd32b5e9c245b57bf86bcf07773ff0fce06435520afd9e36ce511","impliedFormat":99},{"version":"b11eab7b532862de69b97b30ff6f4ea177573f017dc9177fe463e20fa8e8f3af","impliedFormat":99},{"version":"e9340584b4b5ee347c65b1f6db1b83c6e77a68db39b078780abdc076711eb815","impliedFormat":99},{"version":"70d9e74d5210f57d00925ce312dd29c7ae3ef49b8d0a7f896fb28ed1578b17c3","impliedFormat":99},{"version":"088428b23a81e80c0dbf524f79ff602ea92af1ef9ac757dff8b91911b28f80ba","signature":"d2645bc1804740b7e5e05c482ba7d1b94743b29291618cf84b1121dfab6022cb","impliedFormat":99},{"version":"fb269872ac1ad5670145cf17c5dc6e6a260a45851bad0a25626a0b99ee343178","signature":"c39f3f0217ba6ffb4f99d5bba8035d0a7053008349fbc40ddee4c7cf0aa4a305","impliedFormat":99},{"version":"3f282694019489510ad94603a83fef03d0c4f3eb87b0e9acea0bd10bf0e5fbad","signature":"08430a86a223b1c96c83759fce45b89c3f4eb3fad5789ac3b16abd84f676d801","impliedFormat":99},{"version":"0fa88d7f497c6be699c7f0c1a5df29d3c831b6224d142cb13c706bece49a7964","signature":"49c05a47e0d95561844f886a410b4f9b37e938b208caa410a4a953ef94231be3","impliedFormat":99},{"version":"cc97bcbb9491923679fcaddd7ea4693fb51240205d36687ee03e6d4349065383","signature":"317d9fe91e003b8bd007841a22a18ccd3638ff472ee11c62fa658a23b6e69949","impliedFormat":99},{"version":"37b3a75065dd4328ab07a74e437c9bf9db9596e8a4b95d5b97118d699eca8a36","signature":"19da0d94fde1c3d8b2d184b20c1dcc27773c9e36f8448733f958f57f7bd0ccef","impliedFormat":99},{"version":"9b73eafa6c6ce2e98429a7a875c1efe2f53f10e2980671b8f4759d97cd112992","signature":"1ef769db3b1a03d9d69e9b6c7ade7a713b44d8e7d7beaf43a0b0f376a3433d04","impliedFormat":99},{"version":"cdb540d13c6ff674fb817cd1731f1cd5e841b213486f3f039d81993be9bb7c83","signature":"a874d76d20f351b70787a2ce6bcfa50aa8e09a18a0f566fa7e50a116b60e3927","impliedFormat":99},{"version":"adb1384aa4a4992949e20b23f8c3d2fa38f646a46fb43295dc36d19999e08dbf","signature":"1e19bd0e5a2ec70a260014d87a51e1d3c723d0453b866391e665c920680838f1","impliedFormat":99},{"version":"7c4f7cb8a662bd8b8eec4a712d2bfc40cb2efc3248292dcd2a7fa80d5935c85e","affectsGlobalScope":true,"impliedFormat":1},{"version":"c958694cb815759fdbb55f2c17c57014907cbe871b488dfe4afb95bbd1377f07","signature":"54198656fece9670c3f97e3e6b19d4835c8a8e1aac1c5d654dd7d08167d223ce","impliedFormat":99},{"version":"00700b3696ec782e93d767cc33aaaaf76ad975f3a2525e79eedec4a33ff4e933","impliedFormat":99},{"version":"8e1c42a7f05fc50485647f34cce6f191b0a2e7b135949d68d53c5aef6f518b4b","signature":"eec30d355fadbcd5517512b0eb4d6f254a0740c68f00cf5e8d92cf2c7395b2a3","impliedFormat":99},{"version":"1fe29a6585ba8e801b8039bc1b38a2906ae6c0992d228d10052ee2dce0734572","signature":"01d66077fab5a605168eda3d63521b9c18273ac6f24c338bcb8cadb5bea0429a","impliedFormat":99},{"version":"6112bc1341c6e1a3f072a934b0de0e26982a18cac9b97944f4cb86158ee58f00","impliedFormat":99},{"version":"c7fc1faa87da67e586529a23efa3619028f3410844031d37602d30e7ec455390","signature":"a32c781b7e8666951242aa77a3594db0bcc809435a3aa4fc753043c1d3d05359","impliedFormat":99},{"version":"3e09f145b2773cf94c3e28b326e4a81c1c18ab3cd1e44b684aac48df6f060bf7","signature":"e8be11925827289319a5875fcbcb83e1538a62b17d3f4336ab983779684beb61","impliedFormat":99},{"version":"c43e6d54a9a425a1256e5756611c5f4c7c0180dda198712de6df78c8fb80764f","signature":"7b2fe70181cc14d801e496ebe57931d9a162e928d36d5e92d171ac9b0b1d5102","impliedFormat":99},{"version":"6f099c7a3ac41d6f7b048dc12fa8b0ca987d471cb18b5fabcce10304e11e42ed","signature":"98f165bc8a33ea7a96bcc6521bef9fa1e0f6cc6ad17eb22065817338cdd0384e","impliedFormat":99},{"version":"6f812ce4908f1e725e65b193d2580aef069ab674d1cfce9470eb3d931f5b3fb8","impliedFormat":99},{"version":"639d09070bc5a1a6712e0dc0c9ca0c85713474b95142b6f04f20af07d1cb5e41","signature":"eb9159adc2c9f22f2ede632b4bdd2625b76b28a8907700c7701c4f28b5834530","impliedFormat":99},{"version":"e11c3816af66cef18033102beb8116f978648b99abbbd5a5af46cae507ed642d","signature":"0e1b5dda8ed10831fc1a25a7b6cee85cc6a3810d2afafda84712d485c4d60594","impliedFormat":99}],"root":[20,[29,37],39,41,42,[44,50]],"options":{"declaration":true,"esModuleInterop":true,"module":199,"noImplicitAny":true,"noUncheckedIndexedAccess":true,"outDir":"./","strict":true,"target":2},"referencedMap":[[28,1],[23,2],[24,3],[25,3],[26,4],[27,4],[22,5],[20,6],[30,7],[34,8],[42,9],[44,10],[46,11],[48,12],[41,13],[39,14],[47,15],[37,16],[33,17],[45,18],[29,19]],"version":"5.8.3"}
1
+ {"fileNames":["../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es6.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es5.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.dom.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.scripthost.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.decorators.d.ts","../../../../.nvm/versions/node/v22.16.0/lib/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@qnc/type_utils/build/index.d.ts","../src/bound_stored_value.ts","../node_modules/superstruct/dist/error.d.ts","../node_modules/superstruct/dist/utils.d.ts","../node_modules/superstruct/dist/struct.d.ts","../node_modules/superstruct/dist/structs/coercions.d.ts","../node_modules/superstruct/dist/structs/refinements.d.ts","../node_modules/superstruct/dist/structs/types.d.ts","../node_modules/superstruct/dist/structs/utilities.d.ts","../node_modules/superstruct/dist/index.d.ts","../src/table_options.ts","../src/column_manager.ts","../src/column_resizing.ts","../src/watched_mutable_value.ts","../src/state_types.ts","../src/column_sorting.ts","../src/conditionally_wrapped_element.ts","../src/event_names.ts","../src/state_machine.ts","../node_modules/@types/mithril/index.d.ts","../src/renderer.ts","../node_modules/@qnc/drag_sorter2/dist/npm/drag_sorter2.d.ts","../src/mithril_view.ts","../src/create_mithril_app.ts","../intermediate/qnc_data_tables_inline_css.d.ts","../src/create_style.ts","../src/table_manager.ts","../src/prepare_cell_html.ts","../src/custom_element.ts","../src/selection_fieldset_controller.ts","../src/index.ts","../src/optional_storage.ts","../src/overflow_class_manager.ts"],"fileIdsList":[[21,23,24,25,26,27],[21,22],[23],[22,23],[21,23],[19],[19,28,29],[19,33],[37,38,39,41],[43],[29,33,37,38,39,42,45,46],[29,39,44,47,48],[29,30,31,32,33,38,39,40],[38],[45,47],[19,20,29,30,32,33,34,36],[29,30,32],[36,37],[19,28]],"fileInfos":[{"version":"df039a67536fe2acc3affdcbfb645892f842db36fe599e8e652e2f0c640a90d1","impliedFormat":1},{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c3ac004344cd885a3e9900c9c791da896c6c19c2fea8812a3196694b18624058","impliedFormat":99},{"version":"b9655fec9e804d1a5c0c982f078c2727c1df6ade35c415f7134d04257d39b792","signature":"f50456435236fdfb4bdb108b048c001ad3f963ec72593f90f6a50c62dfa3d953","impliedFormat":99},{"version":"56e933722bc0b995aa96a7d023497871ce07d1500d9dae9e95875b3208b23169","impliedFormat":99},{"version":"ce84cd04b7ff2a0935c34d426d049a4738dc1d32300f713e8f674b2fea83520b","impliedFormat":99},{"version":"1431e40edac4e9251b18760a8b7e294a3be538d15ec1bac6e90ea84efbd75434","impliedFormat":99},{"version":"6cc836c7185e9763e11d373e166b1f6f523b3b2de800af03cc8db68583ce6c03","impliedFormat":99},{"version":"ce4399c8e23cd32b5e9c245b57bf86bcf07773ff0fce06435520afd9e36ce511","impliedFormat":99},{"version":"b11eab7b532862de69b97b30ff6f4ea177573f017dc9177fe463e20fa8e8f3af","impliedFormat":99},{"version":"e9340584b4b5ee347c65b1f6db1b83c6e77a68db39b078780abdc076711eb815","impliedFormat":99},{"version":"70d9e74d5210f57d00925ce312dd29c7ae3ef49b8d0a7f896fb28ed1578b17c3","impliedFormat":99},{"version":"92ce312188102ea4a8dc1c5df08a555a5b52b022cf21debe162391820cb4587b","signature":"69fcee4d18e801e04ea3865c2289c191d53469194681107b1e41dd015ea1aa85","impliedFormat":99},{"version":"2c4b7c5da16a639a7b874120e8111a3bc99823f8b25e8711447b961e5a93f745","signature":"1a78ea2da89941ff9152dbe8166669b413fd5abe3a7ee866059dd2805cba96fc","impliedFormat":99},{"version":"3f282694019489510ad94603a83fef03d0c4f3eb87b0e9acea0bd10bf0e5fbad","signature":"08430a86a223b1c96c83759fce45b89c3f4eb3fad5789ac3b16abd84f676d801","impliedFormat":99},{"version":"0fa88d7f497c6be699c7f0c1a5df29d3c831b6224d142cb13c706bece49a7964","signature":"49c05a47e0d95561844f886a410b4f9b37e938b208caa410a4a953ef94231be3","impliedFormat":99},{"version":"cc97bcbb9491923679fcaddd7ea4693fb51240205d36687ee03e6d4349065383","signature":"317d9fe91e003b8bd007841a22a18ccd3638ff472ee11c62fa658a23b6e69949","impliedFormat":99},{"version":"37b3a75065dd4328ab07a74e437c9bf9db9596e8a4b95d5b97118d699eca8a36","signature":"19da0d94fde1c3d8b2d184b20c1dcc27773c9e36f8448733f958f57f7bd0ccef","impliedFormat":99},{"version":"9b73eafa6c6ce2e98429a7a875c1efe2f53f10e2980671b8f4759d97cd112992","signature":"1ef769db3b1a03d9d69e9b6c7ade7a713b44d8e7d7beaf43a0b0f376a3433d04","impliedFormat":99},{"version":"cdb540d13c6ff674fb817cd1731f1cd5e841b213486f3f039d81993be9bb7c83","signature":"a874d76d20f351b70787a2ce6bcfa50aa8e09a18a0f566fa7e50a116b60e3927","impliedFormat":99},{"version":"adb1384aa4a4992949e20b23f8c3d2fa38f646a46fb43295dc36d19999e08dbf","signature":"1e19bd0e5a2ec70a260014d87a51e1d3c723d0453b866391e665c920680838f1","impliedFormat":99},{"version":"7c4f7cb8a662bd8b8eec4a712d2bfc40cb2efc3248292dcd2a7fa80d5935c85e","affectsGlobalScope":true,"impliedFormat":1},{"version":"c958694cb815759fdbb55f2c17c57014907cbe871b488dfe4afb95bbd1377f07","signature":"54198656fece9670c3f97e3e6b19d4835c8a8e1aac1c5d654dd7d08167d223ce","impliedFormat":99},{"version":"00700b3696ec782e93d767cc33aaaaf76ad975f3a2525e79eedec4a33ff4e933","impliedFormat":99},{"version":"6982c37f3db6dce094c5eee64a71695f16029fd89ebf3772bbb99acad543fce3","signature":"eec30d355fadbcd5517512b0eb4d6f254a0740c68f00cf5e8d92cf2c7395b2a3","impliedFormat":99},{"version":"1fe29a6585ba8e801b8039bc1b38a2906ae6c0992d228d10052ee2dce0734572","signature":"01d66077fab5a605168eda3d63521b9c18273ac6f24c338bcb8cadb5bea0429a","impliedFormat":99},{"version":"6112bc1341c6e1a3f072a934b0de0e26982a18cac9b97944f4cb86158ee58f00","impliedFormat":99},{"version":"c7fc1faa87da67e586529a23efa3619028f3410844031d37602d30e7ec455390","signature":"a32c781b7e8666951242aa77a3594db0bcc809435a3aa4fc753043c1d3d05359","impliedFormat":99},{"version":"3e09f145b2773cf94c3e28b326e4a81c1c18ab3cd1e44b684aac48df6f060bf7","signature":"e8be11925827289319a5875fcbcb83e1538a62b17d3f4336ab983779684beb61","impliedFormat":99},{"version":"339c7446a8373c31164d0be2b9727a0f81e6a785d06e36de4bcabcf9c41bbbf6","signature":"a140b4e12a6e07e8a5f5fd03471405ea5f50e58158079476fcc0b953489deb28","impliedFormat":99},{"version":"9276cbdc30be8660444352beaf83c015a662edaee33e538621cc0c76d76be9af","signature":"7b2fe70181cc14d801e496ebe57931d9a162e928d36d5e92d171ac9b0b1d5102","impliedFormat":99},{"version":"6f099c7a3ac41d6f7b048dc12fa8b0ca987d471cb18b5fabcce10304e11e42ed","signature":"98f165bc8a33ea7a96bcc6521bef9fa1e0f6cc6ad17eb22065817338cdd0384e","impliedFormat":99},{"version":"6f812ce4908f1e725e65b193d2580aef069ab674d1cfce9470eb3d931f5b3fb8","impliedFormat":99},{"version":"639d09070bc5a1a6712e0dc0c9ca0c85713474b95142b6f04f20af07d1cb5e41","signature":"eb9159adc2c9f22f2ede632b4bdd2625b76b28a8907700c7701c4f28b5834530","impliedFormat":99},{"version":"e11c3816af66cef18033102beb8116f978648b99abbbd5a5af46cae507ed642d","signature":"0e1b5dda8ed10831fc1a25a7b6cee85cc6a3810d2afafda84712d485c4d60594","impliedFormat":99}],"root":[20,[29,37],39,41,42,[44,51]],"options":{"declaration":true,"esModuleInterop":true,"module":199,"noImplicitAny":true,"noUncheckedIndexedAccess":true,"outDir":"./","strict":true,"target":2},"referencedMap":[[28,1],[23,2],[24,3],[25,3],[26,4],[27,4],[22,5],[20,6],[30,7],[34,8],[42,9],[44,10],[47,11],[49,12],[41,13],[39,14],[48,15],[37,16],[33,17],[45,18],[29,19]],"version":"5.8.3"}
@@ -1,5 +1,5 @@
1
- // _v8g4la5ho:/Users/alex/projects/qnc_data_tables/front-end/intermediate/qnc_data_tables.min.css
2
- var qnc_data_tables_min_default = '.qnc-data-table{display:block;max-width:100%;overflow-x:auto;overflow-y:auto;isolation:isolate}.qnc-data-table-head{display:block;position:sticky;top:0;z-index:3}.qnc-data-table-header-button{border:none;border-radius:0;padding:0;font:inherit;color:inherit;text-decoration:none;background-color:transparent}.qnc-data-table-header-button-text{text-decoration:underline}.qnc-data-table-header-button{line-height:1.2;cursor:pointer}.qnc-data-table-sort-indicator{text-decoration:none;font-size:.8em}.qnc-data-table-body{display:block;z-index:2}.qnc-data-table-row{min-width:100%;display:flex;align-items:stretch;justify-content:flex-start}.qnc-data-table-header-row div[role=columnheader]:nth-last-child(1 of div.qdt-resizable-header){overflow:hidden}.qnc-data-table-row *{overflow:hidden;text-overflow:ellipsis}.qdt-cell{flex-grow:0;flex-shrink:0;background-color:#fff;display:flex;align-items:stretch}.qdt-cell>*{padding:8px 16px;box-sizing:border-box;width:100%}.qdt-column-details{margin-top:.5em;margin-bottom:.5em}.qdt-row-checkbox-label{padding-left:8px;padding-right:8px}.qdt-row-checkbox-label:hover>input{transform:scale(1.2)}.qnc-data-table-body-row{white-space:nowrap}.qnc-data-tables-wrapping-content{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;hyphens:auto;white-space:normal}.qnc-data-table-row-checkbox-label{flex-grow:0;flex-shrink:0}.qnc-data-table-row-checkbox-label:hover>input{transform:scale(1.2)}.qnc-data-tables-overflow-indicator{font-size:.8em;padding:.1em .5em;border-radius:.5em;color:#fff;background-color:#888}.qnc-data-table-body>.qnc-data-table-row:hover>*{background-color:#ccc}.qnc-data-table-help-text:before{display:inline;content:"?"}.qnc-data-table-help-text{font-size:.7em;font-family:helvetica,arial,sans-serif;font-weight:700;text-decoration:none;cursor:pointer;display:inline-block;vertical-align:text-top;height:1.2em;width:1.2em;line-height:1.3;text-align:center;background-color:#aaa;border-radius:1000px;color:#fff;border:none;padding:0}.qdt-overflow-indicator-cell{width:0;padding:0;border:none;pointer-events:none;overflow:visible;position:sticky;opacity:0;transition:opacity .2s linear;z-index:1}.qdt-overflow-indicator-cell-right{right:0}.qdt-overflows-left>*>*>.qdt-overflow-indicator-cell-left,.qdt-overflows-right>*>*>.qdt-overflow-indicator-cell-right{opacity:1}.qdt-overflow-top-indicator{opacity:0;height:0px;background-color:#aaa;pointer-events:none;box-shadow:0 0 15px 5px #8888}.qdt-overflows-top .qdt-overflow-top-indicator{opacity:1}.qdt-overflow-bottom-indicator{position:sticky;bottom:0;left:0;z-index:3;opacity:0;height:0px;background-color:#aaa;pointer-events:none;box-shadow:0 0 15px 5px #8888}.qdt-overflows-bottom .qdt-overflow-bottom-indicator{opacity:1}.qdt-overflow-top-detector,.qdt-overflow-bottom-detector{width:100%;pointer-events:none;height:0px}.qdt-overflow-indicator-cell-left:after{content:" ";height:100%;position:absolute;top:0;width:15px;box-shadow:15px 0 15px -15px #8888 inset;right:-15px}.qdt-overflow-indicator-cell-right:after{content:" ";height:100%;position:absolute;top:0;width:15px;box-shadow:-15px 0 15px -15px #8888 inset;right:0}.qdt-resizable-header{position:relative;overflow:visible}.qdt-column-resizer{overflow:visible;border-right:1px solid #ccc;cursor:col-resize;position:absolute;z-index:1;top:0;right:0;height:100%;width:0}.qdt-column-resizer:after{content:"";display:block;position:absolute;width:1em;height:100%;top:0;left:0;transform:translate(-50%)}@keyframes qdt-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.qdt-selection-controls{margin-top:.5em;display:flex;align-items:flex-start;flex-wrap:wrap;column-gap:.5em;row-gap:.25em}\n';
1
+ // _sdlmymgj2:/Users/alex/projects/qnc_data_tables/front-end/intermediate/qnc_data_tables.min.css
2
+ var qnc_data_tables_min_default = '.qnc-data-table{display:block;max-width:100%;overflow-x:auto;overflow-y:auto;isolation:isolate;--qdt-cell-vertical-padding: 8px;--qdt-cell-horizontal-padding: 16px;--qdt-cell-justify-content: flex-start;--qdt-cell-align-items: center}.qnc-data-table-head{display:block;position:sticky;top:0;z-index:3}.qnc-data-table-header-button{border:none;border-radius:0;padding:0;font:inherit;color:inherit;text-decoration:none;background-color:transparent}.qnc-data-table-header-button-text{text-decoration:underline}.qnc-data-table-header-button{line-height:1.2;cursor:pointer}.qnc-data-table-sort-indicator{text-decoration:none;font-size:.8em}.qnc-data-table-body{display:block;z-index:2}.qnc-data-table-row{min-width:100%;display:flex;align-items:stretch;justify-content:flex-start}.qnc-data-table-header-row div[role=columnheader]:nth-last-child(1 of div.qdt-resizable-header){overflow:hidden}.qnc-data-table-row *{overflow:hidden;text-overflow:ellipsis}.qdt-cell{flex-grow:0;flex-shrink:0;background-color:#fff;display:flex;align-items:stretch}.qdt-cell>*{padding:var(--qdt-cell-vertical-padding) var(--qdt-cell-horizontal-padding);box-sizing:border-box;width:100%}.qdt-flex-cell{display:flex;justify-content:var(--qdt-cell-justify-content);align-items:var(--qdt-cell-align-items)}.qdt-column-details{margin-top:.5em;margin-bottom:.5em}.qdt-row-checkbox-label{padding-left:8px;padding-right:8px}.qdt-row-checkbox-label:hover>input{transform:scale(1.2)}.qnc-data-table-body-row{white-space:nowrap}.qnc-data-tables-wrapping-content{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;text-overflow:ellipsis;hyphens:auto;white-space:normal}.qnc-data-table-row-checkbox-label{flex-grow:0;flex-shrink:0}.qnc-data-table-row-checkbox-label:hover>input{transform:scale(1.2)}.qnc-data-tables-overflow-indicator{font-size:.8em;padding:.1em .5em;border-radius:.5em;color:#fff;background-color:#888}.qnc-data-table-body>.qnc-data-table-row:hover>*{background-color:#ccc}.qnc-data-table-help-text:before{display:inline;content:"?"}.qnc-data-table-help-text{font-size:.7em;font-family:helvetica,arial,sans-serif;font-weight:700;text-decoration:none;cursor:pointer;display:inline-block;vertical-align:text-top;height:1.2em;width:1.2em;line-height:1.3;text-align:center;background-color:#aaa;border-radius:1000px;color:#fff;border:none;padding:0}.qdt-overflow-indicator-cell{width:0;padding:0;border:none;pointer-events:none;overflow:visible;position:sticky;opacity:0;transition:opacity .2s linear;z-index:1}.qdt-overflow-indicator-cell-right{right:0}.qdt-overflows-left>*>*>.qdt-overflow-indicator-cell-left,.qdt-overflows-right>*>*>.qdt-overflow-indicator-cell-right{opacity:1}.qdt-overflow-top-indicator{opacity:0;height:0px;background-color:#aaa;pointer-events:none;box-shadow:0 0 15px 5px #8888}.qdt-overflows-top .qdt-overflow-top-indicator{opacity:1}.qdt-overflow-bottom-indicator{position:sticky;bottom:0;left:0;z-index:3;opacity:0;height:0px;background-color:#aaa;pointer-events:none;box-shadow:0 0 15px 5px #8888}.qdt-overflows-bottom .qdt-overflow-bottom-indicator{opacity:1}.qdt-overflow-top-detector,.qdt-overflow-bottom-detector{width:100%;pointer-events:none;height:0px}.qdt-overflow-indicator-cell-left:after{content:" ";height:100%;position:absolute;top:0;width:15px;box-shadow:15px 0 15px -15px #8888 inset;right:-15px}.qdt-overflow-indicator-cell-right:after{content:" ";height:100%;position:absolute;top:0;width:15px;box-shadow:-15px 0 15px -15px #8888 inset;right:0}.qdt-resizable-header{position:relative;overflow:visible}.qdt-column-resizer{overflow:visible;border-right:1px solid #ccc;cursor:col-resize;position:absolute;z-index:1;top:0;right:0;height:100%;width:0}.qdt-column-resizer:after{content:"";display:block;position:absolute;width:1em;height:100%;top:0;left:0;transform:translate(-50%)}@keyframes qdt-loader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.qdt-selection-controls{margin-top:.5em;display:flex;align-items:flex-start;flex-wrap:wrap;column-gap:.5em;row-gap:.25em}\n';
3
3
 
4
4
  // src/qnc_data_tables_css.js
5
5
  var qnc_data_tables_css_default = qnc_data_tables_min_default;
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "intermediate/*.ts",
8
8
  "README.md"
9
9
  ],
10
- "version": "1.0.13",
10
+ "version": "1.1.0",
11
11
  "description": "Work-in-progress",
12
12
  "main": "dist/index.js",
13
13
  "scripts": {