dn-react-router-toolkit 0.7.7 → 0.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/create_api_handler.d.mts +5 -5
- package/dist/api/create_api_handler.d.ts +5 -5
- package/dist/client/env_loader.d.mts +2 -2
- package/dist/client/env_loader.d.ts +2 -2
- package/dist/client/env_loader.js +2 -12
- package/dist/client/env_loader.mjs +2 -2
- package/dist/client/file_input.d.mts +3 -2
- package/dist/client/file_input.d.ts +3 -2
- package/dist/client/file_input.js +30 -37
- package/dist/client/file_input.mjs +33 -28
- package/dist/client/index.d.mts +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +38 -44
- package/dist/client/index.mjs +39 -33
- package/dist/client/store_text_editor.d.mts +2 -2
- package/dist/client/store_text_editor.d.ts +2 -2
- package/dist/client/store_text_editor.js +3 -12
- package/dist/client/store_text_editor.mjs +3 -2
- package/dist/crud/crud_form.d.mts +5 -4
- package/dist/crud/crud_form.d.ts +5 -4
- package/dist/crud/crud_form.js +83 -72
- package/dist/crud/crud_form.mjs +88 -62
- package/dist/crud/crud_form_provider.d.mts +10 -8
- package/dist/crud/crud_form_provider.d.ts +10 -8
- package/dist/crud/crud_form_provider.js +2 -12
- package/dist/crud/crud_form_provider.mjs +6 -3
- package/dist/crud/crud_loader.d.mts +1 -1
- package/dist/crud/crud_loader.d.ts +1 -1
- package/dist/crud/crud_page.d.mts +10 -6
- package/dist/crud/crud_page.d.ts +10 -6
- package/dist/crud/crud_page.js +281 -409
- package/dist/crud/crud_page.mjs +286 -399
- package/dist/crud/generate_pages.d.mts +10 -2
- package/dist/crud/generate_pages.d.ts +10 -2
- package/dist/crud/generate_pages.js +17 -14
- package/dist/crud/generate_pages.mjs +17 -4
- package/dist/crud/index.d.mts +2 -1
- package/dist/crud/index.d.ts +2 -1
- package/dist/crud/index.js +299 -404
- package/dist/crud/index.mjs +304 -404
- package/dist/form/create_form_component.d.mts +3 -2
- package/dist/form/create_form_component.d.ts +3 -2
- package/dist/form/create_form_component.js +3 -12
- package/dist/form/create_form_component.mjs +3 -2
- package/dist/form/form_components.d.mts +5 -4
- package/dist/form/form_components.d.ts +5 -4
- package/dist/form/form_components.js +3 -12
- package/dist/form/form_components.mjs +3 -2
- package/dist/form/index.d.mts +1 -0
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.js +3 -12
- package/dist/form/index.mjs +3 -2
- package/dist/post/editor_toolbar.d.mts +4 -3
- package/dist/post/editor_toolbar.d.ts +4 -3
- package/dist/post/editor_toolbar.js +116 -273
- package/dist/post/editor_toolbar.mjs +123 -263
- package/dist/post/index.d.mts +1 -0
- package/dist/post/index.d.ts +1 -0
- package/dist/post/index.js +329 -411
- package/dist/post/index.mjs +337 -409
- package/dist/post/post_form_page.d.mts +5 -4
- package/dist/post/post_form_page.d.ts +5 -4
- package/dist/post/post_form_page.js +331 -413
- package/dist/post/post_form_page.mjs +337 -409
- package/dist/post/thumbnail_picker.d.mts +3 -2
- package/dist/post/thumbnail_picker.d.ts +3 -2
- package/dist/post/thumbnail_picker.js +14 -23
- package/dist/post/thumbnail_picker.mjs +14 -13
- package/dist/seo/index.d.mts +1 -1
- package/dist/seo/index.d.ts +1 -1
- package/dist/seo/index.js +2 -2
- package/dist/seo/index.mjs +2 -2
- package/dist/seo/seo.d.mts +2 -2
- package/dist/seo/seo.d.ts +2 -2
- package/dist/seo/seo.js +2 -2
- package/dist/seo/seo.mjs +2 -2
- package/dist/table/buttons.d.mts +2 -2
- package/dist/table/buttons.d.ts +2 -2
- package/dist/table/buttons.js +42 -57
- package/dist/table/buttons.mjs +42 -47
- package/dist/table/index.d.mts +1 -0
- package/dist/table/index.d.ts +1 -0
- package/dist/table/index.js +185 -338
- package/dist/table/index.mjs +185 -328
- package/dist/table/page.d.mts +5 -4
- package/dist/table/page.d.ts +5 -4
- package/dist/table/page.js +185 -338
- package/dist/table/page.mjs +185 -328
- package/dist/table/table.d.mts +5 -4
- package/dist/table/table.d.ts +5 -4
- package/dist/table/table.js +77 -237
- package/dist/table/table.mjs +77 -227
- package/package.json +7 -5
package/dist/crud/index.js
CHANGED
|
@@ -7609,7 +7609,6 @@ module.exports = __toCommonJS(crud_exports);
|
|
|
7609
7609
|
var import_react_router = require("react-router");
|
|
7610
7610
|
var import_react_store_input = require("react-store-input");
|
|
7611
7611
|
var import_react = require("react");
|
|
7612
|
-
var import_react2 = __toESM(require("react"));
|
|
7613
7612
|
|
|
7614
7613
|
// src/crud/serialize.ts
|
|
7615
7614
|
function serialize(value) {
|
|
@@ -7705,6 +7704,7 @@ function deserialize(data) {
|
|
|
7705
7704
|
}
|
|
7706
7705
|
|
|
7707
7706
|
// src/crud/crud_form_provider.tsx
|
|
7707
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
7708
7708
|
var FormContext = (0, import_react.createContext)({});
|
|
7709
7709
|
function useFormContext() {
|
|
7710
7710
|
return (0, import_react.useContext)(FormContext);
|
|
@@ -7785,19 +7785,17 @@ function CrudFormProvider({
|
|
|
7785
7785
|
delete: deleteItem,
|
|
7786
7786
|
columns
|
|
7787
7787
|
};
|
|
7788
|
-
return /* @__PURE__ */
|
|
7788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FormContext.Provider, { value, children });
|
|
7789
7789
|
}
|
|
7790
7790
|
|
|
7791
|
-
// src/crud/crud_form.tsx
|
|
7792
|
-
var import_react8 = __toESM(require("react"));
|
|
7793
|
-
|
|
7794
7791
|
// src/form/create_form_component.tsx
|
|
7795
7792
|
var import_utils = require("dn-react-toolkit/utils");
|
|
7796
|
-
var
|
|
7793
|
+
var import_react2 = require("react");
|
|
7794
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
7797
7795
|
function createComponent(tag, options) {
|
|
7798
7796
|
return function FormComponent({ className, ...props }) {
|
|
7799
7797
|
const Tag = tag;
|
|
7800
|
-
return /* @__PURE__ */
|
|
7798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Tag, { ...props, className: (0, import_utils.cn)(options.className, className) });
|
|
7801
7799
|
};
|
|
7802
7800
|
}
|
|
7803
7801
|
|
|
@@ -7816,12 +7814,12 @@ var FormLabel = createComponent("label", {
|
|
|
7816
7814
|
var import_react_store_input3 = require("react-store-input");
|
|
7817
7815
|
|
|
7818
7816
|
// src/client/env_loader.tsx
|
|
7819
|
-
var import_react4 = __toESM(require("react"));
|
|
7820
7817
|
var import_react_router2 = require("react-router");
|
|
7818
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
7821
7819
|
|
|
7822
7820
|
// src/client/file_input.tsx
|
|
7823
|
-
var
|
|
7824
|
-
var
|
|
7821
|
+
var import_react3 = require("react");
|
|
7822
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
7825
7823
|
|
|
7826
7824
|
// src/client/use_user_agent.tsx
|
|
7827
7825
|
var import_react_router3 = require("react-router");
|
|
@@ -7829,7 +7827,8 @@ var import_react_router3 = require("react-router");
|
|
|
7829
7827
|
// src/client/store_text_editor.tsx
|
|
7830
7828
|
var import_dn_react_text_editor = require("dn-react-text-editor");
|
|
7831
7829
|
var import_react_store_input2 = require("react-store-input");
|
|
7832
|
-
var
|
|
7830
|
+
var import_react4 = require("react");
|
|
7831
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
7833
7832
|
function StoreTextEditor({
|
|
7834
7833
|
store,
|
|
7835
7834
|
name,
|
|
@@ -7839,8 +7838,8 @@ function StoreTextEditor({
|
|
|
7839
7838
|
ref,
|
|
7840
7839
|
...props
|
|
7841
7840
|
}) {
|
|
7842
|
-
const controllerRef = (0,
|
|
7843
|
-
(0,
|
|
7841
|
+
const controllerRef = (0, import_react4.useRef)(null);
|
|
7842
|
+
(0, import_react4.useImperativeHandle)(
|
|
7844
7843
|
ref,
|
|
7845
7844
|
() => controllerRef.current,
|
|
7846
7845
|
[]
|
|
@@ -7888,7 +7887,7 @@ function StoreTextEditor({
|
|
|
7888
7887
|
}
|
|
7889
7888
|
return void 0;
|
|
7890
7889
|
};
|
|
7891
|
-
return /* @__PURE__ */
|
|
7890
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
7892
7891
|
import_dn_react_text_editor.TextEditor,
|
|
7893
7892
|
{
|
|
7894
7893
|
...props,
|
|
@@ -7906,67 +7905,89 @@ function StoreTextEditor({
|
|
|
7906
7905
|
var import_client = require("dn-react-toolkit/file/client");
|
|
7907
7906
|
|
|
7908
7907
|
// src/crud/crud_form.tsx
|
|
7908
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
7909
7909
|
function CrudForm({
|
|
7910
7910
|
AdminHeader
|
|
7911
7911
|
}) {
|
|
7912
7912
|
const form = useFormContext();
|
|
7913
7913
|
const component = (0, import_react_store_input3.useStoreComponent)(form.store);
|
|
7914
|
-
return /* @__PURE__ */
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
|
|
7914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
7915
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7916
|
+
AdminHeader,
|
|
7917
|
+
{
|
|
7918
|
+
title: `${form.name} ${form.item ? "\uC218\uC815" : "\uCD94\uAC00"}`,
|
|
7919
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
7920
|
+
form.item && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7921
|
+
"button",
|
|
7922
|
+
{
|
|
7923
|
+
type: "button",
|
|
7924
|
+
className: "button-outline",
|
|
7925
|
+
onClick: () => {
|
|
7926
|
+
form.delete();
|
|
7927
|
+
},
|
|
7928
|
+
children: "\uC0AD\uC81C\uD558\uAE30"
|
|
7929
|
+
}
|
|
7930
|
+
),
|
|
7931
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7932
|
+
"button",
|
|
7933
|
+
{
|
|
7934
|
+
type: "button",
|
|
7935
|
+
className: "button-primary",
|
|
7936
|
+
onClick: form.submit,
|
|
7937
|
+
children: "\uC800\uC7A5\uD558\uAE30"
|
|
7938
|
+
}
|
|
7939
|
+
)
|
|
7940
|
+
] })
|
|
7941
|
+
}
|
|
7942
|
+
),
|
|
7943
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "max-w-2xl mx-auto", children: Object.keys(form.columns).length > 0 && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: Object.entries(form.columns).map(
|
|
7944
|
+
([name, value]) => {
|
|
7945
|
+
function InputComponent() {
|
|
7946
|
+
if (value.component) {
|
|
7947
|
+
const Component = value.component;
|
|
7948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Component, { store: form.store, name });
|
|
7925
7949
|
}
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
|
|
7942
|
-
|
|
7943
|
-
|
|
7950
|
+
if (value.type === "textarea") {
|
|
7951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7952
|
+
StoreTextEditor,
|
|
7953
|
+
{
|
|
7954
|
+
store: form.store,
|
|
7955
|
+
name,
|
|
7956
|
+
editor: {
|
|
7957
|
+
attributes: {
|
|
7958
|
+
class: "text-editor-form"
|
|
7959
|
+
}
|
|
7960
|
+
}
|
|
7961
|
+
}
|
|
7962
|
+
);
|
|
7963
|
+
}
|
|
7964
|
+
if (value.options) {
|
|
7965
|
+
const Component = value.options;
|
|
7966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(component.select, { name, className: "select-form", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Component, {}) });
|
|
7967
|
+
}
|
|
7968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
7969
|
+
component.input,
|
|
7944
7970
|
{
|
|
7945
|
-
|
|
7946
|
-
|
|
7971
|
+
name,
|
|
7972
|
+
type: value.type,
|
|
7973
|
+
className: "input-form"
|
|
7947
7974
|
}
|
|
7948
7975
|
);
|
|
7949
7976
|
}
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
return /* @__PURE__ */
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
);
|
|
7962
|
-
}
|
|
7963
|
-
const v = form.store.state[name];
|
|
7964
|
-
if (typeof v === "boolean") {
|
|
7965
|
-
return /* @__PURE__ */ import_react8.default.createElement("div", { className: "flex" }, value.label, /* @__PURE__ */ import_react8.default.createElement("div", { className: "ml-auto" }, /* @__PURE__ */ import_react8.default.createElement(InputComponent, null)));
|
|
7977
|
+
const v = form.store.state[name];
|
|
7978
|
+
if (typeof v === "boolean") {
|
|
7979
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex", children: [
|
|
7980
|
+
value.label,
|
|
7981
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "ml-auto", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(InputComponent, {}) })
|
|
7982
|
+
] });
|
|
7983
|
+
}
|
|
7984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FormRow, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(FormEntry, { children: [
|
|
7985
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(FormLabel, { children: value.label }, name),
|
|
7986
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(InputComponent, {})
|
|
7987
|
+
] }) });
|
|
7966
7988
|
}
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
))));
|
|
7989
|
+
) }) })
|
|
7990
|
+
] });
|
|
7970
7991
|
}
|
|
7971
7992
|
|
|
7972
7993
|
// src/table/loader.tsx
|
|
@@ -8216,160 +8237,12 @@ var import_react_router9 = require("react-router");
|
|
|
8216
8237
|
|
|
8217
8238
|
// src/table/page.tsx
|
|
8218
8239
|
var import_react_router8 = require("react-router");
|
|
8219
|
-
|
|
8220
|
-
// node_modules/react-icons/lib/iconBase.mjs
|
|
8221
|
-
var import_react10 = __toESM(require("react"), 1);
|
|
8222
|
-
|
|
8223
|
-
// node_modules/react-icons/lib/iconContext.mjs
|
|
8224
|
-
var import_react9 = __toESM(require("react"), 1);
|
|
8225
|
-
var DefaultContext = {
|
|
8226
|
-
color: void 0,
|
|
8227
|
-
size: void 0,
|
|
8228
|
-
className: void 0,
|
|
8229
|
-
style: void 0,
|
|
8230
|
-
attr: void 0
|
|
8231
|
-
};
|
|
8232
|
-
var IconContext = import_react9.default.createContext && /* @__PURE__ */ import_react9.default.createContext(DefaultContext);
|
|
8233
|
-
|
|
8234
|
-
// node_modules/react-icons/lib/iconBase.mjs
|
|
8235
|
-
var _excluded = ["attr", "size", "title"];
|
|
8236
|
-
function _objectWithoutProperties(source, excluded) {
|
|
8237
|
-
if (source == null) return {};
|
|
8238
|
-
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
8239
|
-
var key, i;
|
|
8240
|
-
if (Object.getOwnPropertySymbols) {
|
|
8241
|
-
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
8242
|
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
8243
|
-
key = sourceSymbolKeys[i];
|
|
8244
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
8245
|
-
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
8246
|
-
target[key] = source[key];
|
|
8247
|
-
}
|
|
8248
|
-
}
|
|
8249
|
-
return target;
|
|
8250
|
-
}
|
|
8251
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
8252
|
-
if (source == null) return {};
|
|
8253
|
-
var target = {};
|
|
8254
|
-
for (var key in source) {
|
|
8255
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
8256
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
8257
|
-
target[key] = source[key];
|
|
8258
|
-
}
|
|
8259
|
-
}
|
|
8260
|
-
return target;
|
|
8261
|
-
}
|
|
8262
|
-
function _extends() {
|
|
8263
|
-
_extends = Object.assign ? Object.assign.bind() : function(target) {
|
|
8264
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
8265
|
-
var source = arguments[i];
|
|
8266
|
-
for (var key in source) {
|
|
8267
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
8268
|
-
target[key] = source[key];
|
|
8269
|
-
}
|
|
8270
|
-
}
|
|
8271
|
-
}
|
|
8272
|
-
return target;
|
|
8273
|
-
};
|
|
8274
|
-
return _extends.apply(this, arguments);
|
|
8275
|
-
}
|
|
8276
|
-
function ownKeys(e, r) {
|
|
8277
|
-
var t = Object.keys(e);
|
|
8278
|
-
if (Object.getOwnPropertySymbols) {
|
|
8279
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
8280
|
-
r && (o = o.filter(function(r2) {
|
|
8281
|
-
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
8282
|
-
})), t.push.apply(t, o);
|
|
8283
|
-
}
|
|
8284
|
-
return t;
|
|
8285
|
-
}
|
|
8286
|
-
function _objectSpread(e) {
|
|
8287
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
8288
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
8289
|
-
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
8290
|
-
_defineProperty(e, r2, t[r2]);
|
|
8291
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
8292
|
-
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
8293
|
-
});
|
|
8294
|
-
}
|
|
8295
|
-
return e;
|
|
8296
|
-
}
|
|
8297
|
-
function _defineProperty(obj, key, value) {
|
|
8298
|
-
key = _toPropertyKey(key);
|
|
8299
|
-
if (key in obj) {
|
|
8300
|
-
Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
|
|
8301
|
-
} else {
|
|
8302
|
-
obj[key] = value;
|
|
8303
|
-
}
|
|
8304
|
-
return obj;
|
|
8305
|
-
}
|
|
8306
|
-
function _toPropertyKey(t) {
|
|
8307
|
-
var i = _toPrimitive(t, "string");
|
|
8308
|
-
return "symbol" == typeof i ? i : i + "";
|
|
8309
|
-
}
|
|
8310
|
-
function _toPrimitive(t, r) {
|
|
8311
|
-
if ("object" != typeof t || !t) return t;
|
|
8312
|
-
var e = t[Symbol.toPrimitive];
|
|
8313
|
-
if (void 0 !== e) {
|
|
8314
|
-
var i = e.call(t, r || "default");
|
|
8315
|
-
if ("object" != typeof i) return i;
|
|
8316
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
8317
|
-
}
|
|
8318
|
-
return ("string" === r ? String : Number)(t);
|
|
8319
|
-
}
|
|
8320
|
-
function Tree2Element(tree) {
|
|
8321
|
-
return tree && tree.map((node, i) => /* @__PURE__ */ import_react10.default.createElement(node.tag, _objectSpread({
|
|
8322
|
-
key: i
|
|
8323
|
-
}, node.attr), Tree2Element(node.child)));
|
|
8324
|
-
}
|
|
8325
|
-
function GenIcon(data) {
|
|
8326
|
-
return (props) => /* @__PURE__ */ import_react10.default.createElement(IconBase, _extends({
|
|
8327
|
-
attr: _objectSpread({}, data.attr)
|
|
8328
|
-
}, props), Tree2Element(data.child));
|
|
8329
|
-
}
|
|
8330
|
-
function IconBase(props) {
|
|
8331
|
-
var elem = (conf) => {
|
|
8332
|
-
var {
|
|
8333
|
-
attr,
|
|
8334
|
-
size,
|
|
8335
|
-
title
|
|
8336
|
-
} = props, svgProps = _objectWithoutProperties(props, _excluded);
|
|
8337
|
-
var computedSize = size || conf.size || "1em";
|
|
8338
|
-
var className;
|
|
8339
|
-
if (conf.className) className = conf.className;
|
|
8340
|
-
if (props.className) className = (className ? className + " " : "") + props.className;
|
|
8341
|
-
return /* @__PURE__ */ import_react10.default.createElement("svg", _extends({
|
|
8342
|
-
stroke: "currentColor",
|
|
8343
|
-
fill: "currentColor",
|
|
8344
|
-
strokeWidth: "0"
|
|
8345
|
-
}, conf.attr, attr, svgProps, {
|
|
8346
|
-
className,
|
|
8347
|
-
style: _objectSpread(_objectSpread({
|
|
8348
|
-
color: props.color || conf.color
|
|
8349
|
-
}, conf.style), props.style),
|
|
8350
|
-
height: computedSize,
|
|
8351
|
-
width: computedSize,
|
|
8352
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
8353
|
-
}), title && /* @__PURE__ */ import_react10.default.createElement("title", null, title), props.children);
|
|
8354
|
-
};
|
|
8355
|
-
return IconContext !== void 0 ? /* @__PURE__ */ import_react10.default.createElement(IconContext.Consumer, null, (conf) => elem(conf)) : elem(DefaultContext);
|
|
8356
|
-
}
|
|
8357
|
-
|
|
8358
|
-
// node_modules/react-icons/go/index.mjs
|
|
8359
|
-
function GoArrowDown(props) {
|
|
8360
|
-
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M4.97 13.22a.75.75 0 0 1 1.06 0L11 18.19V3.75a.75.75 0 0 1 1.5 0v14.44l4.97-4.97a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734l-6.25 6.25a.75.75 0 0 1-1.06 0l-6.25-6.25a.75.75 0 0 1 0-1.06Z" }, "child": [] }] })(props);
|
|
8361
|
-
}
|
|
8362
|
-
function GoArrowUp(props) {
|
|
8363
|
-
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M18.655 10.405a.75.75 0 0 1-1.06 0l-4.97-4.97v14.44a.75.75 0 0 1-1.5 0V5.435l-4.97 4.97a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l6.25-6.25a.75.75 0 0 1 1.06 0l6.25 6.25a.75.75 0 0 1 0 1.06Z" }, "child": [] }] })(props);
|
|
8364
|
-
}
|
|
8365
|
-
function GoSearch(props) {
|
|
8366
|
-
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M10.25 2a8.25 8.25 0 0 1 6.34 13.53l5.69 5.69a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-5.69-5.69A8.25 8.25 0 1 1 10.25 2ZM3.5 10.25a6.75 6.75 0 1 0 13.5 0 6.75 6.75 0 0 0-13.5 0Z" }, "child": [] }] })(props);
|
|
8367
|
-
}
|
|
8240
|
+
var import_go2 = require("react-icons/go");
|
|
8368
8241
|
|
|
8369
8242
|
// src/table/buttons.tsx
|
|
8370
8243
|
var import_utils2 = require("dn-react-toolkit/utils");
|
|
8371
8244
|
var import_react_router6 = require("react-router");
|
|
8372
|
-
var
|
|
8245
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
8373
8246
|
function TablePageButtons({
|
|
8374
8247
|
MAX_PAGES_TO_SHOW,
|
|
8375
8248
|
total,
|
|
@@ -8382,63 +8255,59 @@ function TablePageButtons({
|
|
|
8382
8255
|
const currentPage = Math.floor(offset / limit) + 1;
|
|
8383
8256
|
const startButton = (Math.ceil(currentPage / MAX_PAGES_TO_SHOW) - 1) * MAX_PAGES_TO_SHOW;
|
|
8384
8257
|
const endButton = Math.min(startButton + MAX_PAGES_TO_SHOW - 1, pages);
|
|
8385
|
-
return /* @__PURE__ */
|
|
8386
|
-
|
|
8387
|
-
{
|
|
8388
|
-
to: (() => {
|
|
8389
|
-
searchParams.set(
|
|
8390
|
-
"offset",
|
|
8391
|
-
String((startButton - 1) * limit)
|
|
8392
|
-
);
|
|
8393
|
-
return `${pathname}?${searchParams.toString()}`;
|
|
8394
|
-
})(),
|
|
8395
|
-
className: "w-10 block text-center transition-colors hover:text-primary"
|
|
8396
|
-
},
|
|
8397
|
-
"\uC774\uC804"
|
|
8398
|
-
), Array.from({
|
|
8399
|
-
length: Math.min(
|
|
8400
|
-
MAX_PAGES_TO_SHOW,
|
|
8401
|
-
pages - startButton
|
|
8402
|
-
)
|
|
8403
|
-
}).map((_, index2) => {
|
|
8404
|
-
return /* @__PURE__ */ import_react11.default.createElement(
|
|
8258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: pages > 1 && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex justify-center items-center my-8 gap-4 text-neutral-400", children: [
|
|
8259
|
+
startButton > 1 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
8405
8260
|
import_react_router6.Link,
|
|
8406
8261
|
{
|
|
8407
|
-
key: index2,
|
|
8408
8262
|
to: (() => {
|
|
8409
|
-
searchParams.set(
|
|
8410
|
-
"offset",
|
|
8411
|
-
String((startButton + index2) * limit)
|
|
8412
|
-
);
|
|
8263
|
+
searchParams.set("offset", String((startButton - 1) * limit));
|
|
8413
8264
|
return `${pathname}?${searchParams.toString()}`;
|
|
8414
8265
|
})(),
|
|
8415
|
-
className:
|
|
8416
|
-
|
|
8417
|
-
|
|
8418
|
-
|
|
8419
|
-
|
|
8420
|
-
|
|
8421
|
-
)
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8428
|
-
|
|
8429
|
-
|
|
8430
|
-
|
|
8431
|
-
|
|
8432
|
-
|
|
8433
|
-
|
|
8434
|
-
|
|
8435
|
-
|
|
8266
|
+
className: "w-10 block text-center transition-colors hover:text-primary",
|
|
8267
|
+
children: "\uC774\uC804"
|
|
8268
|
+
}
|
|
8269
|
+
),
|
|
8270
|
+
Array.from({
|
|
8271
|
+
length: Math.min(MAX_PAGES_TO_SHOW, pages - startButton)
|
|
8272
|
+
}).map((_, index2) => {
|
|
8273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
8274
|
+
import_react_router6.Link,
|
|
8275
|
+
{
|
|
8276
|
+
to: (() => {
|
|
8277
|
+
searchParams.set(
|
|
8278
|
+
"offset",
|
|
8279
|
+
String((startButton + index2) * limit)
|
|
8280
|
+
);
|
|
8281
|
+
return `${pathname}?${searchParams.toString()}`;
|
|
8282
|
+
})(),
|
|
8283
|
+
className: (0, import_utils2.cn)(
|
|
8284
|
+
"w-6 block text-center transition-colors",
|
|
8285
|
+
currentPage === startButton + index2 + 1 ? "font-bold text-primary" : "hover:text-primary"
|
|
8286
|
+
),
|
|
8287
|
+
children: startButton + index2 + 1
|
|
8288
|
+
},
|
|
8289
|
+
index2
|
|
8290
|
+
);
|
|
8291
|
+
}),
|
|
8292
|
+
endButton < pages && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
8293
|
+
import_react_router6.Link,
|
|
8294
|
+
{
|
|
8295
|
+
to: (() => {
|
|
8296
|
+
searchParams.set("offset", String((endButton + 1) * limit));
|
|
8297
|
+
return `${pathname}?${searchParams.toString()}`;
|
|
8298
|
+
})(),
|
|
8299
|
+
className: "w-10 block text-center transition-colors hover:text-primary",
|
|
8300
|
+
children: "\uB2E4\uC74C"
|
|
8301
|
+
}
|
|
8302
|
+
)
|
|
8303
|
+
] }) });
|
|
8436
8304
|
}
|
|
8437
8305
|
|
|
8438
8306
|
// src/table/table.tsx
|
|
8439
8307
|
var import_utils3 = require("dn-react-toolkit/utils");
|
|
8308
|
+
var import_go = require("react-icons/go");
|
|
8440
8309
|
var import_react_router7 = require("react-router");
|
|
8441
|
-
var
|
|
8310
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
8442
8311
|
function Table({
|
|
8443
8312
|
className = "min-w-full whitespace-nowrap",
|
|
8444
8313
|
data,
|
|
@@ -8453,95 +8322,92 @@ function Table({
|
|
|
8453
8322
|
const keys = Object.entries(columns).filter((entry) => entry[1]).map(([key]) => key);
|
|
8454
8323
|
const sortedArray = [...data];
|
|
8455
8324
|
const [_, setSearchParams] = (0, import_react_router7.useSearchParams)();
|
|
8456
|
-
return /* @__PURE__ */
|
|
8325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
8457
8326
|
"table",
|
|
8458
8327
|
{
|
|
8459
|
-
className: (0, import_utils3.cn)(
|
|
8460
|
-
|
|
8461
|
-
"
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8328
|
+
className: (0, import_utils3.cn)(className, "text-[15px] border-separate border-spacing-0"),
|
|
8329
|
+
children: [
|
|
8330
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { children: keys.map((key) => {
|
|
8331
|
+
const value = columns[key];
|
|
8332
|
+
function getReactNode() {
|
|
8333
|
+
if (value && typeof value === "object" && "label" in value) {
|
|
8334
|
+
return value.label;
|
|
8335
|
+
}
|
|
8336
|
+
return value;
|
|
8337
|
+
}
|
|
8338
|
+
function Head() {
|
|
8339
|
+
const reactNode = getReactNode();
|
|
8340
|
+
if (typeof reactNode === "string") {
|
|
8341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
8342
|
+
"button",
|
|
8343
|
+
{
|
|
8344
|
+
className: (0, import_utils3.cn)(
|
|
8345
|
+
orderBy === key ? "text-neutral-900 font-medium" : "text-neutral-500",
|
|
8346
|
+
"px-4 h-14 flex items-center w-full"
|
|
8347
|
+
),
|
|
8348
|
+
onClick: () => {
|
|
8349
|
+
let newDirection = "asc";
|
|
8350
|
+
if (orderBy === key) {
|
|
8351
|
+
newDirection = direction === "asc" ? "desc" : "asc";
|
|
8352
|
+
}
|
|
8353
|
+
setSearchParams({
|
|
8354
|
+
orderBy: key,
|
|
8355
|
+
direction: newDirection
|
|
8356
|
+
});
|
|
8357
|
+
},
|
|
8358
|
+
children: [
|
|
8359
|
+
reactNode,
|
|
8360
|
+
orderBy === key && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "ml-0.5", children: direction === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_go.GoArrowUp, {}) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_go.GoArrowDown, {}) })
|
|
8361
|
+
]
|
|
8362
|
+
}
|
|
8363
|
+
);
|
|
8364
|
+
}
|
|
8365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: reactNode });
|
|
8366
|
+
}
|
|
8367
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("th", { className: (0, import_utils3.cn)("border-y font-normal"), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Head, {}) }, key);
|
|
8368
|
+
}) }) }),
|
|
8369
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("tbody", { children: [
|
|
8370
|
+
sortedArray.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
8371
|
+
"td",
|
|
8477
8372
|
{
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8373
|
+
colSpan: keys.length,
|
|
8374
|
+
className: "px-4 h-14 text-neutral-400 text-center",
|
|
8375
|
+
children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
8376
|
+
}
|
|
8377
|
+
) }),
|
|
8378
|
+
sortedArray.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("tr", { className: "hover:bg-gray-50 transition-colors", children: keys.map((key, i2) => {
|
|
8379
|
+
const value = item[key];
|
|
8380
|
+
function Content() {
|
|
8381
|
+
if (key in columns) {
|
|
8382
|
+
const column = columns[key];
|
|
8383
|
+
if (column && typeof column === "object" && "mapper" in column) {
|
|
8384
|
+
const mapper = column.mapper;
|
|
8385
|
+
if (mapper) {
|
|
8386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: mapper(item) });
|
|
8387
|
+
}
|
|
8486
8388
|
}
|
|
8487
|
-
setSearchParams({
|
|
8488
|
-
orderBy: key,
|
|
8489
|
-
direction: newDirection
|
|
8490
|
-
});
|
|
8491
8389
|
}
|
|
8492
|
-
|
|
8493
|
-
reactNode,
|
|
8494
|
-
orderBy === key && /* @__PURE__ */ import_react12.default.createElement("div", { className: "ml-0.5" }, direction === "asc" ? /* @__PURE__ */ import_react12.default.createElement(GoArrowUp, null) : /* @__PURE__ */ import_react12.default.createElement(GoArrowDown, null))
|
|
8495
|
-
);
|
|
8496
|
-
}
|
|
8497
|
-
return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, reactNode);
|
|
8498
|
-
}
|
|
8499
|
-
return /* @__PURE__ */ import_react12.default.createElement(
|
|
8500
|
-
"th",
|
|
8501
|
-
{
|
|
8502
|
-
key,
|
|
8503
|
-
className: (0, import_utils3.cn)("border-y font-normal")
|
|
8504
|
-
},
|
|
8505
|
-
/* @__PURE__ */ import_react12.default.createElement(Head, null)
|
|
8506
|
-
);
|
|
8507
|
-
}))),
|
|
8508
|
-
/* @__PURE__ */ import_react12.default.createElement("tbody", null, sortedArray.length === 0 && /* @__PURE__ */ import_react12.default.createElement("tr", null, /* @__PURE__ */ import_react12.default.createElement(
|
|
8509
|
-
"td",
|
|
8510
|
-
{
|
|
8511
|
-
colSpan: keys.length,
|
|
8512
|
-
className: "px-4 h-14 text-neutral-400 text-center"
|
|
8513
|
-
},
|
|
8514
|
-
"\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."
|
|
8515
|
-
)), sortedArray.map((item, i) => /* @__PURE__ */ import_react12.default.createElement("tr", { key: i, className: "hover:bg-gray-50 transition-colors" }, keys.map((key, i2) => {
|
|
8516
|
-
const value = item[key];
|
|
8517
|
-
function Content() {
|
|
8518
|
-
if (key in columns) {
|
|
8519
|
-
const column = columns[key];
|
|
8520
|
-
if (column && typeof column === "object" && "mapper" in column) {
|
|
8521
|
-
const mapper = column.mapper;
|
|
8522
|
-
if (mapper) {
|
|
8523
|
-
return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, mapper(item));
|
|
8390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: String(value) });
|
|
8524
8391
|
}
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8533
|
-
|
|
8534
|
-
|
|
8535
|
-
|
|
8536
|
-
|
|
8537
|
-
|
|
8538
|
-
|
|
8539
|
-
}))))
|
|
8392
|
+
const linkedContent = getLink ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
8393
|
+
import_react_router7.Link,
|
|
8394
|
+
{
|
|
8395
|
+
to: getLink(item),
|
|
8396
|
+
className: "block content-center px-4 w-full h-full",
|
|
8397
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Content, {})
|
|
8398
|
+
}
|
|
8399
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Content, {});
|
|
8400
|
+
const cell = Mapper ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Mapper, { item, index: i2, children: linkedContent }) : linkedContent;
|
|
8401
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("td", { className: "px-0 h-14 border-b", children: cell }, key);
|
|
8402
|
+
}) }, i))
|
|
8403
|
+
] })
|
|
8404
|
+
]
|
|
8405
|
+
}
|
|
8540
8406
|
);
|
|
8541
8407
|
}
|
|
8542
8408
|
|
|
8543
8409
|
// src/table/page.tsx
|
|
8544
|
-
var
|
|
8410
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
8545
8411
|
function createTablePage({
|
|
8546
8412
|
name,
|
|
8547
8413
|
columns,
|
|
@@ -8561,65 +8427,77 @@ function createTablePage({
|
|
|
8561
8427
|
navigate(`${pathname}?${searchParams2.toString()}`);
|
|
8562
8428
|
};
|
|
8563
8429
|
const [searchParams] = (0, import_react_router8.useSearchParams)();
|
|
8564
|
-
return /* @__PURE__ */
|
|
8565
|
-
|
|
8566
|
-
|
|
8567
|
-
title: name,
|
|
8568
|
-
actions: /* @__PURE__ */ import_react13.default.createElement(import_react_router8.Link, { to: `${pathname}/new`, className: "button-primary" }, name, " \uCD94\uAC00")
|
|
8569
|
-
}
|
|
8570
|
-
), /* @__PURE__ */ import_react13.default.createElement("div", { className: "max-w-7xl mx-auto w-full overflow-auto" }, searchKey && /* @__PURE__ */ import_react13.default.createElement(
|
|
8571
|
-
"form",
|
|
8572
|
-
{
|
|
8573
|
-
className: "h-18 px-4 flex items-center border-t",
|
|
8574
|
-
onSubmit: (e) => {
|
|
8575
|
-
e.preventDefault();
|
|
8576
|
-
const formData = new FormData(e.currentTarget);
|
|
8577
|
-
const query = formData.get("query");
|
|
8578
|
-
search(query);
|
|
8579
|
-
}
|
|
8580
|
-
},
|
|
8581
|
-
/* @__PURE__ */ import_react13.default.createElement(
|
|
8582
|
-
"button",
|
|
8583
|
-
{
|
|
8584
|
-
type: "submit",
|
|
8585
|
-
className: "w-10 h-10 flex justify-center items-center"
|
|
8586
|
-
},
|
|
8587
|
-
/* @__PURE__ */ import_react13.default.createElement(GoSearch, { className: "text-xl mr-4" })
|
|
8588
|
-
),
|
|
8589
|
-
/* @__PURE__ */ import_react13.default.createElement(
|
|
8590
|
-
"input",
|
|
8430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
|
|
8431
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
8432
|
+
Header,
|
|
8591
8433
|
{
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8434
|
+
title: name,
|
|
8435
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react_router8.Link, { to: `${pathname}/new`, className: "button-primary", children: [
|
|
8436
|
+
name,
|
|
8437
|
+
" \uCD94\uAC00"
|
|
8438
|
+
] })
|
|
8596
8439
|
}
|
|
8597
|
-
)
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8614
|
-
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8440
|
+
),
|
|
8441
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "max-w-7xl mx-auto w-full overflow-auto", children: [
|
|
8442
|
+
searchKey && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
8443
|
+
"form",
|
|
8444
|
+
{
|
|
8445
|
+
className: "h-18 px-4 flex items-center border-t",
|
|
8446
|
+
onSubmit: (e) => {
|
|
8447
|
+
e.preventDefault();
|
|
8448
|
+
const formData = new FormData(e.currentTarget);
|
|
8449
|
+
const query = formData.get("query");
|
|
8450
|
+
search(query);
|
|
8451
|
+
},
|
|
8452
|
+
children: [
|
|
8453
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
8454
|
+
"button",
|
|
8455
|
+
{
|
|
8456
|
+
type: "submit",
|
|
8457
|
+
className: "w-10 h-10 flex justify-center items-center",
|
|
8458
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_go2.GoSearch, { className: "text-xl mr-4" })
|
|
8459
|
+
}
|
|
8460
|
+
),
|
|
8461
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
8462
|
+
"input",
|
|
8463
|
+
{
|
|
8464
|
+
className: "outline-none h-full flex-1",
|
|
8465
|
+
placeholder: "\uC5EC\uAE30\uC5D0 \uAC80\uC0C9\uD558\uC138\uC694...",
|
|
8466
|
+
name: "query",
|
|
8467
|
+
defaultValue: searchParams.get("query") ?? ""
|
|
8468
|
+
}
|
|
8469
|
+
)
|
|
8470
|
+
]
|
|
8471
|
+
}
|
|
8472
|
+
),
|
|
8473
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
8474
|
+
Table,
|
|
8475
|
+
{
|
|
8476
|
+
data: items,
|
|
8477
|
+
columns,
|
|
8478
|
+
getLink: primaryKey ? (item) => `${pathname}/${item[primaryKey]}` : void 0,
|
|
8479
|
+
limit,
|
|
8480
|
+
offset,
|
|
8481
|
+
orderBy,
|
|
8482
|
+
direction
|
|
8483
|
+
}
|
|
8484
|
+
),
|
|
8485
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
8486
|
+
TablePageButtons,
|
|
8487
|
+
{
|
|
8488
|
+
total,
|
|
8489
|
+
limit,
|
|
8490
|
+
offset,
|
|
8491
|
+
MAX_PAGES_TO_SHOW: 10
|
|
8492
|
+
}
|
|
8493
|
+
)
|
|
8494
|
+
] })
|
|
8495
|
+
] });
|
|
8618
8496
|
};
|
|
8619
8497
|
}
|
|
8620
8498
|
|
|
8621
8499
|
// src/crud/crud_page.tsx
|
|
8622
|
-
var
|
|
8500
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
8623
8501
|
function crudPage({
|
|
8624
8502
|
name,
|
|
8625
8503
|
primaryKey,
|
|
@@ -8627,7 +8505,7 @@ function crudPage({
|
|
|
8627
8505
|
formOptions,
|
|
8628
8506
|
header
|
|
8629
8507
|
}) {
|
|
8630
|
-
|
|
8508
|
+
const create = (prefix2) => {
|
|
8631
8509
|
return function Page() {
|
|
8632
8510
|
const data = (0, import_react_router9.useLoaderData)();
|
|
8633
8511
|
const { pathname } = (0, import_react_router9.useLocation)();
|
|
@@ -8636,29 +8514,33 @@ function crudPage({
|
|
|
8636
8514
|
...tablePageOptions,
|
|
8637
8515
|
name
|
|
8638
8516
|
});
|
|
8639
|
-
return /* @__PURE__ */
|
|
8517
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Component, { header });
|
|
8640
8518
|
}
|
|
8641
8519
|
if (pathname.startsWith(prefix2)) {
|
|
8642
|
-
return /* @__PURE__ */
|
|
8520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
8643
8521
|
CrudFormProvider,
|
|
8644
8522
|
{
|
|
8645
8523
|
item: data?.item,
|
|
8646
8524
|
prefix: prefix2,
|
|
8647
8525
|
name,
|
|
8648
8526
|
columns: formOptions.columns,
|
|
8649
|
-
primaryKey
|
|
8650
|
-
|
|
8651
|
-
|
|
8527
|
+
primaryKey,
|
|
8528
|
+
children: formOptions.form ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FormDelegate, { component: formOptions.form }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CrudForm, { AdminHeader: header })
|
|
8529
|
+
}
|
|
8652
8530
|
);
|
|
8653
8531
|
}
|
|
8654
8532
|
};
|
|
8655
8533
|
};
|
|
8534
|
+
return {
|
|
8535
|
+
name,
|
|
8536
|
+
create
|
|
8537
|
+
};
|
|
8656
8538
|
}
|
|
8657
8539
|
function FormDelegate({
|
|
8658
8540
|
component: Component
|
|
8659
8541
|
}) {
|
|
8660
8542
|
const form = useFormContext();
|
|
8661
|
-
return /* @__PURE__ */
|
|
8543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Component, { form });
|
|
8662
8544
|
}
|
|
8663
8545
|
|
|
8664
8546
|
// src/crud/generate_handlers.ts
|
|
@@ -8675,16 +8557,29 @@ var generateHandlers = (handlers) => {
|
|
|
8675
8557
|
|
|
8676
8558
|
// src/crud/generate_pages.tsx
|
|
8677
8559
|
var import_react_router10 = require("react-router");
|
|
8678
|
-
var
|
|
8560
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
8679
8561
|
var generatePages = (pages) => {
|
|
8680
|
-
|
|
8562
|
+
function Page() {
|
|
8681
8563
|
const { pathname } = (0, import_react_router10.useLocation)();
|
|
8682
8564
|
for (const route2 of Object.keys(pages)) {
|
|
8683
8565
|
if (pathname.startsWith(route2)) {
|
|
8684
|
-
const Page2 = pages[route2](route2);
|
|
8685
|
-
return /* @__PURE__ */
|
|
8566
|
+
const Page2 = pages[route2].create(route2);
|
|
8567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Page2, {});
|
|
8686
8568
|
}
|
|
8687
8569
|
}
|
|
8570
|
+
}
|
|
8571
|
+
const routes = Object.keys(pages);
|
|
8572
|
+
const menus = Object.keys(pages).map((path) => {
|
|
8573
|
+
const page = pages[path];
|
|
8574
|
+
return {
|
|
8575
|
+
title: page.name,
|
|
8576
|
+
to: path
|
|
8577
|
+
};
|
|
8578
|
+
});
|
|
8579
|
+
return {
|
|
8580
|
+
Page,
|
|
8581
|
+
routes,
|
|
8582
|
+
menus
|
|
8688
8583
|
};
|
|
8689
8584
|
};
|
|
8690
8585
|
|