Files
oikos/web/node_modules/.vite/deps/@vincjo_datatables.js
dtoro d4d99a7473
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled
feat: Phase 1 — extract the client (web SPA + desktop) to dtoro/oikos-web
Problem: the hexagonal refactor churns the backend tree for nine more
phases; the UI delivery stack (web/ SPA, cmd/desktop Wails wrapper,
compose/web image) must move to its own repo first so doc/layout
rewrites land once on a backend-only tree.

Change:
- New repo git.hubris.network/dtoro/oikos-web (v0.33.0): web/, desktop/
  (updateURL repointed to oikos-web releases), compose/, own CI (web +
  desktop jobs), own deploy script (CI-green gate, TOCTOU guard,
  version-tagged images, prune-to-3), own webhook receiver on :9798 +
  launchd unit, own compose project publishing the same 8091:80.
- Cutover executed on mac-mini in order: oikos stack's web service
  stopped+removed, oikos-web project brought up on 8091; outer Caddy
  untouched (targets the published port) — serving + Authentik flow +
  /wails 404 quirk verified post-cutover.
- Stripped from oikos: web/, cmd/desktop/, compose/web/, desktop CI
  workflow, ci.yml web job, Makefile ui/desktop/desktop-package/install
  targets, the compose web service, oikos-web from deploy.sh's fallback
  prune list; wails + go-keyring dropped from go.mod, vendor synced.
- README / CONTRIBUTING / AGENTS.md / .agents dev+operations docs now
  point at the new repo; mbse + mascot design docs carry a path note.

Risk: production SPA serving depends on the new pipeline now; rollback
is versioned-image re-up of the old web service from a pre-split
checkout (port 8091). Desktop builds installed before the split still
check dtoro/oikos releases — one manual reinstall, noted in the
oikos-web release notes.

Verification: go vet, make test (race), make generate-check, golangci
(no new findings; baseline down 400→365); post-cutover curls —
localhost:8091 200, /wails/runtime.js 404, outer Caddy 302 Authentik.
2026-08-15 22:27:52 +02:00

2159 lines
100 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import "./chunk-CFGYIWW7.js";
import {
add_locations,
append_styles,
bind_element_size,
bind_select_value,
bind_this,
bind_value,
check_target,
cleanup_styles,
create_ownership_validator,
each,
hmr,
html,
if_block,
index,
legacy_api,
prop,
remove_input_defaults,
set_attribute,
set_class,
snippet,
validate_binding,
validate_snippet_args,
wrap_snippet
} from "./chunk-3SEKS52A.js";
import {
append,
comment,
from_html,
set_text,
text
} from "./chunk-YWNCLLEK.js";
import "./chunk-U7P2NEEE.js";
import {
delegate,
delegated
} from "./chunk-RK6BZSGT.js";
import {
FILENAME,
HMR,
add_svelte_meta,
child,
first_child,
get2 as get,
noop,
pop,
proxy,
push,
reset,
set,
sibling,
snapshot,
state,
strict_equals,
tag,
template_effect,
untrack,
user_derived
} from "./chunk-IFIY7NGJ.js";
import "./chunk-QDDRZFWN.js";
import "./chunk-OHYQYV5R.js";
import {
__privateAdd,
__privateGet,
__publicField
} from "./chunk-KWPVD4H7.js";
// node_modules/@vincjo/datatables/dist/src/shared/Datatable.svelte
Datatable[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/Datatable.svelte";
var root = add_locations(from_html(`<!> <!>`, 1), Datatable[FILENAME], []);
var root_1 = add_locations(from_html(`<!> <!>`, 1), Datatable[FILENAME], []);
var root_2 = add_locations(from_html(`<section><header class="s-6Rt_FysuJDNK"><!></header> <article class="thin-scrollbar s-6Rt_FysuJDNK"><!></article> <footer><!></footer></section>`), Datatable[FILENAME], [[6, 0, [[8, 4], [17, 4], [21, 4]]]]);
var $$css = {
hash: "s-6Rt_FysuJDNK",
code: "\n section.s-6Rt_FysuJDNK {\n height: 100%;\n display: flex;\n flex-direction: column;\n background: inherit;\n border-radius: inherit;\n }\n header.s-6Rt_FysuJDNK, footer.s-6Rt_FysuJDNK {\n padding: 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n article.s-6Rt_FysuJDNK {\n position: relative;\n height: 100%;\n overflow: auto;\n background: inherit;\n }\n article.s-6Rt_FysuJDNK .hidden {\n display: none;\n }\n article.s-6Rt_FysuJDNK::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n article.s-6Rt_FysuJDNK table {\n border-collapse: separate;\n border-spacing: 0;\n width: 100%;\n background: inherit;\n }\n article.s-6Rt_FysuJDNK table thead {\n position: sticky;\n inset-block-start: 0;\n background: inherit;\n z-index: 1;\n }\n article.s-6Rt_FysuJDNK thead tr {\n background: inherit;\n }\n article.s-6Rt_FysuJDNK thead tr th {\n background: inherit;\n }\n\n\n\n\n /* optional global style */\n .svelte-simple-datatable.s-6Rt_FysuJDNK thead tr:first-child th {\n padding: 8px 20px;\n background: inherit;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK tbody {\n background: inherit;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK tbody tr {\n transition: background, 0.2s;\n background: inherit;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK tbody tr:hover {\n background: var(--grey-lighten-3, #fafafa);\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK tbody td {\n padding: 4px 20px;\n border-right: 1px solid var(--grey-lighten, #eee);\n border-bottom: 1px solid var(--grey-lighten, #eee);\n background: inherit;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK tbody td:last-child {\n border-right: none;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK u.highlight {\n text-decoration: none;\n background: rgba(251, 192, 45, 0.6);\n border-radius: 2px;\n }\n .svelte-simple-datatable.s-6Rt_FysuJDNK footer.divider {\n border-top: 1px solid var(--grey, #e0e0e0);\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YXRhYmxlLnN2ZWx0ZSIsInNvdXJjZXMiOlsiRGF0YXRhYmxlLnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0IGxhbmc9XCJ0c1wiPmltcG9ydCB7IFNlYXJjaCwgUm93c1BlclBhZ2UsIFJvd0NvdW50LCBQYWdpbmF0aW9uIH0gZnJvbSAnLi8nO1xubGV0IHsgdGFibGUsIGNoaWxkcmVuLCBiYXNpYyA9IGZhbHNlLCBoZWFkbGVzcyA9IGZhbHNlLCBoZWFkZXIgPSB1bmRlZmluZWQsIGZvb3RlciA9IHVuZGVmaW5lZCB9ID0gJHByb3BzKCk7XG50YWJsZS5vbignY2hhbmdlJywgKCkgPT4gdGFibGUuZWxlbWVudCA/IHRhYmxlLmVsZW1lbnQuc2Nyb2xsVG9wID0gMCA6ICcnKTtcbjwvc2NyaXB0PlxuXG48c2VjdGlvbiBiaW5kOmNsaWVudFdpZHRoPXt0YWJsZS5jbGllbnRXaWR0aH0gY2xhc3M6c3ZlbHRlLXNpbXBsZS1kYXRhdGFibGU9eyFoZWFkbGVzc30+XG5cbiAgICA8aGVhZGVyPlxuICAgICAgICB7I2lmIGhlYWRlcn1cbiAgICAgICAgICAgIHtAcmVuZGVyIGhlYWRlcigpfVxuICAgICAgICB7OmVsc2UgaWYgYmFzaWMgPT09IHRydWV9XG4gICAgICAgICAgICA8U2VhcmNoIHt0YWJsZX0vPlxuICAgICAgICAgICAgPFJvd3NQZXJQYWdlIHt0YWJsZX0vPlxuICAgICAgICB7L2lmfVxuICAgIDwvaGVhZGVyPlxuXG4gICAgPGFydGljbGUgYmluZDp0aGlzPXt0YWJsZS5lbGVtZW50fSBjbGFzcz1cInRoaW4tc2Nyb2xsYmFyXCI+XG4gICAgICAgIHtAcmVuZGVyIGNoaWxkcmVuKCl9XG4gICAgPC9hcnRpY2xlPlxuXG4gICAgPGZvb3RlciBjbGFzczpkaXZpZGVyPXtiYXNpY30+XG4gICAgICAgIHsjaWYgZm9vdGVyfVxuICAgICAgICAgICAge0ByZW5kZXIgZm9vdGVyKCl9XG4gICAgICAgIHs6ZWxzZSBpZiBiYXNpYyA9PT0gdHJ1ZX1cbiAgICAgICAgICAgIDxSb3dDb3VudCB7dGFibGV9Lz5cbiAgICAgICAgICAgIDxQYWdpbmF0aW9uIHt0YWJsZX0vPlxuICAgICAgICB7L2lmfVxuICAgIDwvZm9vdGVyPlxuXG48L3NlY3Rpb24+XG5cbjxzdHlsZT5cbiAgICBzZWN0aW9uIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIH1cbiAgICBoZWFkZXIsIGZvb3RlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIGFydGljbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIGFydGljbGUgOmdsb2JhbCguaGlkZGVuKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGFydGljbGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgfVxuICAgIGFydGljbGUgOmdsb2JhbCh0YWJsZSkge1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIGFydGljbGUgOmdsb2JhbCh0YWJsZSB0aGVhZCkge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgYXJ0aWNsZSA6Z2xvYmFsKHRoZWFkIHRyKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIGFydGljbGUgOmdsb2JhbCh0aGVhZCB0ciB0aCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIH1cblxuXG5cblxuICAgIC8qIG9wdGlvbmFsIGdsb2JhbCBzdHlsZSAqL1xuICAgIC5zdmVsdGUtc2ltcGxlLWRhdGF0YWJsZSA6Z2xvYmFsKHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoKSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIH1cbiAgICAuc3ZlbHRlLXNpbXBsZS1kYXRhdGFibGUgOmdsb2JhbCh0Ym9keSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIH1cbiAgICAuc3ZlbHRlLXNpbXBsZS1kYXRhdGFibGUgOmdsb2JhbCh0Ym9keSB0cikge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLCAwLjJzO1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIH1cbiAgICAuc3ZlbHRlLXNpbXBsZS1kYXRhdGFibGUgOmdsb2JhbCh0Ym9keSB0cjpob3Zlcikge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmV5LWxpZ2h0ZW4tMywgI2ZhZmFmYSk7XG4gICAgfVxuICAgIC5zdmVsdGUtc2ltcGxlLWRhdGF0YWJsZSA6Z2xvYmFsKHRib2R5IHRkKSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAyMHB4O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ncmV5LWxpZ2h0ZW4sICNlZWUpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleS1saWdodGVuLCAjZWVlKTtcbiAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICB9XG4gICAgLnN2ZWx0ZS1zaW1wbGUtZGF0YXRhYmxlIDpnbG9iYWwodGJvZHkgdGQ6bGFzdC1jaGlsZCkge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICAgIC5zdmVsdGUtc2ltcGxlLWRhdGF0YWJsZSA6Z2xvYmFsKHUuaGlnaGxpZ2h0KSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MiwgNDUsIDAuNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG4gICAgLnN2ZWx0ZS1zaW1wbGUtZGF0YXRhYmxlIDpnbG9iYWwoZm9vdGVyLmRpdmlkZXIpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWdyZXksICNlMGUwZTApO1xuICAgIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdDQSxJQUFJLHNCQUFPLENBQUM7QUFDWixRQUFRLFlBQVk7QUFDcEIsUUFBUSxhQUFhO0FBQ3JCLFFBQVEsc0JBQXNCO0FBQzlCLFFBQVEsbUJBQW1CO0FBQzNCLFFBQVEsc0JBQXNCO0FBQzlCO0FBQ0EsSUFBSSxxQkFBTSxFQUFFLHFCQUFNLENBQUM7QUFDbkIsUUFBUSxVQUFVO0FBQ2xCLFFBQVEsYUFBYTtBQUNyQixRQUFRLG1CQUFtQjtBQUMzQixRQUFRLDhCQUE4QjtBQUN0QyxRQUFRLG1CQUFtQjtBQUMzQixRQUFRLFdBQVc7QUFDbkI7QUFDQSxJQUFJLHNCQUFPLENBQUM7QUFDWixRQUFRLGtCQUFrQjtBQUMxQixRQUFRLFlBQVk7QUFDcEIsUUFBUSxjQUFjO0FBQ3RCLFFBQVEsbUJBQW1CO0FBQzNCO0FBQ0EsSUFBSSxzQkFBTyxDQUFTLE9BQVEsQ0FBQztBQUM3QixRQUFRLGFBQWE7QUFDckI7QUFDQSxJQUFJLHNCQUFPLG1CQUFtQixDQUFDO0FBQy9CLFFBQVEsVUFBVTtBQUNsQixRQUFRLFdBQVc7QUFDbkI7QUFDQSxJQUFJLHNCQUFPLENBQVMsS0FBTSxDQUFDO0FBQzNCLFFBQVEseUJBQXlCO0FBQ2pDLFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsV0FBVztBQUNuQixRQUFRLG1CQUFtQjtBQUMzQjtBQUNBLElBQUksc0JBQU8sQ0FBUyxXQUFZLENBQUM7QUFDakMsUUFBUSxnQkFBZ0I7QUFDeEIsUUFBUSxvQkFBb0I7QUFDNUIsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSxVQUFVO0FBQ2xCO0FBQ0EsSUFBSSxzQkFBTyxDQUFTLFFBQVMsQ0FBQztBQUM5QixRQUFRLG1CQUFtQjtBQUMzQjtBQUNBLElBQUksc0JBQU8sQ0FBUyxXQUFZLENBQUM7QUFDakMsUUFBUSxtQkFBbUI7QUFDM0I7Ozs7O0FBS0E7QUFDQSxJQUFJLHVDQUF3QixDQUFTLHVCQUF3QixDQUFDO0FBQzlELFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsbUJBQW1CO0FBQzNCO0FBQ0EsSUFBSSx1Q0FBd0IsQ0FBUyxLQUFNLENBQUM7QUFDNUMsUUFBUSxtQkFBbUI7QUFDM0I7QUFDQSxJQUFJLHVDQUF3QixDQUFTLFFBQVMsQ0FBQztBQUMvQyxRQUFRLDRCQUE0QjtBQUNwQyxRQUFRLG1CQUFtQjtBQUMzQjtBQUNBLElBQUksdUNBQXdCLENBQVMsY0FBZSxDQUFDO0FBQ3JELFFBQVEsMENBQTBDO0FBQ2xEO0FBQ0EsSUFBSSx1Q0FBd0IsQ0FBUyxRQUFTLENBQUM7QUFDL0MsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxpREFBaUQ7QUFDekQsUUFBUSxrREFBa0Q7QUFDMUQsUUFBUSxtQkFBbUI7QUFDM0I7QUFDQSxJQUFJLHVDQUF3QixDQUFTLG1CQUFvQixDQUFDO0FBQzFELFFBQVEsa0JBQWtCO0FBQzFCO0FBQ0EsSUFBSSx1Q0FBd0IsQ0FBUyxXQUFZLENBQUM7QUFDbEQsUUFBUSxxQkFBcUI7QUFDN0IsUUFBUSxtQ0FBbUM7QUFDM0MsUUFBUSxrQkFBa0I7QUFDMUI7QUFDQSxJQUFJLHVDQUF3QixDQUFTLGNBQWUsQ0FBQztBQUNyRCxRQUFRLDBDQUEwQztBQUNsRDsifQ== */"
};
function Datatable($$anchor, $$props) {
check_target(new.target);
push($$props, true, Datatable);
append_styles($$anchor, $$css);
var $$ownership_validator = create_ownership_validator($$props);
let table = prop($$props, "table", 7), basic = prop($$props, "basic", 3, false), headless = prop($$props, "headless", 3, false), header = prop($$props, "header", 3, void 0), footer = prop($$props, "footer", 3, void 0);
table().on("change", () => table().element ? $$ownership_validator.mutation("table", ["table", "element", "scrollTop"], table().element.scrollTop = 0, 3, 41) : "");
var $$exports = { ...legacy_api() };
var section = root_2();
let classes;
var header_1 = child(section);
var node = child(header_1);
{
var consequent = ($$anchor2) => {
var fragment = comment();
var node_1 = first_child(fragment);
add_svelte_meta(() => snippet(node_1, header), "render", Datatable, 10, 12);
append($$anchor2, fragment);
};
var consequent_1 = ($$anchor2) => {
var fragment_1 = root();
var node_2 = first_child(fragment_1);
add_svelte_meta(
() => Search_default(node_2, {
get table() {
return table();
}
}),
"component",
Datatable,
12,
12,
{ componentTag: "Search" }
);
var node_3 = sibling(node_2, 2);
add_svelte_meta(
() => RowsPerPage_default(node_3, {
get table() {
return table();
}
}),
"component",
Datatable,
13,
12,
{ componentTag: "RowsPerPage" }
);
append($$anchor2, fragment_1);
};
add_svelte_meta(
() => if_block(node, ($$render) => {
if (header()) $$render(consequent);
else if (strict_equals(basic(), true)) $$render(consequent_1, 1);
}),
"if",
Datatable,
9,
8
);
}
reset(header_1);
var article = sibling(header_1, 2);
var node_4 = child(article);
add_svelte_meta(() => snippet(node_4, () => $$props.children), "render", Datatable, 18, 8);
reset(article);
bind_this(article, ($$value) => $$ownership_validator.mutation("table", ["table", "element"], table().element = $$value, 17, 24), () => {
var _a;
return (_a = table()) == null ? void 0 : _a.element;
});
var footer_1 = sibling(article, 2);
let classes_1;
var node_5 = child(footer_1);
{
var consequent_2 = ($$anchor2) => {
var fragment_2 = comment();
var node_6 = first_child(fragment_2);
add_svelte_meta(() => snippet(node_6, footer), "render", Datatable, 23, 12);
append($$anchor2, fragment_2);
};
var consequent_3 = ($$anchor2) => {
var fragment_3 = root_1();
var node_7 = first_child(fragment_3);
add_svelte_meta(
() => RowCount_default(node_7, {
get table() {
return table();
}
}),
"component",
Datatable,
25,
12,
{ componentTag: "RowCount" }
);
var node_8 = sibling(node_7, 2);
add_svelte_meta(
() => Pagination_default(node_8, {
get table() {
return table();
}
}),
"component",
Datatable,
26,
12,
{ componentTag: "Pagination" }
);
append($$anchor2, fragment_3);
};
add_svelte_meta(
() => if_block(node_5, ($$render) => {
if (footer()) $$render(consequent_2);
else if (strict_equals(basic(), true)) $$render(consequent_3, 1);
}),
"if",
Datatable,
22,
8
);
}
reset(footer_1);
reset(section);
validate_binding("bind:clientWidth={table.clientWidth}", [], table, () => "clientWidth", 6, 9);
template_effect(() => {
classes = set_class(section, 1, "s-6Rt_FysuJDNK", null, classes, { "svelte-simple-datatable": !headless() });
classes_1 = set_class(footer_1, 1, "s-6Rt_FysuJDNK", null, classes_1, { divider: basic() });
});
bind_element_size(section, "clientWidth", function set2($$value) {
$$ownership_validator.mutation("table", ["table", "clientWidth"], table().clientWidth = $$value, 6, 27);
});
append($$anchor, section);
return pop($$exports);
}
if (import.meta.hot) {
Datatable = hmr(Datatable);
import.meta.hot.accept((module) => {
cleanup_styles("s-6Rt_FysuJDNK");
Datatable[HMR].update(module.default);
});
}
var Datatable_default = Datatable;
// node_modules/@vincjo/datatables/dist/src/shared/Pagination.svelte
Pagination[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/Pagination.svelte";
var root2 = add_locations(from_html(`<button type="button">&#10094;</button> <button type="button" class="page s-a4UB0igr57Cl">Page <b> </b></button> <button type="button" class="small s-a4UB0igr57Cl">&#10095;</button>`, 1), Pagination[FILENAME], [[18, 4], [21, 4, [[21, 44]]], [22, 4]]);
var root_12 = add_locations(from_html(`<button type="button">&#10092;&#10092;</button> <button type="button">&#10094;</button> <button type="button">&#10095;</button> <button type="button">&#10093;&#10093;</button>`, 1), Pagination[FILENAME], [[30, 4], [33, 4], [36, 4], [39, 4]]);
var root_22 = add_locations(from_html(`<button type="button"> </button>`), Pagination[FILENAME], [[51, 8]]);
var root_3 = add_locations(from_html(`<button type="button"></button> <!> <button type="button"></button>`, 1), Pagination[FILENAME], [[47, 4], [60, 4]]);
var root_4 = add_locations(from_html(`<section class="s-a4UB0igr57Cl"><!></section>`), Pagination[FILENAME], [[5, 0]]);
var $$css2 = {
hash: "s-a4UB0igr57Cl",
code: "\n section.s-a4UB0igr57Cl {\n display: flex;\n margin: 8px 16px;\n }\n button.s-a4UB0igr57Cl {\n background: inherit;\n height: 32px;\n width: 32px;\n color: var(--font-grey, #9e9e9e);\n cursor: pointer;\n font-size: 13px;\n margin: 0;\n padding: 0;\n transition: all, 0.2s;\n line-height: 32px;\n border: 1px solid var(--grey, #e0e0e0);\n border-right: none;\n border-radius: 0;\n outline: none;\n }\n button.s-a4UB0igr57Cl:first-child {\n border-radius: 4px 0 0 4px;\n }\n button.s-a4UB0igr57Cl:last-child {\n border-right: 1px solid var(--grey, #e0e0e0);\n border-radius: 0 4px 4px 0;\n }\n\n button.s-a4UB0igr57Cl:first-child:not(.small),\n button.s-a4UB0igr57Cl:last-child:not(.small) {\n min-width: 72px;\n }\n\n button.s-a4UB0igr57Cl:not(.active):hover {\n background: var(--grey-lighten, #eee);\n }\n button.ellipse.s-a4UB0igr57Cl:hover {\n background: inherit;\n cursor: default;\n }\n button.active.s-a4UB0igr57Cl {\n background: var(--grey-lighten, #eee);\n font-weight: bold;\n color: var(--font, #424242);\n cursor: default;\n }\n button.disabled.s-a4UB0igr57Cl:hover {\n background: inherit;\n cursor: default;\n }\n button.page.s-a4UB0igr57Cl {\n width: 80px;\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5hdGlvbi5zdmVsdGUiLCJzb3VyY2VzIjpbIlBhZ2luYXRpb24uc3ZlbHRlIl0sInNvdXJjZXNDb250ZW50IjpbIjxzY3JpcHQgbGFuZz1cInRzXCI+bGV0IHsgdGFibGUgfSA9ICRwcm9wcygpO1xuZXhwb3J0IHt9O1xuPC9zY3JpcHQ+XG5cbjxzZWN0aW9uPlxuICAgIHsjaWYgdGFibGUucGFnZXMgPT09IHVuZGVmaW5lZH1cbiAgICAgICAge0ByZW5kZXIgbm9wYWdlKCl9XG4gICAgezplbHNlIGlmIHRhYmxlLmNsaWVudFdpZHRoIDwgNjAwfVxuICAgICAgICB7QHJlbmRlciBzbWFsbCgpfVxuICAgIHs6ZWxzZX1cbiAgICAgICAge0ByZW5kZXIgZWxsaXBzaXMoKX1cbiAgICB7L2lmfVxuPC9zZWN0aW9uPlxuXG5cblxueyNzbmlwcGV0IG5vcGFnZSgpfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic21hbGxcIiBjbGFzczpkaXNhYmxlZD17dGFibGUuY3VycmVudFBhZ2UgPT09IDF9IG9uY2xpY2s9eygpID0+IHRhYmxlLnNldFBhZ2UoJ3ByZXZpb3VzJyl9PlxuICAgICAgICAmIzEwMDk0O1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicGFnZVwiPlBhZ2UgPGI+e3RhYmxlLmN1cnJlbnRQYWdlfTwvYj48L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtYWxsXCIgb25jbGljaz17KCkgPT4gdGFibGUuc2V0UGFnZSgnbmV4dCcpfT5cbiAgICAgICAgJiMxMDA5NTtcbiAgICA8L2J1dHRvbj5cbnsvc25pcHBldH1cblxuXG5cbnsjc25pcHBldCBzbWFsbCgpfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic21hbGxcIiBjbGFzczpkaXNhYmxlZD17dGFibGUuY3VycmVudFBhZ2UgPT09IDF9IG9uY2xpY2s9eygpID0+IHRhYmxlLnNldFBhZ2UoMSl9PlxuICAgICAgICAmIzEwMDkyOyYjMTAwOTI7XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M6ZGlzYWJsZWQ9e3RhYmxlLmN1cnJlbnRQYWdlID09PSAxfSBvbmNsaWNrPXsoKSA9PiB0YWJsZS5zZXRQYWdlKCdwcmV2aW91cycpfT5cbiAgICAgICAgJiMxMDA5NDtcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzczpkaXNhYmxlZD17dGFibGUuY3VycmVudFBhZ2UgPT09IHRhYmxlLnBhZ2VDb3VudH0gb25jbGljaz17KCkgPT4gdGFibGUuc2V0UGFnZSgnbmV4dCcpfT5cbiAgICAgICAgJiMxMDA5NTtcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNtYWxsXCIgY2xhc3M6ZGlzYWJsZWQ9e3RhYmxlLmN1cnJlbnRQYWdlID09PSB0YWJsZS5wYWdlQ291bnR9IG9uY2xpY2s9eygpID0+IHRhYmxlLnNldFBhZ2UoJ2xhc3QnKX0+XG4gICAgICAgICYjMTAwOTM7JiMxMDA5MztcbiAgICA8L2J1dHRvbj5cbnsvc25pcHBldH1cblxuXG5cbnsjc25pcHBldCBlbGxpcHNpcygpfVxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzOmRpc2FibGVkPXt0YWJsZS5jdXJyZW50UGFnZSA9PT0gMX0gb25jbGljaz17KCkgPT4gdGFibGUuc2V0UGFnZSgncHJldmlvdXMnKX0+XG4gICAgICAgIHtAaHRtbCB0YWJsZS5pMThuLnByZXZpb3VzfVxuICAgIDwvYnV0dG9uPlxuICAgIHsjZWFjaCB0YWJsZS5wYWdlc1dpdGhFbGxpcHNpcyBhcyBwYWdlfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJiZy1kYXJrZW4tYWN0aXZlXCJcbiAgICAgICAgICAgIGNsYXNzOmFjdGl2ZT17dGFibGUuY3VycmVudFBhZ2UgPT09IHBhZ2V9XG4gICAgICAgICAgICBjbGFzczplbGxpcHNlPXtwYWdlID09PSBudWxsfVxuICAgICAgICAgICAgb25jbGljaz17KCkgPT4gdGFibGUuc2V0UGFnZShwYWdlKX1cbiAgICAgICAgPlxuICAgICAgICAgICAge3BhZ2UgPz8gJy4uLid9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIHsvZWFjaH1cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzczpkaXNhYmxlZD17dGFibGUuY3VycmVudFBhZ2UgPT09IHRhYmxlLnBhZ2VDb3VudH0gb25jbGljaz17KCkgPT4gdGFibGUuc2V0UGFnZSgnbmV4dCcpfT5cbiAgICAgICAge0BodG1sIHRhYmxlLmkxOG4ubmV4dH1cbiAgICA8L2J1dHRvbj5cbnsvc25pcHBldH1cblxuXG48c3R5bGU+XG4gICAgc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogOHB4IDE2cHg7XG4gICAgfVxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWdyZXksICM5ZTllOWUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwsIDAuMnM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5LCAjZTBlMGUwKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgICBidXR0b246Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgICB9XG4gICAgYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ncmV5LCAjZTBlMGUwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG4gICAgfVxuXG4gICAgYnV0dG9uOmZpcnN0LWNoaWxkOm5vdCguc21hbGwpLFxuICAgIGJ1dHRvbjpsYXN0LWNoaWxkOm5vdCguc21hbGwpIHtcbiAgICAgICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIH1cblxuICAgIGJ1dHRvbjpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmV5LWxpZ2h0ZW4sICNlZWUpO1xuICAgIH1cbiAgICBidXR0b24uZWxsaXBzZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gICAgYnV0dG9uLmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdyZXktbGlnaHRlbiwgI2VlZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9udCwgIzQyNDI0Mik7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gICAgYnV0dG9uLmRpc2FibGVkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgICBidXR0b24ucGFnZSB7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWtFQSxJQUFJLHNCQUFPLENBQUM7QUFDWixRQUFRLGFBQWE7QUFDckIsUUFBUSxnQkFBZ0I7QUFDeEI7QUFDQSxJQUFJLHFCQUFNLENBQUM7QUFDWCxRQUFRLG1CQUFtQjtBQUMzQixRQUFRLFlBQVk7QUFDcEIsUUFBUSxXQUFXO0FBQ25CLFFBQVEsZ0NBQWdDO0FBQ3hDLFFBQVEsZUFBZTtBQUN2QixRQUFRLGVBQWU7QUFDdkIsUUFBUSxTQUFTO0FBQ2pCLFFBQVEsVUFBVTtBQUNsQixRQUFRLHFCQUFxQjtBQUM3QixRQUFRLGlCQUFpQjtBQUN6QixRQUFRLHNDQUFzQztBQUM5QyxRQUFRLGtCQUFrQjtBQUMxQixRQUFRLGdCQUFnQjtBQUN4QixRQUFRLGFBQWE7QUFDckI7QUFDQSxJQUFJLHFCQUFNLFlBQVksQ0FBQztBQUN2QixRQUFRLDBCQUEwQjtBQUNsQztBQUNBLElBQUkscUJBQU0sV0FBVyxDQUFDO0FBQ3RCLFFBQVEsNENBQTRDO0FBQ3BELFFBQVEsMEJBQTBCO0FBQ2xDOztBQUVBLElBQUkscUJBQU0sWUFBWSxLQUFLLE1BQU0sQ0FBQztBQUNsQyxJQUFJLHFCQUFNLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQztBQUNsQyxRQUFRLGVBQWU7QUFDdkI7O0FBRUEsSUFBSSxxQkFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDOUIsUUFBUSxxQ0FBcUM7QUFDN0M7QUFDQSxJQUFJLE1BQU0sdUJBQVEsTUFBTSxDQUFDO0FBQ3pCLFFBQVEsbUJBQW1CO0FBQzNCLFFBQVEsZUFBZTtBQUN2QjtBQUNBLElBQUksTUFBTSxzQkFBTyxDQUFDO0FBQ2xCLFFBQVEscUNBQXFDO0FBQzdDLFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsMkJBQTJCO0FBQ25DLFFBQVEsZUFBZTtBQUN2QjtBQUNBLElBQUksTUFBTSx3QkFBUyxNQUFNLENBQUM7QUFDMUIsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSxlQUFlO0FBQ3ZCO0FBQ0EsSUFBSSxNQUFNLG9CQUFLLENBQUM7QUFDaEIsUUFBUSxXQUFXO0FBQ25COyJ9 */"
};
function Pagination($$anchor, $$props) {
check_target(new.target);
push($$props, true, Pagination);
append_styles($$anchor, $$css2);
const nopage = wrap_snippet(Pagination, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment = root2();
var button = first_child(fragment);
let classes;
var button_1 = sibling(button, 2);
var b = sibling(child(button_1));
var text2 = child(b, true);
reset(b);
reset(button_1);
var button_2 = sibling(button_1, 2);
template_effect(() => {
classes = set_class(button, 1, "small s-a4UB0igr57Cl", null, classes, { disabled: strict_equals($$props.table.currentPage, 1) });
set_text(text2, $$props.table.currentPage);
});
delegated("click", button, function click() {
return $$props.table.setPage("previous");
});
delegated("click", button_2, function click_1() {
return $$props.table.setPage("next");
});
append($$anchor2, fragment);
});
const small = wrap_snippet(Pagination, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment_1 = root_12();
var button_3 = first_child(fragment_1);
let classes_1;
var button_4 = sibling(button_3, 2);
let classes_2;
var button_5 = sibling(button_4, 2);
let classes_3;
var button_6 = sibling(button_5, 2);
let classes_4;
template_effect(() => {
classes_1 = set_class(button_3, 1, "small s-a4UB0igr57Cl", null, classes_1, { disabled: strict_equals($$props.table.currentPage, 1) });
classes_2 = set_class(button_4, 1, "s-a4UB0igr57Cl", null, classes_2, { disabled: strict_equals($$props.table.currentPage, 1) });
classes_3 = set_class(button_5, 1, "s-a4UB0igr57Cl", null, classes_3, {
disabled: strict_equals($$props.table.currentPage, $$props.table.pageCount)
});
classes_4 = set_class(button_6, 1, "small s-a4UB0igr57Cl", null, classes_4, {
disabled: strict_equals($$props.table.currentPage, $$props.table.pageCount)
});
});
delegated("click", button_3, function click_2() {
return $$props.table.setPage(1);
});
delegated("click", button_4, function click_3() {
return $$props.table.setPage("previous");
});
delegated("click", button_5, function click_4() {
return $$props.table.setPage("next");
});
delegated("click", button_6, function click_5() {
return $$props.table.setPage("last");
});
append($$anchor2, fragment_1);
});
const ellipsis = wrap_snippet(Pagination, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment_2 = root_3();
var button_7 = first_child(fragment_2);
let classes_5;
html(button_7, () => $$props.table.i18n.previous, true);
reset(button_7);
var node = sibling(button_7, 2);
add_svelte_meta(
() => each(node, 17, () => $$props.table.pagesWithEllipsis, index, ($$anchor3, page) => {
var button_8 = root_22();
let classes_6;
var text_1 = child(button_8, true);
reset(button_8);
template_effect(() => {
classes_6 = set_class(button_8, 1, "bg-darken-active s-a4UB0igr57Cl", null, classes_6, {
active: strict_equals($$props.table.currentPage, get(page)),
ellipse: strict_equals(get(page), null)
});
set_text(text_1, get(page) ?? "...");
});
delegated("click", button_8, function click_7() {
return $$props.table.setPage(get(page));
});
append($$anchor3, button_8);
}),
"each",
Pagination,
50,
4
);
var button_9 = sibling(node, 2);
let classes_7;
html(button_9, () => $$props.table.i18n.next, true);
reset(button_9);
template_effect(() => {
classes_5 = set_class(button_7, 1, "s-a4UB0igr57Cl", null, classes_5, { disabled: strict_equals($$props.table.currentPage, 1) });
classes_7 = set_class(button_9, 1, "s-a4UB0igr57Cl", null, classes_7, {
disabled: strict_equals($$props.table.currentPage, $$props.table.pageCount)
});
});
delegated("click", button_7, function click_6() {
return $$props.table.setPage("previous");
});
delegated("click", button_9, function click_8() {
return $$props.table.setPage("next");
});
append($$anchor2, fragment_2);
});
var $$exports = { ...legacy_api() };
var section = root_4();
var node_1 = child(section);
{
var consequent = ($$anchor2) => {
add_svelte_meta(() => nopage($$anchor2), "render", Pagination, 7, 8);
};
var consequent_1 = ($$anchor2) => {
add_svelte_meta(() => small($$anchor2), "render", Pagination, 9, 8);
};
var alternate = ($$anchor2) => {
add_svelte_meta(() => ellipsis($$anchor2), "render", Pagination, 11, 8);
};
add_svelte_meta(
() => if_block(node_1, ($$render) => {
if (strict_equals($$props.table.pages, void 0)) $$render(consequent);
else if ($$props.table.clientWidth < 600) $$render(consequent_1, 1);
else $$render(alternate, -1);
}),
"if",
Pagination,
6,
4
);
}
reset(section);
append($$anchor, section);
return pop($$exports);
}
if (import.meta.hot) {
Pagination = hmr(Pagination);
import.meta.hot.accept((module) => {
cleanup_styles("s-a4UB0igr57Cl");
Pagination[HMR].update(module.default);
});
}
var Pagination_default = Pagination;
delegate(["click"]);
// node_modules/@vincjo/datatables/dist/src/shared/RowCount.svelte
RowCount[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/RowCount.svelte";
var root3 = add_locations(from_html(`of <b> </b>`, 1), RowCount[FILENAME], [[21, 11]]);
var root_13 = add_locations(from_html(`<button type="button">❌ Clear</button>`), RowCount[FILENAME], [[25, 8]]);
var root_23 = add_locations(from_html(`<b> </b> <!> row(s) selected. <!>`, 1), RowCount[FILENAME], [[19, 4]]);
var root_32 = add_locations(from_html(`<b> </b>- <b> </b>/ <b> </b>`, 1), RowCount[FILENAME], [[33, 8], [34, 8], [35, 8]]);
var root_42 = add_locations(from_html(`<aside class="s-_6jVyL5dWFQR"><!></aside>`), RowCount[FILENAME], [[6, 0]]);
var $$css3 = {
hash: "s-_6jVyL5dWFQR",
code: "\n aside.s-_6jVyL5dWFQR {\n margin: 8px 16px;\n color: var(--font-grey, #757575);\n line-height: 32px;\n font-size: 14px;\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm93Q291bnQuc3ZlbHRlIiwic291cmNlcyI6WyJSb3dDb3VudC5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdCBsYW5nPVwidHNcIj5sZXQgeyB0YWJsZSwgc2VsZWN0aW9uID0gZmFsc2UgfSA9ICRwcm9wcygpO1xuY29uc3QgeyBzdGFydCwgZW5kLCB0b3RhbCwgc2VsZWN0ZWQgfSA9ICRkZXJpdmVkKHRhYmxlLnJvd0NvdW50KTtcbmV4cG9ydCB7fTtcbjwvc2NyaXB0PlxuXG48YXNpZGU+XG4gICAgeyNpZiBzZWxlY3Rpb259XG4gICAgICAgIHtAcmVuZGVyIHNlbGVjdGVkUm93cygpfVxuICAgIHs6ZWxzZSBpZiB0YWJsZS5jbGllbnRXaWR0aCA8IDY0MH1cbiAgICAgICAge0ByZW5kZXIgc21hbGwoKX1cbiAgICB7OmVsc2V9XG4gICAgICAgIHtAcmVuZGVyIHJvd0NvdW50KCl9XG4gICAgey9pZn1cbjwvYXNpZGU+XG5cblxuXG57I3NuaXBwZXQgc2VsZWN0ZWRSb3dzKCl9XG4gICAgPGI+e3NlbGVjdGVkfTwvYj5cbiAgICB7I2lmIHRvdGFsfVxuICAgICAgICBvZiA8Yj57dG90YWx9PC9iPlxuICAgIHsvaWZ9XG4gICAgcm93KHMpIHNlbGVjdGVkLlxuICAgIHsjaWYgc2VsZWN0ZWQgPiAwfVxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbmNsaWNrPXsoKSA9PiB0YWJsZS5jbGVhclNlbGVjdGlvbigpfT7inYwgQ2xlYXI8L2J1dHRvbj5cbiAgICB7L2lmfVxuey9zbmlwcGV0fVxuXG5cblxueyNzbmlwcGV0IHNtYWxsKCl9XG4gICAgeyNpZiB0b3RhbCA+IDB9XG4gICAgICAgIDxiPntzdGFydH08L2I+LVxuICAgICAgICA8Yj57ZW5kfTwvYj4vXG4gICAgICAgIDxiPnt0b3RhbH08L2I+XG4gICAgezplbHNlfVxuICAgICAgICB7dGFibGUuaTE4bi5ub1Jvd3N9XG4gICAgey9pZn1cbnsvc25pcHBldH1cblxuXG5cbnsjc25pcHBldCByb3dDb3VudCgpfVxuICAgIHsjaWYgdG90YWwgPiAwfVxuICAgICAgICB7QGh0bWwgdGFibGUuaTE4bi5yb3dDb3VudFxuICAgICAgICAgICAgLnJlcGxhY2UoJ3tzdGFydH0nLCBgPGI+JHtzdGFydH08L2I+YClcbiAgICAgICAgICAgIC5yZXBsYWNlKCd7ZW5kfScsIGA8Yj4ke2VuZH08L2I+YClcbiAgICAgICAgICAgIC5yZXBsYWNlKCd7dG90YWx9JywgYDxiPiR7dG90YWx9PC9iPmApfVxuICAgIHs6ZWxzZX1cbiAgICAgICAge3RhYmxlLmkxOG4ubm9Sb3dzfVxuICAgIHsvaWZ9XG57L3NuaXBwZXR9XG5cblxuXG48c3R5bGU+XG4gICAgYXNpZGUge1xuICAgICAgICBtYXJnaW46IDhweCAxNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1ncmV5LCAjNzU3NTc1KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUF3REEsSUFBSSxvQkFBSyxDQUFDO0FBQ1YsUUFBUSxnQkFBZ0I7QUFDeEIsUUFBUSxnQ0FBZ0M7QUFDeEMsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxlQUFlO0FBQ3ZCOyJ9 */"
};
function RowCount($$anchor, $$props) {
check_target(new.target);
push($$props, true, RowCount);
append_styles($$anchor, $$css3);
const selectedRows = wrap_snippet(RowCount, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment = root_23();
var b = first_child(fragment);
var text2 = child(b, true);
reset(b);
var node = sibling(b, 2);
{
var consequent = ($$anchor3) => {
var fragment_1 = root3();
var b_1 = sibling(first_child(fragment_1));
var text_1 = child(b_1, true);
reset(b_1);
template_effect(() => set_text(text_1, get(total)));
append($$anchor3, fragment_1);
};
add_svelte_meta(
() => if_block(node, ($$render) => {
if (get(total)) $$render(consequent);
}),
"if",
RowCount,
20,
4
);
}
var node_1 = sibling(node, 2);
{
var consequent_1 = ($$anchor3) => {
var button = root_13();
delegated("click", button, function click() {
return $$props.table.clearSelection();
});
append($$anchor3, button);
};
add_svelte_meta(
() => if_block(node_1, ($$render) => {
if (get(selected) > 0) $$render(consequent_1);
}),
"if",
RowCount,
24,
4
);
}
template_effect(() => set_text(text2, get(selected)));
append($$anchor2, fragment);
});
const small = wrap_snippet(RowCount, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment_2 = comment();
var node_2 = first_child(fragment_2);
{
var consequent_2 = ($$anchor3) => {
var fragment_3 = root_32();
var b_2 = first_child(fragment_3);
var text_2 = child(b_2, true);
reset(b_2);
var b_3 = sibling(b_2, 2);
var text_3 = child(b_3, true);
reset(b_3);
var b_4 = sibling(b_3, 2);
var text_4 = child(b_4, true);
reset(b_4);
template_effect(() => {
set_text(text_2, get(start));
set_text(text_3, get(end));
set_text(text_4, get(total));
});
append($$anchor3, fragment_3);
};
var alternate = ($$anchor3) => {
var text_5 = text();
template_effect(() => set_text(text_5, $$props.table.i18n.noRows));
append($$anchor3, text_5);
};
add_svelte_meta(
() => if_block(node_2, ($$render) => {
if (get(total) > 0) $$render(consequent_2);
else $$render(alternate, -1);
}),
"if",
RowCount,
32,
4
);
}
append($$anchor2, fragment_2);
});
const rowCount = wrap_snippet(RowCount, function($$anchor2) {
validate_snippet_args(...arguments);
var fragment_5 = comment();
var node_3 = first_child(fragment_5);
{
var consequent_3 = ($$anchor3) => {
var fragment_6 = comment();
var node_4 = first_child(fragment_6);
html(node_4, () => $$props.table.i18n.rowCount.replace("{start}", `<b>${get(start)}</b>`).replace("{end}", `<b>${get(end)}</b>`).replace("{total}", `<b>${get(total)}</b>`));
append($$anchor3, fragment_6);
};
var alternate_1 = ($$anchor3) => {
var text_6 = text();
template_effect(() => set_text(text_6, $$props.table.i18n.noRows));
append($$anchor3, text_6);
};
add_svelte_meta(
() => if_block(node_3, ($$render) => {
if (get(total) > 0) $$render(consequent_3);
else $$render(alternate_1, -1);
}),
"if",
RowCount,
44,
4
);
}
append($$anchor2, fragment_5);
});
let selection = prop($$props, "selection", 3, false);
const $$d = user_derived(() => $$props.table.rowCount), start = tag(user_derived(() => get($$d).start), "start"), end = tag(user_derived(() => get($$d).end), "end"), total = tag(user_derived(() => get($$d).total), "total"), selected = tag(user_derived(() => get($$d).selected), "selected");
var $$exports = { ...legacy_api() };
var aside = root_42();
var node_5 = child(aside);
{
var consequent_4 = ($$anchor2) => {
add_svelte_meta(() => selectedRows($$anchor2), "render", RowCount, 8, 8);
};
var consequent_5 = ($$anchor2) => {
add_svelte_meta(() => small($$anchor2), "render", RowCount, 10, 8);
};
var alternate_2 = ($$anchor2) => {
add_svelte_meta(() => rowCount($$anchor2), "render", RowCount, 12, 8);
};
add_svelte_meta(
() => if_block(node_5, ($$render) => {
if (selection()) $$render(consequent_4);
else if ($$props.table.clientWidth < 640) $$render(consequent_5, 1);
else $$render(alternate_2, -1);
}),
"if",
RowCount,
7,
4
);
}
reset(aside);
append($$anchor, aside);
return pop($$exports);
}
if (import.meta.hot) {
RowCount = hmr(RowCount);
import.meta.hot.accept((module) => {
cleanup_styles("s-_6jVyL5dWFQR");
RowCount[HMR].update(module.default);
});
}
var RowCount_default = RowCount;
delegate(["click"]);
// node_modules/@vincjo/datatables/dist/src/shared/Search.svelte
Search[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/Search.svelte";
var root4 = add_locations(from_html(`<input spellcheck="false" class="s-rp-076CzoM69"/>`), Search[FILENAME], [[6, 0]]);
var $$css4 = {
hash: "s-rp-076CzoM69",
code: "\n input.s-rp-076CzoM69 {\n margin: 8px 16px;\n border: 1px solid var(--grey, #e0e0e0);\n color: var(--font-grey, #424242);\n border-radius: 4px;\n outline: none;\n padding: 0 8px;\n line-height: 24px;\n height: 24px;\n background: transparent;\n width: 40%;\n max-width: 176px;\n min-width: 96px;\n transition: all, 0.1s;\n }\n input.s-rp-076CzoM69:focus {\n border: 1px solid var(--grey, #e0e0e0);\n outline: 2px solid var(--grey, #e0e0e0);\n }\n input.s-rp-076CzoM69::placeholder {\n color: #9e9e9e;\n line-height: 24px;\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoLnN2ZWx0ZSIsInNvdXJjZXMiOlsiU2VhcmNoLnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0IGxhbmc9XCJ0c1wiPmxldCB7IHRhYmxlLCB2YWx1ZSB9ID0gJHByb3BzKCk7XG5jb25zdCBzZWFyY2ggPSB0YWJsZS5jcmVhdGVTZWFyY2goKS5pbml0KHZhbHVlKTtcbmV4cG9ydCB7fTtcbjwvc2NyaXB0PlxuXG48aW5wdXRcbiAgICBiaW5kOnZhbHVlPXtzZWFyY2gudmFsdWV9XG4gICAgb25pbnB1dD17KCkgPT4gc2VhcmNoLnNldCgpfVxuICAgIHBsYWNlaG9sZGVyPXt0YWJsZS5pMThuLnNlYXJjaH1cbiAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuLz5cblxuPHN0eWxlPlxuICAgIGlucHV0IHtcbiAgICAgICAgbWFyZ2luOiA4cHggMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleSwgI2UwZTBlMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWdyZXksICM0MjQyNDIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxNzZweDtcbiAgICAgICAgbWluLXdpZHRoOiA5NnB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwsIDAuMXM7XG4gICAgfVxuICAgIGlucHV0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3JleSwgI2UwZTBlMCk7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ncmV5LCAjZTBlMGUwKTtcbiAgICB9XG4gICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICM5ZTllOWU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBLElBQUksb0JBQUssQ0FBQztBQUNWLFFBQVEsZ0JBQWdCO0FBQ3hCLFFBQVEsc0NBQXNDO0FBQzlDLFFBQVEsZ0NBQWdDO0FBQ3hDLFFBQVEsa0JBQWtCO0FBQzFCLFFBQVEsYUFBYTtBQUNyQixRQUFRLGNBQWM7QUFDdEIsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxZQUFZO0FBQ3BCLFFBQVEsdUJBQXVCO0FBQy9CLFFBQVEsVUFBVTtBQUNsQixRQUFRLGdCQUFnQjtBQUN4QixRQUFRLGVBQWU7QUFDdkIsUUFBUSxxQkFBcUI7QUFDN0I7QUFDQSxJQUFJLG9CQUFLLE1BQU0sQ0FBQztBQUNoQixRQUFRLHNDQUFzQztBQUM5QyxRQUFRLHVDQUF1QztBQUMvQztBQUNBLElBQUksb0JBQUssYUFBYSxDQUFDO0FBQ3ZCLFFBQVEsY0FBYztBQUN0QixRQUFRLGlCQUFpQjtBQUN6QjsifQ== */"
};
function Search($$anchor, $$props) {
check_target(new.target);
push($$props, true, Search);
append_styles($$anchor, $$css4);
const search = $$props.table.createSearch().init($$props.value);
var $$exports = { ...legacy_api() };
var input = root4();
remove_input_defaults(input);
validate_binding("bind:value={search.value}", [], () => search, () => "value", 7, 4);
template_effect(() => set_attribute(input, "placeholder", $$props.table.i18n.search));
delegated("input", input, function input_1() {
return search.set();
});
bind_value(
input,
function get2() {
return search.value;
},
function set2($$value) {
search.value = $$value;
}
);
append($$anchor, input);
return pop($$exports);
}
if (import.meta.hot) {
Search = hmr(Search);
import.meta.hot.accept((module) => {
cleanup_styles("s-rp-076CzoM69");
Search[HMR].update(module.default);
});
}
var Search_default = Search;
delegate(["input"]);
// node_modules/@vincjo/datatables/dist/src/shared/Th.svelte
Th[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/Th.svelte";
var root5 = add_locations(from_html(`<th class="s-n04kwz0b7Ni-"><strong class="s-n04kwz0b7Ni-"><!></strong></th>`), Th[FILENAME], [[5, 0, [[6, 4]]]]);
var $$css5 = {
hash: "s-n04kwz0b7Ni-",
code: "\n th.s-n04kwz0b7Ni- {\n background: inherit;\n padding: 8px 20px;\n white-space: nowrap;\n font-size: 13px;\n user-select: none;\n text-align: left;\n border-bottom: 1px solid var(--grey, #e0e0e0);\n }\n th.s-n04kwz0b7Ni- strong:where(.s-n04kwz0b7Ni-) {\n white-space: pre-wrap;\n font-weight: bold;\n font-size: 13.5px;\n line-height: 16px;\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGguc3ZlbHRlIiwic291cmNlcyI6WyJUaC5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdCBsYW5nPVwidHNcIj5sZXQgeyBjaGlsZHJlbiB9ID0gJHByb3BzKCk7XG5leHBvcnQge307XG48L3NjcmlwdD5cblxuPHRoPlxuICAgIDxzdHJvbmc+XG4gICAgICAgIHtAcmVuZGVyIGNoaWxkcmVuPy4oKX1cbiAgICA8L3N0cm9uZz5cbjwvdGg+XG5cbjxzdHlsZT5cbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleSwgI2UwZTBlMCk7XG4gICAgfVxuICAgIHRoIHN0cm9uZyB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFXQSxJQUFJLGlCQUFFLENBQUM7QUFDUCxRQUFRLG1CQUFtQjtBQUMzQixRQUFRLGlCQUFpQjtBQUN6QixRQUFRLG1CQUFtQjtBQUMzQixRQUFRLGVBQWU7QUFDdkIsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxnQkFBZ0I7QUFDeEIsUUFBUSw2Q0FBNkM7QUFDckQ7QUFDQSxJQUFJLGlCQUFFLENBQUMsNkJBQU0sQ0FBQztBQUNkLFFBQVEscUJBQXFCO0FBQzdCLFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsaUJBQWlCO0FBQ3pCOyJ9 */"
};
function Th($$anchor, $$props) {
check_target(new.target);
push($$props, true, Th);
append_styles($$anchor, $$css5);
var $$exports = { ...legacy_api() };
var th = root5();
var strong = child(th);
var node = child(strong);
add_svelte_meta(() => snippet(node, () => $$props.children ?? noop), "render", Th, 7, 8);
reset(strong);
reset(th);
append($$anchor, th);
return pop($$exports);
}
if (import.meta.hot) {
Th = hmr(Th);
import.meta.hot.accept((module) => {
cleanup_styles("s-n04kwz0b7Ni-");
Th[HMR].update(module.default);
});
}
var Th_default = Th;
// node_modules/@vincjo/datatables/dist/src/shared/ThSort.svelte
ThSort[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/ThSort.svelte";
var root6 = add_locations(from_html(`<th><div class="flex s-XR4umQ2XPL-Q"><strong class="s-XR4umQ2XPL-Q"><!></strong> <span></span></div></th>`), ThSort[FILENAME], [[6, 0, [[7, 4, [[8, 8], [11, 8]]]]]]);
var $$css6 = {
hash: "s-XR4umQ2XPL-Q",
code: "\n th.s-XR4umQ2XPL-Q {\n background: inherit;\n padding: 8px 20px;\n white-space: nowrap;\n font-size: 13px;\n user-select: none;\n border-bottom: 1px solid var(--grey, #e0e0e0);\n cursor: pointer;\n }\n th.s-XR4umQ2XPL-Q strong:where(.s-XR4umQ2XPL-Q) {\n white-space: pre-wrap;\n font-size: 13.5px;\n line-height: 16px;\n text-align: left;\n }\n div.flex.s-XR4umQ2XPL-Q {\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: 100%;\n }\n span.s-XR4umQ2XPL-Q {\n padding-left: 8px;\n }\n span.s-XR4umQ2XPL-Q:before,\n span.s-XR4umQ2XPL-Q:after {\n border: 4px solid transparent;\n content: '';\n display: block;\n height: 0;\n width: 0;\n }\n span.s-XR4umQ2XPL-Q:before {\n border-bottom-color: var(--grey, #e0e0e0);\n margin-top: 2px;\n }\n span.s-XR4umQ2XPL-Q:after {\n border-top-color: var(--grey, #e0e0e0);\n margin-top: 2px;\n }\n th.active.s-XR4umQ2XPL-Q span.asc:where(.s-XR4umQ2XPL-Q):before {\n border-bottom-color: var(--font-grey, #9e9e9e);\n }\n th.active.s-XR4umQ2XPL-Q span.desc:where(.s-XR4umQ2XPL-Q):after {\n border-top-color: var(--font-grey, #9e9e9e);\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhTb3J0LnN2ZWx0ZSIsInNvdXJjZXMiOlsiVGhTb3J0LnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0IGxhbmc9XCJ0c1wiPmxldCB7IHRhYmxlLCBmaWVsZCwgZGlyZWN0aW9uLCBjaGlsZHJlbiB9ID0gJHByb3BzKCk7XG5jb25zdCBzb3J0ID0gdGFibGUuY3JlYXRlU29ydChmaWVsZCkuaW5pdChkaXJlY3Rpb24pO1xuZXhwb3J0IHt9O1xuPC9zY3JpcHQ+XG5cbjx0aCBvbmNsaWNrPXsoKSA9PiBzb3J0LnNldCgpfSBjbGFzczphY3RpdmU9e3NvcnQuaXNBY3RpdmV9PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICB7QHJlbmRlciBjaGlsZHJlbigpfVxuICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzOmFzYz17c29ydC5kaXJlY3Rpb24gPT09ICdhc2MnfVxuICAgICAgICAgICAgY2xhc3M6ZGVzYz17c29ydC5kaXJlY3Rpb24gPT09ICdkZXNjJ30+XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvdGg+XG5cbjxzdHlsZT5cbiAgICB0aCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZ3JleSwgI2UwZTBlMCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgdGggc3Ryb25nIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgIGRpdi5mbGV4IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICB9XG4gICAgc3BhbjpiZWZvcmUsXG4gICAgc3BhbjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgfVxuICAgIHNwYW46YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleSwgI2UwZTBlMCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG4gICAgc3BhbjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXksICNlMGUwZTApO1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgfVxuICAgIHRoLmFjdGl2ZSBzcGFuLmFzYzpiZWZvcmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1mb250LWdyZXksICM5ZTllOWUpO1xuICAgIH1cbiAgICB0aC5hY3RpdmUgc3Bhbi5kZXNjOmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZm9udC1ncmV5LCAjOWU5ZTllKTtcbiAgICB9XG48L3N0eWxlPlxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFrQkEsSUFBSSxpQkFBRSxDQUFDO0FBQ1AsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSxlQUFlO0FBQ3ZCLFFBQVEsaUJBQWlCO0FBQ3pCLFFBQVEsNkNBQTZDO0FBQ3JELFFBQVEsZUFBZTtBQUN2QjtBQUNBLElBQUksaUJBQUUsQ0FBQyw2QkFBTSxDQUFDO0FBQ2QsUUFBUSxxQkFBcUI7QUFDN0IsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxpQkFBaUI7QUFDekIsUUFBUSxnQkFBZ0I7QUFDeEI7QUFDQSxJQUFJLEdBQUcsb0JBQUssQ0FBQztBQUNiLFFBQVEsVUFBVTtBQUNsQixRQUFRLGFBQWE7QUFDckIsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSwyQkFBMkI7QUFDbkMsUUFBUSxZQUFZO0FBQ3BCO0FBQ0EsSUFBSSxtQkFBSSxDQUFDO0FBQ1QsUUFBUSxpQkFBaUI7QUFDekI7QUFDQSxJQUFJLG1CQUFJLE9BQU87QUFDZixJQUFJLG1CQUFJLE1BQU0sQ0FBQztBQUNmLFFBQVEsNkJBQTZCO0FBQ3JDLFFBQVEsV0FBVztBQUNuQixRQUFRLGNBQWM7QUFDdEIsUUFBUSxTQUFTO0FBQ2pCLFFBQVEsUUFBUTtBQUNoQjtBQUNBLElBQUksbUJBQUksT0FBTyxDQUFDO0FBQ2hCLFFBQVEseUNBQXlDO0FBQ2pELFFBQVEsZUFBZTtBQUN2QjtBQUNBLElBQUksbUJBQUksTUFBTSxDQUFDO0FBQ2YsUUFBUSxzQ0FBc0M7QUFDOUMsUUFBUSxlQUFlO0FBQ3ZCO0FBQ0EsSUFBSSxFQUFFLHNCQUFPLENBQUMsSUFBSSwyQkFBSSxPQUFPLENBQUM7QUFDOUIsUUFBUSw4Q0FBOEM7QUFDdEQ7QUFDQSxJQUFJLEVBQUUsc0JBQU8sQ0FBQyxJQUFJLDRCQUFLLE1BQU0sQ0FBQztBQUM5QixRQUFRLDJDQUEyQztBQUNuRDsifQ== */"
};
function ThSort($$anchor, $$props) {
check_target(new.target);
push($$props, true, ThSort);
append_styles($$anchor, $$css6);
const sort2 = $$props.table.createSort($$props.field).init($$props.direction);
var $$exports = { ...legacy_api() };
var th = root6();
let classes;
var div = child(th);
var strong = child(div);
var node = child(strong);
add_svelte_meta(() => snippet(node, () => $$props.children), "render", ThSort, 9, 12);
reset(strong);
var span = sibling(strong, 2);
let classes_1;
reset(div);
reset(th);
template_effect(() => {
classes = set_class(th, 1, "s-XR4umQ2XPL-Q", null, classes, { active: sort2.isActive });
classes_1 = set_class(span, 1, "s-XR4umQ2XPL-Q", null, classes_1, {
asc: strict_equals(sort2.direction, "asc"),
desc: strict_equals(sort2.direction, "desc")
});
});
delegated("click", th, function click() {
return sort2.set();
});
append($$anchor, th);
return pop($$exports);
}
if (import.meta.hot) {
ThSort = hmr(ThSort);
import.meta.hot.accept((module) => {
cleanup_styles("s-XR4umQ2XPL-Q");
ThSort[HMR].update(module.default);
});
}
var ThSort_default = ThSort;
delegate(["click"]);
// node_modules/@vincjo/datatables/dist/src/shared/ThFilter.svelte
ThFilter[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/ThFilter.svelte";
var root7 = add_locations(from_html(`<th class="s-BsonrtA4fIJQ"><input type="text" spellcheck="false" class="s-BsonrtA4fIJQ"/></th>`), ThFilter[FILENAME], [[6, 0, [[7, 4]]]]);
var $$css7 = {
hash: "s-BsonrtA4fIJQ",
code: "\n th.s-BsonrtA4fIJQ {\n border-bottom: 1px solid var(--grey, #e0e0e0);\n }\n input.s-BsonrtA4fIJQ {\n width: 100%;\n height: 24px;\n border: none;\n text-align: left;\n padding: 0 20px;\n background: inherit;\n outline: none;\n border-radius: 0;\n font-size: 14px;\n color: var(--font-grey, #757575);\n font-family: Arial, Helvetica, sans-serif;\n }\n input.s-BsonrtA4fIJQ::placeholder {\n color: var(--grey, #bdbdbd);\n font-size: 13px;\n }\n input.s-BsonrtA4fIJQ:focus {\n outline: none;\n border: none;\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGhGaWx0ZXIuc3ZlbHRlIiwic291cmNlcyI6WyJUaEZpbHRlci5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdCBsYW5nPVwidHNcIj5sZXQgeyB0YWJsZSwgZmllbGQsIHZhbHVlLCBjaGVjayB9ID0gJHByb3BzKCk7XG5jb25zdCBmaWx0ZXIgPSB0YWJsZS5jcmVhdGVGaWx0ZXIoZmllbGQsIGNoZWNrKS5pbml0KHZhbHVlKTtcbmV4cG9ydCB7fTtcbjwvc2NyaXB0PlxuXG48dGg+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9e3RhYmxlLmkxOG4uZmlsdGVyfVxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBiaW5kOnZhbHVlPXtmaWx0ZXIudmFsdWV9XG4gICAgICAgIG9uaW5wdXQ9eygpID0+IGZpbHRlci5zZXQoKX1cbiAgICAvPlxuPC90aD5cblxuPHN0eWxlPlxuICAgIHRoIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWdyZXksICNlMGUwZTApO1xuICAgIH1cbiAgICBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1mb250LWdyZXksICM3NTc1NzUpO1xuICAgICAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWdyZXksICNiZGJkYmQpO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgfVxuICAgIGlucHV0OmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdCQSxJQUFJLGlCQUFFLENBQUM7QUFDUCxRQUFRLDZDQUE2QztBQUNyRDtBQUNBLElBQUksb0JBQUssQ0FBQztBQUNWLFFBQVEsV0FBVztBQUNuQixRQUFRLFlBQVk7QUFDcEIsUUFBUSxZQUFZO0FBQ3BCLFFBQVEsZ0JBQWdCO0FBQ3hCLFFBQVEsZUFBZTtBQUN2QixRQUFRLG1CQUFtQjtBQUMzQixRQUFRLGFBQWE7QUFDckIsUUFBUSxnQkFBZ0I7QUFDeEIsUUFBUSxlQUFlO0FBQ3ZCLFFBQVEsZ0NBQWdDO0FBQ3hDLFFBQVEseUNBQXlDO0FBQ2pEO0FBQ0EsSUFBSSxvQkFBSyxhQUFhLENBQUM7QUFDdkIsUUFBUSwyQkFBMkI7QUFDbkMsUUFBUSxlQUFlO0FBQ3ZCO0FBQ0EsSUFBSSxvQkFBSyxNQUFNLENBQUM7QUFDaEIsUUFBUSxhQUFhO0FBQ3JCLFFBQVEsWUFBWTtBQUNwQjsifQ== */"
};
function ThFilter($$anchor, $$props) {
check_target(new.target);
push($$props, true, ThFilter);
append_styles($$anchor, $$css7);
const filter = $$props.table.createFilter($$props.field, $$props.check).init($$props.value);
var $$exports = { ...legacy_api() };
var th = root7();
var input = child(th);
remove_input_defaults(input);
validate_binding("bind:value={filter.value}", [], () => filter, () => "value", 11, 8);
reset(th);
template_effect(() => set_attribute(input, "placeholder", $$props.table.i18n.filter));
delegated("input", input, function input_1() {
return filter.set();
});
bind_value(
input,
function get2() {
return filter.value;
},
function set2($$value) {
filter.value = $$value;
}
);
append($$anchor, th);
return pop($$exports);
}
if (import.meta.hot) {
ThFilter = hmr(ThFilter);
import.meta.hot.accept((module) => {
cleanup_styles("s-BsonrtA4fIJQ");
ThFilter[HMR].update(module.default);
});
}
var ThFilter_default = ThFilter;
delegate(["input"]);
// node_modules/@vincjo/datatables/dist/src/shared/RowsPerPage.svelte
RowsPerPage[FILENAME] = "node_modules/@vincjo/datatables/dist/src/shared/RowsPerPage.svelte";
var root8 = add_locations(from_html(`<span> </span>`), RowsPerPage[FILENAME], [[7, 8]]);
var root_14 = add_locations(from_html(`<option> </option>`), RowsPerPage[FILENAME], [[11, 12]]);
var root_24 = add_locations(from_html(`<span> </span>`), RowsPerPage[FILENAME], [[17, 8]]);
var root_33 = add_locations(from_html(`<aside class="s-QUT-6wJLXR-W"><!> <select class="s-QUT-6wJLXR-W"></select> <!></aside>`), RowsPerPage[FILENAME], [[5, 0, [[9, 4]]]]);
var $$css8 = {
hash: "s-QUT-6wJLXR-W",
code: "\n aside.s-QUT-6wJLXR-W {\n margin: 8px 16px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n height: 32px;\n color: #757575;\n }\n select.s-QUT-6wJLXR-W {\n margin: 0 4px;\n background: var(--bg, #fff);\n color: var(--font-grey, #757575);\n border-radius: 4px;\n border: 1px solid var(--grey, #9e9e9e);\n padding: 2px 4px;\n }\n select.s-QUT-6wJLXR-W:focus {\n outline: 2px solid var(--grey, #e0e0e0);\n }\n\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm93c1BlclBhZ2Uuc3ZlbHRlIiwic291cmNlcyI6WyJSb3dzUGVyUGFnZS5zdmVsdGUiXSwic291cmNlc0NvbnRlbnQiOlsiPHNjcmlwdCBsYW5nPVwidHNcIj5sZXQgeyB0YWJsZSwgb3B0aW9ucyA9IFs1LCAxMCwgMjAsIDUwLCAxMDBdIH0gPSAkcHJvcHMoKTtcbmV4cG9ydCB7fTtcbjwvc2NyaXB0PlxuXG48YXNpZGU+XG4gICAgeyNpZiB0YWJsZS5jbGllbnRXaWR0aCA+IDYwMH1cbiAgICAgICAgPHNwYW4+e3RhYmxlLmkxOG4uc2hvd308L3NwYW4+XG4gICAgey9pZn1cbiAgICA8c2VsZWN0IGJpbmQ6dmFsdWU9e3RhYmxlLnJvd3NQZXJQYWdlfSBvbmNoYW5nZT17KCkgPT4gdGFibGUuc2V0UGFnZSgxKX0+XG4gICAgICAgIHsjZWFjaCBvcHRpb25zIGFzIG9wdGlvbn1cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e29wdGlvbn0+XG4gICAgICAgICAgICAgICAge29wdGlvbn1cbiAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICB7L2VhY2h9XG4gICAgPC9zZWxlY3Q+XG4gICAgeyNpZiB0YWJsZS5jbGllbnRXaWR0aCA+IDYwMH1cbiAgICAgICAgPHNwYW4+e3RhYmxlLmkxOG4uZW50cmllc308L3NwYW4+XG4gICAgey9pZn1cbjwvYXNpZGU+XG5cbjxzdHlsZT5cbiAgICBhc2lkZSB7XG4gICAgICAgIG1hcmdpbjogOHB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICBjb2xvcjogIzc1NzU3NTtcbiAgICB9XG4gICAgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmcsICNmZmYpO1xuICAgICAgICBjb2xvcjogdmFyKC0tZm9udC1ncmV5LCAjNzU3NTc1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmV5LCAjOWU5ZTllKTtcbiAgICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICB9XG4gICAgc2VsZWN0OmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWdyZXksICNlMGUwZTApO1xuICAgIH1cbjwvc3R5bGU+XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQXFCQSxJQUFJLG9CQUFLLENBQUM7QUFDVixRQUFRLGdCQUFnQjtBQUN4QixRQUFRLGFBQWE7QUFDckIsUUFBUSwyQkFBMkI7QUFDbkMsUUFBUSxtQkFBbUI7QUFDM0IsUUFBUSxZQUFZO0FBQ3BCLFFBQVEsY0FBYztBQUN0QjtBQUNBLElBQUkscUJBQU0sQ0FBQztBQUNYLFFBQVEsYUFBYTtBQUNyQixRQUFRLDJCQUEyQjtBQUNuQyxRQUFRLGdDQUFnQztBQUN4QyxRQUFRLGtCQUFrQjtBQUMxQixRQUFRLHNDQUFzQztBQUM5QyxRQUFRLGdCQUFnQjtBQUN4QjtBQUNBLElBQUkscUJBQU0sTUFBTSxDQUFDO0FBQ2pCLFFBQVEsdUNBQXVDO0FBQy9DOyJ9 */"
};
function RowsPerPage($$anchor, $$props) {
check_target(new.target);
push($$props, true, RowsPerPage);
append_styles($$anchor, $$css8);
var $$ownership_validator = create_ownership_validator($$props);
let table = prop($$props, "table", 7), options = prop($$props, "options", 19, () => [5, 10, 20, 50, 100]);
var $$exports = { ...legacy_api() };
var aside = root_33();
var node = child(aside);
{
var consequent = ($$anchor2) => {
var span = root8();
var text2 = child(span, true);
reset(span);
template_effect(() => set_text(text2, table().i18n.show));
append($$anchor2, span);
};
add_svelte_meta(
() => if_block(node, ($$render) => {
if (table().clientWidth > 600) $$render(consequent);
}),
"if",
RowsPerPage,
6,
4
);
}
var select = sibling(node, 2);
add_svelte_meta(
() => each(select, 21, options, index, ($$anchor2, option) => {
var option_1 = root_14();
var text_1 = child(option_1, true);
reset(option_1);
var option_1_value = {};
template_effect(() => {
set_text(text_1, get(option));
if (option_1_value !== (option_1_value = get(option))) {
option_1.value = (option_1.__value = get(option)) ?? "";
}
});
append($$anchor2, option_1);
}),
"each",
RowsPerPage,
10,
8
);
reset(select);
validate_binding("bind:value={table.rowsPerPage}", [], table, () => "rowsPerPage", 9, 12);
var node_1 = sibling(select, 2);
{
var consequent_1 = ($$anchor2) => {
var span_1 = root_24();
var text_2 = child(span_1, true);
reset(span_1);
template_effect(() => set_text(text_2, table().i18n.entries));
append($$anchor2, span_1);
};
add_svelte_meta(
() => if_block(node_1, ($$render) => {
if (table().clientWidth > 600) $$render(consequent_1);
}),
"if",
RowsPerPage,
16,
4
);
}
reset(aside);
delegated("change", select, function change() {
return table().setPage(1);
});
bind_select_value(
select,
function get2() {
return table().rowsPerPage;
},
function set2($$value) {
$$ownership_validator.mutation("table", ["table", "rowsPerPage"], table().rowsPerPage = $$value, 9, 24);
}
);
append($$anchor, aside);
return pop($$exports);
}
if (import.meta.hot) {
RowsPerPage = hmr(RowsPerPage);
import.meta.hot.accept((module) => {
cleanup_styles("s-QUT-6wJLXR-W");
RowsPerPage[HMR].update(module.default);
});
}
var RowsPerPage_default = RowsPerPage;
delegate(["change"]);
// node_modules/@vincjo/datatables/dist/src/shared/EventDispatcher.js
var EventDispatcher = class {
constructor() {
__publicField(this, "listeners", {
change: [],
clearFilters: [],
clearSearch: []
});
__publicField(this, "queue", /* @__PURE__ */ new Set());
}
add(event, callback) {
this.listeners[event].push(callback);
}
async dispatch(event) {
this.queue.add(event);
await new Promise((resolve) => setTimeout(resolve, 40));
if (this.queue.size > 0) {
this.run();
}
this.queue.clear();
}
run() {
for (const event of this.queue) {
for (const callback of this.listeners[event]) {
callback();
}
}
}
};
// node_modules/@vincjo/datatables/dist/src/client/core/value.js
var isNull = (value) => {
if (value === null || value === void 0 || value === "")
return true;
return false;
};
var isNotNull = (value) => {
return !isNull(value);
};
var stringify = (value = null) => {
return String(value).toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "");
};
var isObjectArray = (value) => {
if (typeof value !== "object")
return false;
else if (value === null)
return false;
else if (Array.isArray(value)) {
if (isNotNull(value[0]) && typeof value[0] !== "object")
return false;
}
return true;
};
// node_modules/@vincjo/datatables/dist/src/client/core/check.js
var check = {
isLike: (entry, value) => stringify(entry).includes(stringify(value)),
isNotLike: (entry, value) => stringify(entry).includes(stringify(value)) === false,
startsWith: (entry, value) => stringify(entry).startsWith(stringify(value)),
endsWith: (entry, value) => stringify(entry).endsWith(stringify(value)),
isEqualTo: (entry, value) => stringify(entry) === stringify(value),
isNotEqualTo: (entry, value) => stringify(entry) !== stringify(value),
isGreaterThan: (entry, value) => isNull(entry) ? false : entry > value,
isGreaterThanOrEqualTo: (entry, value) => isNull(entry) ? false : entry >= value,
isLessThan: (entry, value) => isNull(entry) ? false : entry < value,
isLessThanOrEqualTo: (entry, value) => isNull(entry) ? false : entry <= value,
isBetween: (entry, [min, max]) => isNull(entry) ? false : entry >= min && entry <= max,
isStrictlyBetween: (entry, [min, max]) => isNull(entry) ? false : entry > min && entry < max,
isTrue: (entry, _) => entry === true,
isFalse: (entry, _) => entry === false,
isNull: (entry, _) => isNull(entry),
isNotNull: (entry, _) => isNotNull(entry),
// multiple criteria
whereIn: (entry, criteria = []) => {
if (criteria.length === 0)
return false;
for (const { value, check: check2 } of criteria) {
if (value == null ? void 0 : value["key"]) {
return checkByKey(entry, value, check2);
} else if (check2(entry, value)) {
return true;
}
}
return false;
},
// regexp
match: (entry, pattern) => {
const match2 = pattern.match(/^([\/~@;%#'])(.*?)\1([gimsuy]*)$/);
const regex = match2 ? new RegExp(match2[2], match2[3].split("").filter((char, pos, flagArr) => flagArr.indexOf(char) === pos).join("")) : new RegExp(pattern);
return stringify(entry).match(regex) ? true : false;
}
};
var checkByKey = (entry, param, check2) => {
if (!(param == null ? void 0 : param.key))
return false;
const { key, value } = param;
if (Array.isArray(entry) === false && typeof entry === "object") {
const keys = Object.keys(entry);
if (keys.includes(key) && check2(entry[key], value)) {
return true;
}
}
return false;
};
// node_modules/@vincjo/datatables/dist/src/client/core/entry.js
var match = (entry, value, params) => {
params.check = params.check ?? check.isLike;
if (isNull(value)) {
return true;
} else if (isObjectArray(entry)) {
return Object.keys(entry).some((k) => match(entry[k], value, params));
}
return params.check(entry, value);
};
var sift = (entry, value, params) => {
if (Array.isArray(entry)) {
entry = entry.filter((item) => {
const check2 = params.isRecursive === true ? match(item, value, params) : true;
if (typeof item === "object" && check2 === true) {
for (const k of Object.keys(item)) {
item[k] = sift(item[k], value, params);
}
}
return check2;
});
}
if (params.highlight && (typeof entry === "string" || typeof entry === "number") && typeof value === "string" && match(entry, value, params)) {
return emphasize(entry, value);
}
return entry;
};
var emphasize = (entry, value) => {
const search = value.replace(/a/g, "[aàâáä]").replace(/e/g, "[eèêéë]").replace(/i/g, "[iìîíï]").replace(/o/g, "[oòôо́ö]").replace(/u/g, "[uùûúü]").replace(/y/g, "[yỳŷýÿ]");
const exp = new RegExp(`${search}`, "gi");
return String(entry).replace(exp, `<u class="highlight">$&</u>`);
};
var deepEmphasize = (entry, value, callback) => {
const path = callback.toString().split("=>")[1].replace(/\(\)/g, "").replace(/\?/g, "").split(".").splice(1).join(".").trim();
if (path.indexOf(" ") > -1)
return entry;
return deepSet(entry, path, value);
};
var deepSet = (entry, path, value) => {
const initial = entry;
const keys = path.replace(/\[/g, ".[").split(".");
try {
for (let i = 0; i < keys.length; i++) {
let current = keys[i];
let next = keys[i + 1];
if (current.includes("[")) {
current = String(parseInt(current.substring(1, current.length - 1)));
}
if (next && next.includes("[")) {
next = String(parseInt(next.substring(1, next.length - 1)));
}
if (next !== void 0) {
entry[current] = entry[current] ? entry[current] : isNaN(Number(next)) ? {} : [];
} else {
entry[current] = emphasize(entry[current], value);
}
entry = entry[current];
}
return initial;
} catch (_) {
return initial;
}
};
// node_modules/@vincjo/datatables/dist/src/client/core/field.js
var parse = (field, id) => {
if (typeof field === "string") {
return {
callback: (row) => row[field],
id,
key: field
};
} else if (typeof field === "function") {
return {
callback: field,
id,
key: void 0
};
}
throw new Error(`Invalid field argument: ${String(field)}`);
};
// node_modules/@vincjo/datatables/dist/src/client/core/rows.js
var data = {
search: (allRows, { scope, isRecursive, value, check: check2 }, highlight = false) => {
return allRows.filter((row) => {
const keys = scope ?? Object.keys(row);
const fields = keys.map((field) => parse(field));
for (const { key, callback } of fields) {
if (key) {
row[key] = sift(row[key], value, {
highlight,
isRecursive: isRecursive === true
});
} else if (highlight) {
row = deepEmphasize(row, value, callback);
}
}
return fields.some(({ callback }) => {
return match(callback(row), value, { check: check2 });
});
});
},
filter: (allRows, { callback, isRecursive, value, check: check2, key }, highlight = false) => {
return allRows.filter((row) => {
const checked = match(callback(row), value, { check: check2 });
if (key) {
row[key] = sift(row[key], value, {
highlight,
check: check2,
isRecursive: isRecursive === false ? false : true
});
} else if (highlight && checked && value && typeof value === "string") {
row = deepEmphasize(row, value, callback);
}
return checked;
});
},
query: (allRows, { path, value, check: check2 }) => {
return allRows.filter((row) => {
if (path.length === 0) {
return check2(row, value);
}
let obj = row;
let i = 1;
let verify = false;
function recursive(_i) {
}
for (const prop2 of path) {
if (i === 1 && i < path.length) {
obj = obj[prop2];
for (const subobj of obj[prop2]) {
}
}
if (i === path.length) {
console.log(prop2, obj);
obj[prop2] = data.query(obj[prop2], { path: [], value, check: check2 });
if (obj[prop2].length > 0) {
verify = true;
}
}
obj = obj[prop2];
i++;
}
return verify;
});
}
};
var sort = {
asc: (a, b, locales, options) => {
if (a === b)
return 0;
else if (isNull(a))
return 1;
else if (isNull(b))
return -1;
else if (typeof a === "boolean")
return a === false ? 1 : -1;
else if (typeof a === "string")
return a.localeCompare(b, locales, options);
else if (typeof a === "number")
return a - b;
else if (typeof a === "object")
return JSON.stringify(a).localeCompare(JSON.stringify(b), locales, options);
return String(a).localeCompare(String(b), locales, options);
},
desc: (a, b, locales, options) => {
if (a === b)
return 0;
else if (isNull(a))
return 1;
else if (isNull(b))
return -1;
else if (typeof b === "boolean")
return b === false ? 1 : -1;
else if (typeof b === "string")
return b.localeCompare(a, locales, options);
else if (typeof b === "number")
return b - a;
else if (typeof b === "object")
return JSON.stringify(b).localeCompare(JSON.stringify(a), locales, options);
else
return String(b).localeCompare(String(a), locales, options);
}
};
// node_modules/@vincjo/datatables/dist/src/client/AbstractTableHandler.svelte.js
var _selectScope, _rawRows, _search, _sort, _filters, _queries, _rowsPerPage, _currentPage, _element, _clientWidth, _filterCount, _allRows, _rows, _rowCount, _pages, _pageCount, _pagesWithEllipsis, _selected, _isAllSelected;
var AbstractTableHandler = class {
constructor(data2, params) {
__publicField(this, "selectBy");
__privateAdd(this, _selectScope, tag(state("currentPage"), "AbstractTableHandler.selectScope"));
__publicField(this, "highlight");
__publicField(this, "event", new EventDispatcher());
__privateAdd(this, _rawRows, tag(state([]), "AbstractTableHandler.rawRows"));
__privateAdd(this, _search, tag(state(proxy({ value: null })), "AbstractTableHandler.search"));
__privateAdd(this, _sort, tag(state(proxy({})), "AbstractTableHandler.sort"));
__privateAdd(this, _filters, tag(state(proxy([])), "AbstractTableHandler.filters"));
__privateAdd(this, _queries, tag(state(proxy([])), "AbstractTableHandler.queries"));
__privateAdd(this, _rowsPerPage, tag(state(10), "AbstractTableHandler.rowsPerPage"));
__privateAdd(this, _currentPage, tag(state(1), "AbstractTableHandler.currentPage"));
__privateAdd(this, _element, tag(state(void 0), "AbstractTableHandler.element"));
__privateAdd(this, _clientWidth, tag(state(1e3), "AbstractTableHandler.clientWidth"));
__privateAdd(this, _filterCount, tag(user_derived(() => this.filters.length), "AbstractTableHandler.filterCount"));
__privateAdd(this, _allRows, tag(user_derived(() => this.createAllRows()), "AbstractTableHandler.allRows"));
__privateAdd(this, _rows, tag(user_derived(() => this.createRows()), "AbstractTableHandler.rows"));
__privateAdd(this, _rowCount, tag(user_derived(() => this.createRowCount()), "AbstractTableHandler.rowCount"));
__privateAdd(this, _pages, tag(user_derived(() => this.createPages()), "AbstractTableHandler.pages"));
__privateAdd(this, _pageCount, tag(user_derived(() => this.pages.length), "AbstractTableHandler.pageCount"));
__privateAdd(this, _pagesWithEllipsis, tag(user_derived(() => this.createPagesWithEllipsis()), "AbstractTableHandler.pagesWithEllipsis"));
__privateAdd(this, _selected, tag(state(proxy([])), "AbstractTableHandler.selected"));
__privateAdd(this, _isAllSelected, tag(user_derived(() => this.createIsAllSelected()), "AbstractTableHandler.isAllSelected"));
this.rawRows = data2;
this.rowsPerPage = params.rowsPerPage ?? null;
this.highlight = params.highlight ?? false;
this.selectBy = params.selectBy;
}
get selectScope() {
return get(__privateGet(this, _selectScope));
}
set selectScope(value) {
set(__privateGet(this, _selectScope), value, true);
}
get rawRows() {
return get(__privateGet(this, _rawRows));
}
set rawRows(value) {
set(__privateGet(this, _rawRows), value);
}
get search() {
return get(__privateGet(this, _search));
}
set search(value) {
set(__privateGet(this, _search), value, true);
}
get sort() {
return get(__privateGet(this, _sort));
}
set sort(value) {
set(__privateGet(this, _sort), value, true);
}
get filters() {
return get(__privateGet(this, _filters));
}
set filters(value) {
set(__privateGet(this, _filters), value, true);
}
get queries() {
return get(__privateGet(this, _queries));
}
set queries(value) {
set(__privateGet(this, _queries), value, true);
}
get rowsPerPage() {
return get(__privateGet(this, _rowsPerPage));
}
set rowsPerPage(value) {
set(__privateGet(this, _rowsPerPage), value, true);
}
get currentPage() {
return get(__privateGet(this, _currentPage));
}
set currentPage(value) {
set(__privateGet(this, _currentPage), value, true);
}
get element() {
return get(__privateGet(this, _element));
}
set element(value) {
set(__privateGet(this, _element), value, true);
}
get clientWidth() {
return get(__privateGet(this, _clientWidth));
}
set clientWidth(value) {
set(__privateGet(this, _clientWidth), value, true);
}
get filterCount() {
return get(__privateGet(this, _filterCount));
}
set filterCount(value) {
set(__privateGet(this, _filterCount), value);
}
get allRows() {
return get(__privateGet(this, _allRows));
}
set allRows(value) {
set(__privateGet(this, _allRows), value);
}
get rows() {
return get(__privateGet(this, _rows));
}
set rows(value) {
set(__privateGet(this, _rows), value);
}
get rowCount() {
return get(__privateGet(this, _rowCount));
}
set rowCount(value) {
set(__privateGet(this, _rowCount), value);
}
get pages() {
return get(__privateGet(this, _pages));
}
set pages(value) {
set(__privateGet(this, _pages), value);
}
get pageCount() {
return get(__privateGet(this, _pageCount));
}
set pageCount(value) {
set(__privateGet(this, _pageCount), value);
}
get pagesWithEllipsis() {
return get(__privateGet(this, _pagesWithEllipsis));
}
set pagesWithEllipsis(value) {
set(__privateGet(this, _pagesWithEllipsis), value);
}
get selected() {
return get(__privateGet(this, _selected));
}
set selected(value) {
set(__privateGet(this, _selected), value, true);
}
get isAllSelected() {
return get(__privateGet(this, _isAllSelected));
}
set isAllSelected(value) {
set(__privateGet(this, _isAllSelected), value);
}
createAllRows() {
let allRows = snapshot(this.rawRows);
if (this.search.value) {
allRows = data.search(allRows, this.search, this.highlight);
this.event.dispatch("change");
} else if (this.filters.length > 0) {
for (const filter of this.filters) {
allRows = data.filter(allRows, filter, this.highlight);
}
this.event.dispatch("change");
} else if (this.queries.length > 0) {
for (const query of this.queries) {
allRows = data.query(allRows, query);
}
this.event.dispatch("change");
}
return allRows;
}
createRows() {
if (!this.rowsPerPage) return this.allRows;
return this.allRows.slice((this.currentPage - 1) * this.rowsPerPage, this.currentPage * this.rowsPerPage);
}
createRowCount() {
const total = this.allRows.length;
if (!this.rowsPerPage) {
return { total, start: 1, end: total, selected: this.selected.length };
}
return {
total,
start: this.currentPage * this.rowsPerPage - this.rowsPerPage + 1,
end: Math.min(this.currentPage * this.rowsPerPage, total),
selected: this.selected.length
};
}
createPages() {
if (!this.rowsPerPage) {
return [1];
}
const pages = Array.from(Array(Math.ceil(this.allRows.length / this.rowsPerPage)));
return pages.map((_, i) => i + 1);
}
createPagesWithEllipsis() {
if (this.pageCount <= 7) {
return this.pages;
}
const ellipse = null;
const firstPage = 1;
const lastPage = this.pageCount;
if (this.currentPage <= 4) {
return [...this.pages.slice(0, 5), ellipse, lastPage];
} else if (this.currentPage < lastPage - 3) {
return [
firstPage,
ellipse,
...this.pages.slice(this.currentPage - 2, this.currentPage + 1),
ellipse,
lastPage
];
} else {
return [
firstPage,
ellipse,
...this.pages.slice(lastPage - 5, lastPage)
];
}
}
createIsAllSelected() {
if (strict_equals(this.rowCount.total, 0) || !this.selectBy) {
return false;
}
const { callback } = parse(this.selectBy);
if (strict_equals(this.selectScope, "all")) {
const identifiers2 = this.allRows.map(callback);
return identifiers2.every((id) => this.selected.includes(id));
}
const identifiers = this.rows.map(callback);
return identifiers.every((id) => this.selected.includes(id));
}
};
_selectScope = new WeakMap();
_rawRows = new WeakMap();
_search = new WeakMap();
_sort = new WeakMap();
_filters = new WeakMap();
_queries = new WeakMap();
_rowsPerPage = new WeakMap();
_currentPage = new WeakMap();
_element = new WeakMap();
_clientWidth = new WeakMap();
_filterCount = new WeakMap();
_allRows = new WeakMap();
_rows = new WeakMap();
_rowCount = new WeakMap();
_pages = new WeakMap();
_pageCount = new WeakMap();
_pagesWithEllipsis = new WeakMap();
_selected = new WeakMap();
_isAllSelected = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/handlers/SortHandler.svelte.js
var SortHandler = class {
constructor(table) {
__publicField(this, "backup");
__publicField(this, "table");
this.table = table;
this.backup = [];
}
set(field, id, params = {}) {
if (strict_equals(this.table["sort"].id, id, false)) {
this.table["sort"].direction = null;
}
if (strict_equals(this.table["sort"].direction, null) || strict_equals(this.table["sort"].direction, "desc")) {
this.asc(field, id, params);
} else if (strict_equals(this.table["sort"].direction, "asc")) {
this.desc(field, id, params);
}
}
asc(field, id, { locales, options } = {}) {
if (!field) return;
const { callback, key } = parse(field, id);
this.table["sort"] = { id, callback, direction: "asc", key };
this.table["rawRows"] = [...this.table["rawRows"]].sort((x, y) => {
const [a, b] = [callback(x), callback(y)];
return sort.asc(a, b, locales, options);
});
this.save({ id, callback, direction: "asc" });
this.table.setPage(1);
}
desc(field, id, { locales, options } = {}) {
if (!field) return;
const { callback, key } = parse(field, id);
this.table["sort"] = { id, callback, direction: "desc", key };
this.table["rawRows"] = [...this.table["rawRows"]].sort((x, y) => {
const [a, b] = [callback(x), callback(y)];
return sort.desc(a, b, locales, options);
});
this.save({ id, callback, direction: "desc" });
this.table.setPage(1);
}
clear() {
this.backup = [];
this.table["sort"] = {};
}
restore() {
for (const { key, callback, direction, id } of this.backup) {
const field = key ?? callback;
this[direction](field, id);
}
}
save(sort2) {
this.backup = this.backup.filter((item) => strict_equals(item.id, sort2.id, false));
if (this.backup.length >= 3) {
const [_, slot2, slot3] = this.backup;
this.backup = [slot2, slot3, sort2];
} else {
this.backup = [...this.backup, sort2];
}
}
};
// node_modules/@vincjo/datatables/dist/src/client/handlers/FilterHandler.svelte.js
var FilterHandler = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
set(value, field, check2 = null, id, isRecursive = true) {
this.table.setPage(1);
const { callback, key } = parse(field, id);
const filter = { value, id, callback, check: check2, key, isRecursive };
this.table.filters = this.table.filters.filter((filter2) => strict_equals(filter2.id, id, false));
if (isNotNull(value)) {
this.table.filters.push(filter);
}
}
unset(id) {
this.table.setPage(1);
this.table.filters = this.table.filters.filter((filter) => strict_equals(filter.id, id, false));
}
};
// node_modules/@vincjo/datatables/dist/src/client/handlers/QueryHandler.svelte.js
var QueryHandler = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
set(path, value, check2, id) {
this.table.setPage(1);
this.table.queries = this.table.queries.filter((query) => strict_equals(query.id, id, false));
this.table.queries.push({ path, value, check: check2, id });
}
unset(id) {
this.table.setPage(1);
this.table.queries = this.table.queries.filter((query) => strict_equals(query.id, id, false));
}
};
// node_modules/@vincjo/datatables/dist/src/client/handlers/SelectHandler.svelte.js
var SelectHandler = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
set(value) {
if (this.table.selected.includes(value)) {
this.table.selected = this.table.selected.filter((item) => strict_equals(item, value, false));
} else {
this.table.selected = [value, ...this.table.selected];
}
}
all(scope) {
const rows = strict_equals(scope, "currentPage") ? this.table.rows : this.table.allRows;
const { callback } = parse(this.table["selectBy"]);
const selection = rows.map(callback);
if (strict_equals(scope, "currentPage")) {
if (this.table.isAllSelected) {
this.table.selected = this.table.selected.filter((item) => strict_equals(selection.includes(item), false));
} else {
this.table.selected = [.../* @__PURE__ */ new Set([...selection, ...this.table.selected])];
}
} else {
this.table.isAllSelected ? this.clear() : this.table.selected = selection;
}
}
clear() {
this.table.selected = [];
}
getRows() {
const { callback } = parse(this.table["selectBy"]);
return this.table["rawRows"].filter((row) => {
return this.table.selected.includes(callback(row));
});
}
};
// node_modules/@vincjo/datatables/dist/src/client/handlers/PageHandler.svelte.js
var PageHandler = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
goto(page) {
if (this.table.rowsPerPage) {
if (page >= 1 && page <= this.table.pageCount) {
this.table.currentPage = page;
this.table["event"].dispatch("change");
}
}
}
previous() {
this.goto(this.table.currentPage - 1);
}
next() {
this.goto(this.table.currentPage + 1);
}
last() {
this.goto(this.table.pageCount);
}
};
// node_modules/@vincjo/datatables/dist/src/client/handlers/SearchHandler.svelte.js
var SearchHandler = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
set(value, scope) {
this.table.setPage(1);
this.table["search"] = { value, scope };
}
recursive(value, scope) {
this.table.setPage(1);
this.table["search"] = { value, scope, isRecursive: true };
}
regex(pattern, scope) {
this.table.setPage(1);
this.table["search"] = { value: pattern, scope, check: check.match };
}
clear() {
this.table.setPage(1);
this.table["search"] = { value: "" };
}
};
// node_modules/@vincjo/datatables/dist/src/shared/builders/ViewBuilder.svelte.js
var _columns;
var ViewBuilder = class {
constructor(table, columns) {
__privateAdd(this, _columns, tag(state(proxy([])), "ViewBuilder.columns"));
__publicField(this, "table");
__publicField(this, "interval");
__publicField(this, "mutation");
this.table = table;
this.columns = [];
this.interval = setInterval(() => this.createColumns(columns), 200);
}
get columns() {
return get(__privateGet(this, _columns));
}
set columns(value) {
set(__privateGet(this, _columns), value, true);
}
toggle(name) {
if (!this.table.element) return;
const column = this.columns.find((column2) => strict_equals(column2.name, name));
if (!column) return;
column.toggle();
}
createColumns(columns) {
var _a;
if (!((_a = this.table) == null ? void 0 : _a.element)) {
return;
}
clearInterval(this.interval);
this.columns = columns.map(({ name, index: index2, isVisible, isFrozen }) => {
return {
name,
index: index2,
isVisible: strict_equals(isVisible, false) ? false : true,
isFrozen: strict_equals(isFrozen, true) ? true : false,
element: this.table.element,
toggle() {
this.isVisible = !this.isVisible;
this.element.querySelectorAll(`tr > *:nth-child(${this.index + 1})`).forEach((element) => {
element.classList.toggle("hidden");
});
}
};
});
this.preset();
this.mutation = new MutationObserver(() => {
setTimeout(
() => {
this.preset();
},
2
);
});
this.mutation.observe(this.table.element, { childList: true, subtree: true });
}
preset() {
let left = 0;
for (const { isVisible, isFrozen, index: index2 } of this.columns) {
if (strict_equals(isFrozen, true)) {
left += this.freeze(index2, left);
}
if (strict_equals(isVisible, false)) {
this.table.element.querySelectorAll(`tr > *:nth-child(${index2 + 1})`).forEach((element) => {
element.classList.add("hidden");
});
}
}
}
freeze(index2, left = 0) {
const column = this.table.element.querySelector(`thead th:nth-child(${index2 + 1})`);
const { width } = column.getBoundingClientRect();
this.table.element.querySelectorAll(`tr > *:nth-child(${index2 + 1})`).forEach((element) => {
element.style.position = "sticky";
element.style.left = left + "px";
element.style.width = width + "px";
});
return width;
}
setPosition(current, destination) {
this.table.element.querySelectorAll("tr").forEach((row) => {
const cells = [].slice.call(row.querySelectorAll("th, td"));
if (current > destination) {
cells[destination].parentNode.insertBefore(cells[current], cells[destination]);
} else {
cells[destination].parentNode.insertBefore(cells[current], cells[destination].nextSibling);
}
});
}
};
_columns = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/SearchBuilder.svelte.js
var _value;
var SearchBuilder = class {
constructor(searchHandler, scope) {
__privateAdd(this, _value, tag(state(""), "SearchBuilder.value"));
__publicField(this, "scope");
__publicField(this, "searchHandler");
this.searchHandler = searchHandler;
this.scope = scope;
this.cleanup();
}
get value() {
return get(__privateGet(this, _value));
}
set value(value) {
set(__privateGet(this, _value), value, true);
}
set() {
this.searchHandler.set(this.value, this.scope);
}
init(value) {
this.value = value;
this.set();
return this;
}
recursive() {
this.searchHandler.recursive(this.value, this.scope);
}
regex() {
this.searchHandler.regex(this.value, this.scope);
}
clear() {
this.value = "";
this.searchHandler.clear();
}
cleanup() {
this.searchHandler["table"].on("clearSearch", () => this.clear());
}
};
_value = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/FilterBuilder.svelte.js
var _value2;
var FilterBuilder = class {
constructor(filterHandler, field, check2) {
__privateAdd(this, _value2, tag(state(""), "FilterBuilder.value"));
__publicField(this, "id", Math.random().toString(36).substring(2, 15));
__publicField(this, "filterHandler");
__publicField(this, "field");
__publicField(this, "check");
__publicField(this, "isRecursive", true);
this.filterHandler = filterHandler;
this.field = field;
this.check = check2 ?? check.isLike;
this.cleanup();
}
get value() {
return get(__privateGet(this, _value2));
}
set value(value) {
set(__privateGet(this, _value2), value, true);
}
set(check2) {
this.filterHandler.set(this.value, this.field, check2 ?? this.check, this.id, this.isRecursive);
}
init(value) {
this.value = value;
this.set();
return this;
}
isNotRecursive() {
this.isRecursive = false;
return this;
}
clear() {
this.value = "";
this.filterHandler.unset(this.id);
}
cleanup() {
this.filterHandler["table"].on("clearFilters", () => this.clear());
}
};
_value2 = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/QueryBuilder.svelte.js
var _value3;
var QueryBuilder = class {
constructor(queryHandler) {
__privateAdd(this, _value3, tag(state(""), "QueryBuilder.value"));
__publicField(this, "id", Math.random().toString(36).substring(2, 15));
__publicField(this, "queryHandler");
__publicField(this, "path", []);
__publicField(this, "check");
this.queryHandler = queryHandler;
this.cleanup();
}
get value() {
return get(__privateGet(this, _value3));
}
set value(value) {
set(__privateGet(this, _value3), value, true);
}
from(path) {
this.path = path;
return this;
}
where(filter) {
this.check = filter;
return this;
}
set(value) {
if (value) this.value = value;
this.queryHandler.set(this.path, this.value, this.check, this.id);
}
clear() {
this.value = "";
this.queryHandler.unset(this.id);
}
cleanup() {
this.queryHandler["table"].on("clearFilters", () => this.clear());
}
};
_value3 = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/AdvancedFilterBuilder.svelte.js
var _criteria;
var AdvancedFilterBuilder = class {
constructor(filterHandler, field, check2) {
__privateAdd(this, _criteria, tag(state(proxy([])), "AdvancedFilterBuilder.criteria"));
__publicField(this, "id", Math.random().toString(36).substring(2, 15));
__publicField(this, "filterHandler");
__publicField(this, "collection");
__publicField(this, "field");
__publicField(this, "check");
__publicField(this, "isRecursive", true);
this.filterHandler = filterHandler;
this.field = field;
this.collection = [];
this.check = check2 ?? check.isEqualTo;
this.cleanup();
}
get criteria() {
return get(__privateGet(this, _criteria));
}
set criteria(value) {
set(__privateGet(this, _criteria), value, true);
}
set(value, check2) {
if (this.collection.find((criterion) => strict_equals(criterion.value, value))) {
this.collection = this.collection.filter((criterion) => strict_equals(criterion.value, value, false));
} else {
this.collection = [{ value, check: check2 ?? this.check }, ...this.collection];
}
if (strict_equals(this.collection.length, 0)) {
return this.clear();
}
this.filterHandler.set(this.collection, this.field, check.whereIn, this.id, this.isRecursive);
this.criteria = this.collection.map((criterion) => criterion.value);
}
isNotRecursive() {
this.isRecursive = false;
return this;
}
clear() {
this.collection = [];
this.criteria = [];
this.filterHandler.unset(this.id);
}
cleanup() {
this.filterHandler["table"].on("clearFilters", () => this.clear());
}
};
_criteria = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/CalculationBuilder.svelte.js
var CalcultationBuilder = class {
constructor(table, field) {
__publicField(this, "callback");
__publicField(this, "precision");
__publicField(this, "table");
this.table = table;
this.callback = parse(field).callback;
}
distinct(param) {
const values = this.table.allRows.map((row) => this.callback(row));
const aggregate = values.reduce(
(acc, curr) => {
if (Array.isArray(curr)) {
for (const item of curr) {
acc[item] = (acc[item] ?? 0) + 1;
}
return acc;
}
acc[curr] = (acc[curr] ?? 0) + 1;
return acc;
},
{}
);
const result = Object.entries(aggregate).map(([value, count]) => ({ value, count }));
if (param == null ? void 0 : param.sort) {
const [field, direction] = param.sort;
if (strict_equals(field, "count")) {
result.sort((x, y) => sort.asc(x.value, y.value));
}
result.sort((a, b) => sort[direction](a[field], b[field]));
}
return result;
}
avg(param) {
this.precision = (param == null ? void 0 : param.precision) ?? 2;
if (strict_equals(this.table.allRows.length, 0)) return 0;
const values = this.table.allRows.map((row) => this.callback(row)).filter(Boolean);
return this.round(values.reduce((acc, curr) => acc + curr, 0) / values.length);
}
sum(param) {
this.precision = (param == null ? void 0 : param.precision) ?? 2;
const values = this.table.allRows.map((row) => this.callback(row));
return this.round(values.reduce((acc, curr) => acc + curr, 0));
}
median(param) {
this.precision = (param == null ? void 0 : param.precision) ?? 2;
const values = [...this.table.allRows.map((row) => this.callback(row))].sort((a, b) => a - b).filter(Boolean);
if (strict_equals(values.length, 0)) return null;
const half = Math.floor(values.length / 2);
return values.length % 2 ? values[half] : this.round((values[half - 1] + values[half]) / 2);
}
bounds() {
const values = this.table.allRows.map((row) => this.callback(row));
const numbers = values.filter(Boolean);
if (strict_equals(numbers.length, 0)) return [null, null];
return [Math.min(...numbers), Math.max(...numbers)];
}
round(value) {
return Number(value.toFixed(this.precision));
}
};
// node_modules/@vincjo/datatables/dist/src/client/builders/SortBuilder.svelte.js
var _direction, _isActive;
var SortBuilder = class {
constructor(sortHandler, field, params) {
__privateAdd(this, _direction, tag(user_derived(() => this.createDirection()), "SortBuilder.direction"));
__privateAdd(this, _isActive, tag(user_derived(() => this.createIsActive()), "SortBuilder.isActive"));
__publicField(this, "id", Math.random().toString(36).substring(2, 15));
__publicField(this, "sortHandler");
__publicField(this, "field");
__publicField(this, "params");
this.sortHandler = sortHandler;
this.field = field;
this.params = params ?? {};
}
get direction() {
return get(__privateGet(this, _direction));
}
set direction(value) {
set(__privateGet(this, _direction), value);
}
get isActive() {
return get(__privateGet(this, _isActive));
}
set isActive(value) {
set(__privateGet(this, _isActive), value);
}
set() {
this.sortHandler.set(this.field, this.id, this.params);
}
init(direction) {
if (!direction) return this;
this[direction]();
return this;
}
asc() {
this.sortHandler.asc(this.field, this.id, this.params);
}
desc() {
this.sortHandler.desc(this.field, this.id, this.params);
}
clear() {
this.sortHandler.clear();
}
createIsActive() {
var _a;
if (strict_equals(this.id, (_a = this.sortHandler["table"]["sort"]) == null ? void 0 : _a.id)) {
return true;
}
return false;
}
createDirection() {
var _a;
if (strict_equals(this.isActive, false)) return null;
return (_a = this.sortHandler["table"]["sort"]) == null ? void 0 : _a.direction;
}
};
_direction = new WeakMap();
_isActive = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/builders/CSVBuilder.svelte.js
var CSVBuilder = class {
constructor(table) {
__publicField(this, "table");
this.table = table;
}
download(filename) {
const csv = this.get();
const element = document.createElement("a");
element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(csv));
element.setAttribute("download", filename);
element.style.display = "none";
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
get() {
const rows = this.getRows();
rows.unshift(this.getHeader().join(","));
return rows.join("\r\n");
}
getRows() {
return this.table.allRows.map((row) => {
const entries = Object.entries(row).map(([_, value]) => {
if (strict_equals(value, null)) return "";
if (strict_equals(typeof value, "number")) {
return value;
}
return `"${value}"`;
});
return entries.join(",");
});
}
getHeader() {
const [row] = this.table.allRows;
return Object.entries(row).map(([key, _]) => {
return `"${key}"`;
});
}
};
// node_modules/@vincjo/datatables/dist/src/client/builders/RecordFilterBuilder.svelte.js
var _value4, _records, _rawRecords, _filter;
var RecordFilterBuilder = class {
constructor(records) {
__privateAdd(this, _value4, tag(state(""), "RecordFilterBuilder.value"));
__privateAdd(this, _records, tag(user_derived(() => this.createRecords()), "RecordFilterBuilder.records"));
__privateAdd(this, _rawRecords, tag(state([]), "RecordFilterBuilder.rawRecords"));
__privateAdd(this, _filter, tag(state(""), "RecordFilterBuilder.filter"));
this.rawRecords = records;
}
get value() {
return get(__privateGet(this, _value4));
}
set value(value) {
set(__privateGet(this, _value4), value, true);
}
get records() {
return get(__privateGet(this, _records));
}
set records(value) {
set(__privateGet(this, _records), value);
}
get rawRecords() {
return get(__privateGet(this, _rawRecords));
}
set rawRecords(value) {
set(__privateGet(this, _rawRecords), value);
}
get filter() {
return get(__privateGet(this, _filter));
}
set filter(value) {
set(__privateGet(this, _filter), value, true);
}
set() {
this.filter = this.value;
}
createRecords() {
if (isNotNull(this.filter)) {
return this.rawRecords.filter((record) => match(record, this.filter, { check: check.isLike }));
}
return this.rawRecords;
}
};
_value4 = new WeakMap();
_records = new WeakMap();
_rawRecords = new WeakMap();
_filter = new WeakMap();
// node_modules/@vincjo/datatables/dist/src/client/TableHandler.svelte.js
var TableHandler = class extends AbstractTableHandler {
constructor(data2 = [], params = { rowsPerPage: null }) {
super(data2, params);
__publicField(this, "i18n");
__publicField(this, "view");
__publicField(this, "sortHandler");
__publicField(this, "filterHandler");
__publicField(this, "queryHandler");
__publicField(this, "selectHandler");
__publicField(this, "pageHandler");
__publicField(this, "searchHandler");
this.translate(params.i18n);
this.sortHandler = new SortHandler(this);
this.filterHandler = new FilterHandler(this);
this.queryHandler = new QueryHandler(this);
this.selectHandler = new SelectHandler(this);
this.pageHandler = new PageHandler(this);
this.searchHandler = new SearchHandler(this);
}
setRows(data2) {
var _a;
const scrollTop = ((_a = this.element) == null ? void 0 : _a.scrollTop) ?? 0;
this.rawRows = data2;
untrack(() => {
this.event.dispatch("change");
this.sortHandler.restore();
if (this.element) {
setTimeout(() => this.element.scrollTop = scrollTop, 2);
}
});
}
setRowsPerPage(value) {
this.rowsPerPage = value;
this.setPage(1);
}
setPage(value) {
switch (value) {
case "previous":
return this.pageHandler.previous();
case "next":
return this.pageHandler.next();
case "last":
return this.pageHandler.last();
default:
return this.pageHandler.goto(value);
}
}
createSearch(scope) {
return new SearchBuilder(this.searchHandler, scope);
}
clearSearch() {
this.searchHandler.clear();
this.event.dispatch("clearSearch");
this.setPage(1);
}
createRecordFilter(records) {
return new RecordFilterBuilder(records);
}
createSort(field, params) {
return new SortBuilder(this.sortHandler, field, params);
}
clearSort() {
this.sortHandler.clear();
}
clearFilters() {
this.filters = [];
this.event.dispatch("clearFilters");
this.setPage(1);
}
createAdvancedFilter(field, check2) {
return new AdvancedFilterBuilder(this.filterHandler, field, check2);
}
createFilter(field, check2) {
return new FilterBuilder(this.filterHandler, field, check2);
}
createQuery() {
return new QueryBuilder(this.queryHandler);
}
select(value) {
this.selectHandler.set(value);
}
selectAll(params = {}) {
this.selectScope = strict_equals(params.scope, "all") ? "all" : "currentPage";
this.selectHandler.all(this.selectScope);
}
getSelectedRows() {
return this.selectHandler.getRows();
}
clearSelection() {
this.selectHandler.clear();
}
on(event, callback) {
this.event.add(event, callback);
}
createCalculation(field) {
return new CalcultationBuilder(this, field);
}
createCSV() {
return new CSVBuilder(this);
}
createView(columns) {
this.view = new ViewBuilder(this, columns);
return this.view;
}
getView() {
return this.view;
}
translate(i18n) {
this.i18n = {
...{
search: "Search...",
show: "Show",
entries: "entries",
filter: "Filter",
rowCount: "Showing {start} to {end} of {total} entries",
noRows: "No entries found",
previous: "Previous",
next: "Next"
},
...i18n
};
}
};
export {
Datatable_default as Datatable,
Pagination_default as Pagination,
RecordFilterBuilder as RecordFilter,
RowCount_default as RowCount,
RowsPerPage_default as RowsPerPage,
Search_default as Search,
TableHandler,
Th_default as Th,
ThFilter_default as ThFilter,
ThSort_default as ThSort,
check
};
//# sourceMappingURL=@vincjo_datatables.js.map