dinocollab-core 1.0.1 → 1.0.3
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/_virtual/_rollupPluginBabelHelpers.js +67 -10
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/dist/{src/api-context → api-context}/alert-global.js +49 -34
- package/dist/api-context/alert-global.js.map +1 -0
- package/dist/{src/api-context → api-context}/drawer-global.js +40 -33
- package/dist/api-context/drawer-global.js.map +1 -0
- package/dist/{src/api-context → api-context}/global-modal.js +40 -32
- package/dist/api-context/global-modal.js.map +1 -0
- package/dist/{src/api-context → api-context}/popover-global.js +44 -36
- package/dist/api-context/popover-global.js.map +1 -0
- package/dist/api-context/popover.js +94 -0
- package/dist/api-context/popover.js.map +1 -0
- package/dist/{src/api-context → api-context}/ui.units.js +12 -10
- package/dist/api-context/ui.units.js.map +1 -0
- package/dist/components/breadcrumbs.js +65 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/{src/components → components}/copy-to-clipboard.js +39 -32
- package/dist/components/copy-to-clipboard.js.map +1 -0
- package/dist/components/help-tooltip.js +104 -0
- package/dist/components/help-tooltip.js.map +1 -0
- package/dist/components/image-with-fallback.js +51 -0
- package/dist/components/image-with-fallback.js.map +1 -0
- package/dist/{src/components → components}/text-editor.js +24 -23
- package/dist/components/text-editor.js.map +1 -0
- package/dist/components/text-editor.preview.js +27 -0
- package/dist/components/text-editor.preview.js.map +1 -0
- package/dist/form/create.autocomplete.chips.js +228 -0
- package/dist/form/create.autocomplete.chips.js.map +1 -0
- package/dist/{src/form → form}/create.date-expired.js +71 -61
- package/dist/form/create.date-expired.js.map +1 -0
- package/dist/{src/form → form}/create.date-picker.js +40 -37
- package/dist/form/create.date-picker.js.map +1 -0
- package/dist/{src/form → form}/create.form-base.js +47 -41
- package/dist/form/create.form-base.js.map +1 -0
- package/dist/form/create.form-comfirm.js +131 -0
- package/dist/form/create.form-comfirm.js.map +1 -0
- package/dist/form/create.form-grid-layout.js +188 -0
- package/dist/form/create.form-grid-layout.js.map +1 -0
- package/dist/{src/form → form}/create.form-grid-layout.units.js +17 -14
- package/dist/form/create.form-grid-layout.units.js.map +1 -0
- package/dist/form/create.input.file.js +79 -0
- package/dist/form/create.input.file.js.map +1 -0
- package/dist/form/create.input.js +276 -0
- package/dist/form/create.input.js.map +1 -0
- package/dist/form/create.select-simple.js +114 -0
- package/dist/form/create.select-simple.js.map +1 -0
- package/dist/form/create.select-with-api.js +277 -0
- package/dist/form/create.select-with-api.js.map +1 -0
- package/dist/form/create.text-editor.js +181 -0
- package/dist/form/create.text-editor.js.map +1 -0
- package/dist/{src/form → form}/dino-form.js +17 -18
- package/dist/form/dino-form.js.map +1 -0
- package/dist/{src/form → form}/helper.js +14 -14
- package/dist/form/helper.js.map +1 -0
- package/dist/{src/form → form}/modal-wrapper.js +32 -25
- package/dist/form/modal-wrapper.js.map +1 -0
- package/dist/{src/form → form}/validator.js +47 -43
- package/dist/form/validator.js.map +1 -0
- package/dist/{src/hooks → hooks}/index.js +1 -1
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +928 -0
- package/dist/{src/index.js → index.js} +10 -3
- package/dist/{src/index.js.map → index.js.map} +1 -1
- package/dist/redux/create.hoc-lazy.js +71 -0
- package/dist/redux/create.hoc-lazy.js.map +1 -0
- package/dist/{src/redux → redux}/dino.js +2 -2
- package/dist/redux/dino.js.map +1 -0
- package/dist/redux/types.js.map +1 -0
- package/dist/redux/ui.error-page.js +89 -0
- package/dist/redux/ui.error-page.js.map +1 -0
- package/dist/redux/vector-404.webp.js.map +1 -0
- package/dist/{src/table → table}/context.js +5 -2
- package/dist/table/context.js.map +1 -0
- package/dist/table/create.action-row.js +144 -0
- package/dist/table/create.action-row.js.map +1 -0
- package/dist/table/create.table.js +246 -0
- package/dist/table/create.table.js.map +1 -0
- package/dist/{src/table → table}/custom.filter-operators.js +2 -2
- package/dist/table/custom.filter-operators.js.map +1 -0
- package/dist/table/dino.js +136 -0
- package/dist/table/dino.js.map +1 -0
- package/dist/{src/table → table}/helpers.js +31 -32
- package/dist/table/helpers.js.map +1 -0
- package/dist/table/model-filter.js.map +1 -0
- package/dist/table/toolbar-pannel.js +143 -0
- package/dist/table/toolbar-pannel.js.map +1 -0
- package/dist/table/ui.buttons.js +67 -0
- package/dist/table/ui.buttons.js.map +1 -0
- package/dist/table/ui.units.js +248 -0
- package/dist/table/ui.units.js.map +1 -0
- package/dist/types/api-context/alert-global.d.ts +29 -0
- package/dist/types/api-context/drawer-global.d.ts +32 -0
- package/dist/types/api-context/global-modal.d.ts +37 -0
- package/dist/types/api-context/index.d.ts +9 -0
- package/dist/types/api-context/popover-global.d.ts +37 -0
- package/dist/types/api-context/popover.d.ts +32 -0
- package/dist/types/api-context/ui.units.d.ts +2 -0
- package/dist/types/components/breadcrumbs.d.ts +13 -0
- package/dist/types/components/copy-to-clipboard.d.ts +26 -0
- package/dist/types/components/help-tooltip.d.ts +15 -0
- package/dist/types/components/image-with-fallback.d.ts +13 -0
- package/dist/types/components/index.d.ts +11 -0
- package/dist/types/components/input-debounce-timer.d.ts +9 -0
- package/dist/types/components/loading-buttons.d.ts +6 -0
- package/dist/types/components/text-editor.d.ts +26 -0
- package/dist/types/components/text-editor.preview.d.ts +5 -0
- package/dist/types/form/create.autocomplete.chips.d.ts +16 -0
- package/dist/types/form/create.date-expired.d.ts +19 -0
- package/dist/types/form/create.date-picker.d.ts +19 -0
- package/dist/types/form/create.form-base.d.ts +30 -0
- package/dist/types/form/create.form-comfirm.d.ts +20 -0
- package/dist/types/form/create.form-grid-layout.d.ts +44 -0
- package/dist/types/form/create.form-grid-layout.units.d.ts +8 -0
- package/dist/types/form/create.input.d.ts +29 -0
- package/dist/types/form/create.input.file.d.ts +16 -0
- package/dist/types/form/create.select-simple.d.ts +24 -0
- package/dist/types/form/create.select-with-api.d.ts +29 -0
- package/dist/types/form/create.text-editor.d.ts +42 -0
- package/dist/types/form/dino-form.d.ts +26 -0
- package/dist/types/form/helper.d.ts +14 -0
- package/dist/types/form/index.d.ts +7 -0
- package/dist/types/form/modal-wrapper.d.ts +14 -0
- package/dist/types/form/types.d.ts +15 -0
- package/dist/types/form/validator.d.ts +64 -0
- package/dist/types/hooks/index.d.ts +4 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/lab/create.autocomplete.simple.d.ts +19 -0
- package/dist/types/lab/create.dino-store.d.ts +1 -0
- package/dist/types/lab/create.multi-select-dropdown.d.ts +23 -0
- package/dist/types/lab/create.select-mul-with-api/index.d.ts +26 -0
- package/dist/types/lab/create.select-mul-with-api/table-custom.d.ts +43 -0
- package/dist/types/lab/create.select-mul-with-api/types.d.ts +21 -0
- package/dist/types/lab/create.select-mul-with-api/ui.units.d.ts +29 -0
- package/dist/types/lab/filter-bar/base.d.ts +34 -0
- package/dist/types/lab/filter-bar/create.filter-bar.d.ts +92 -0
- package/dist/types/lab/filter-bar/create.filter-menu.d.ts +66 -0
- package/dist/types/lab/filter-bar/create.filter-panel.d.ts +117 -0
- package/dist/types/lab/filter-bar/create.filtered.d.ts +59 -0
- package/dist/types/lab/filter-bar/create.sort-menu.d.ts +7 -0
- package/dist/types/lab/filter-bar/demo.d.ts +3 -0
- package/dist/types/lab/filter-bar/index.d.ts +4 -0
- package/dist/types/lab/filter-bar/types.d.ts +81 -0
- package/dist/types/lab/filter-bar/ui.units.d.ts +13 -0
- package/dist/types/lab/grafana-dashboard/configs.d.ts +4 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/absolute-time-rage.d.ts +14 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/helpers.d.ts +36 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/index.d.ts +24 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/menu-wrap.d.ts +19 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/quick-ranges.d.ts +20 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/types.d.ts +8 -0
- package/dist/types/lab/grafana-dashboard/date-time-range/units.d.ts +2 -0
- package/dist/types/lab/grafana-dashboard/helper.d.ts +7 -0
- package/dist/types/lab/grafana-dashboard/hooks.d.ts +10 -0
- package/dist/types/lab/grafana-dashboard/icons.d.ts +5 -0
- package/dist/types/lab/grafana-dashboard/index.d.ts +12 -0
- package/dist/types/lab/grafana-dashboard/top-bar.d.ts +19 -0
- package/dist/types/lab/grafana-dashboard/top-bar.types.d.ts +4 -0
- package/dist/types/lab/grafana-dashboard/types.d.ts +8 -0
- package/dist/types/lab/media-player.core1.d.ts +14 -0
- package/dist/types/lab/media-player.muted.d.ts +10 -0
- package/dist/types/lab/media-player.units.d.ts +36 -0
- package/dist/types/lab/table-grid/create.table-grid.d.ts +4 -0
- package/dist/types/lab/table-grid/demo.d.ts +3 -0
- package/dist/types/lab/table-grid/dino.d.ts +6 -0
- package/dist/types/lab/table-grid/helpers.d.ts +11 -0
- package/dist/types/lab/table-grid/index.d.ts +2 -0
- package/dist/types/lab/table-grid/item-actions.d.ts +93 -0
- package/dist/types/lab/table-grid/toolbar-pannel.d.ts +27 -0
- package/dist/types/lab/table-grid/types.d.ts +56 -0
- package/dist/types/redux/create.hoc-lazy.d.ts +19 -0
- package/dist/types/redux/dino.d.ts +6 -0
- package/dist/types/redux/index.d.ts +4 -0
- package/dist/types/redux/types.d.ts +22 -0
- package/dist/types/redux/ui.error-page.d.ts +3 -0
- package/dist/types/redux/ui.units.d.ts +9 -0
- package/dist/types/table/context.d.ts +8 -0
- package/dist/types/table/create.action-row.d.ts +16 -0
- package/dist/types/table/create.table.d.ts +33 -0
- package/dist/types/table/custom.filter-operators.d.ts +2 -0
- package/dist/types/table/dino.d.ts +41 -0
- package/dist/types/table/helpers.d.ts +23 -0
- package/dist/types/table/index.d.ts +7 -0
- package/dist/types/table/model-filter.d.ts +38 -0
- package/dist/types/table/toolbar-pannel.d.ts +18 -0
- package/dist/types/table/types.d.ts +40 -0
- package/dist/types/table/ui.buttons.d.ts +16 -0
- package/dist/types/table/ui.units.d.ts +62 -0
- package/dist/types/utils/dayjs-config.d.ts +2 -0
- package/dist/types/utils/helpers.d.ts +35 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/json-object.d.ts +9 -0
- package/dist/types/utils/mfe-events.d.ts +12 -0
- package/dist/types/utils/query-param.d.ts +25 -0
- package/dist/utils/dayjs-config.js.map +1 -0
- package/dist/{src/utils → utils}/helpers.js +11 -9
- package/dist/utils/helpers.js.map +1 -0
- package/dist/{src/utils → utils}/json-object.js +13 -13
- package/dist/utils/json-object.js.map +1 -0
- package/dist/{src/utils → utils}/query-param.js +17 -17
- package/dist/utils/query-param.js.map +1 -0
- package/package.json +18 -5
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js +0 -46
- package/dist/node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/src/api-context/alert-global.js.map +0 -1
- package/dist/src/api-context/drawer-global.js.map +0 -1
- package/dist/src/api-context/global-modal.js.map +0 -1
- package/dist/src/api-context/popover-global.js.map +0 -1
- package/dist/src/api-context/popover.js +0 -86
- package/dist/src/api-context/popover.js.map +0 -1
- package/dist/src/api-context/ui.units.js.map +0 -1
- package/dist/src/components/copy-to-clipboard.js.map +0 -1
- package/dist/src/components/custom.breadcrumbs.js +0 -61
- package/dist/src/components/custom.breadcrumbs.js.map +0 -1
- package/dist/src/components/help-tooltip.js +0 -91
- package/dist/src/components/help-tooltip.js.map +0 -1
- package/dist/src/components/image-with-fallback.js +0 -48
- package/dist/src/components/image-with-fallback.js.map +0 -1
- package/dist/src/components/text-editor.js.map +0 -1
- package/dist/src/form/create.autocomplete.chips.js +0 -218
- package/dist/src/form/create.autocomplete.chips.js.map +0 -1
- package/dist/src/form/create.date-expired.js.map +0 -1
- package/dist/src/form/create.date-picker.js.map +0 -1
- package/dist/src/form/create.form-base.js.map +0 -1
- package/dist/src/form/create.form-comfirm.js +0 -119
- package/dist/src/form/create.form-comfirm.js.map +0 -1
- package/dist/src/form/create.form-grid-layout.js +0 -177
- package/dist/src/form/create.form-grid-layout.js.map +0 -1
- package/dist/src/form/create.form-grid-layout.units.js.map +0 -1
- package/dist/src/form/create.input-base.js +0 -260
- package/dist/src/form/create.input-base.js.map +0 -1
- package/dist/src/form/create.input.file.js +0 -74
- package/dist/src/form/create.input.file.js.map +0 -1
- package/dist/src/form/create.select-simple.js +0 -104
- package/dist/src/form/create.select-simple.js.map +0 -1
- package/dist/src/form/create.select-with-api.js +0 -271
- package/dist/src/form/create.select-with-api.js.map +0 -1
- package/dist/src/form/create.text-editor.js +0 -156
- package/dist/src/form/create.text-editor.js.map +0 -1
- package/dist/src/form/dino-form.js.map +0 -1
- package/dist/src/form/helper.js.map +0 -1
- package/dist/src/form/modal-wrapper.js.map +0 -1
- package/dist/src/form/validator.js.map +0 -1
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/redux/create.hoc-lazy.js +0 -67
- package/dist/src/redux/create.hoc-lazy.js.map +0 -1
- package/dist/src/redux/dino.js.map +0 -1
- package/dist/src/redux/types.js.map +0 -1
- package/dist/src/redux/ui.error-page.js +0 -80
- package/dist/src/redux/ui.error-page.js.map +0 -1
- package/dist/src/redux/vector-404.webp.js.map +0 -1
- package/dist/src/table/context.js.map +0 -1
- package/dist/src/table/create.action-row.js +0 -135
- package/dist/src/table/create.action-row.js.map +0 -1
- package/dist/src/table/create.status-cell.js +0 -49
- package/dist/src/table/create.status-cell.js.map +0 -1
- package/dist/src/table/create.table.js +0 -233
- package/dist/src/table/create.table.js.map +0 -1
- package/dist/src/table/custom.filter-operators.js.map +0 -1
- package/dist/src/table/dino.js +0 -129
- package/dist/src/table/dino.js.map +0 -1
- package/dist/src/table/helpers.js.map +0 -1
- package/dist/src/table/model-filter.js.map +0 -1
- package/dist/src/table/toolbar-pannel.js +0 -134
- package/dist/src/table/toolbar-pannel.js.map +0 -1
- package/dist/src/table/ui.buttons.js +0 -60
- package/dist/src/table/ui.buttons.js.map +0 -1
- package/dist/src/table/ui.units.js +0 -201
- package/dist/src/table/ui.units.js.map +0 -1
- package/dist/src/utils/dayjs-config.js.map +0 -1
- package/dist/src/utils/helpers.js.map +0 -1
- package/dist/src/utils/json-object.js.map +0 -1
- package/dist/src/utils/query-param.js.map +0 -1
- package/rollup.config.js +0 -39
- package/src/@types/global.d.ts +0 -5
- package/src/api-context/alert-global.tsx +0 -174
- package/src/api-context/drawer-global.tsx +0 -116
- package/src/api-context/global-modal.tsx +0 -109
- package/src/api-context/index.ts +0 -13
- package/src/api-context/popover-global.tsx +0 -107
- package/src/api-context/popover.tsx +0 -89
- package/src/api-context/ui.units.tsx +0 -10
- package/src/components/copy-to-clipboard.tsx +0 -86
- package/src/components/custom.breadcrumbs.tsx +0 -67
- package/src/components/help-tooltip.tsx +0 -75
- package/src/components/image-with-fallback.tsx +0 -51
- package/src/components/index.tsx +0 -1
- package/src/components/input-debounce-timer.tsx +0 -138
- package/src/components/loading-buttons.tsx +0 -35
- package/src/components/text-editor.preview.tsx +0 -30
- package/src/components/text-editor.tsx +0 -125
- package/src/form/README.md +0 -55
- package/src/form/create.autocomplete.chips.tsx +0 -199
- package/src/form/create.date-expired.tsx +0 -195
- package/src/form/create.date-picker.tsx +0 -122
- package/src/form/create.form-base.tsx +0 -102
- package/src/form/create.form-comfirm.tsx +0 -83
- package/src/form/create.form-grid-layout.tsx +0 -170
- package/src/form/create.form-grid-layout.units.tsx +0 -37
- package/src/form/create.input-base.tsx +0 -222
- package/src/form/create.input.file.tsx +0 -76
- package/src/form/create.select-simple.tsx +0 -101
- package/src/form/create.select-with-api.tsx +0 -213
- package/src/form/create.text-editor.tsx +0 -161
- package/src/form/dino-form.tsx +0 -40
- package/src/form/helper.ts +0 -132
- package/src/form/index.ts +0 -12
- package/src/form/modal-wrapper.tsx +0 -75
- package/src/form/types.ts +0 -16
- package/src/form/validator.ts +0 -202
- package/src/hooks/index.ts +0 -44
- package/src/index.ts +0 -7
- package/src/lab/create.autocomplete.simple.tsx +0 -57
- package/src/lab/create.dino-store.ts +0 -59
- package/src/lab/create.multi-select-dropdown.tsx +0 -189
- package/src/lab/create.select-mul-with-api/index.tsx +0 -271
- package/src/lab/create.select-mul-with-api/table-custom.tsx +0 -194
- package/src/lab/create.select-mul-with-api/types.ts +0 -26
- package/src/lab/create.select-mul-with-api/ui.units.tsx +0 -163
- package/src/lab/filter-bar/base.tsx +0 -162
- package/src/lab/filter-bar/create.filter-bar.tsx +0 -190
- package/src/lab/filter-bar/create.filter-menu.tsx +0 -156
- package/src/lab/filter-bar/create.filter-panel.tsx +0 -95
- package/src/lab/filter-bar/create.filtered.tsx +0 -41
- package/src/lab/filter-bar/create.sort-menu.tsx +0 -43
- package/src/lab/filter-bar/demo.tsx +0 -50
- package/src/lab/filter-bar/index.ts +0 -6
- package/src/lab/filter-bar/types.ts +0 -105
- package/src/lab/filter-bar/ui.units.tsx +0 -70
- package/src/lab/grafana-dashboard/configs.ts +0 -43
- package/src/lab/grafana-dashboard/date-time-range/absolute-time-rage.tsx +0 -137
- package/src/lab/grafana-dashboard/date-time-range/helpers.ts +0 -126
- package/src/lab/grafana-dashboard/date-time-range/index.tsx +0 -62
- package/src/lab/grafana-dashboard/date-time-range/menu-wrap.tsx +0 -101
- package/src/lab/grafana-dashboard/date-time-range/quick-ranges.tsx +0 -161
- package/src/lab/grafana-dashboard/date-time-range/types.ts +0 -9
- package/src/lab/grafana-dashboard/date-time-range/units.tsx +0 -18
- package/src/lab/grafana-dashboard/helper.ts +0 -25
- package/src/lab/grafana-dashboard/hooks.tsx +0 -79
- package/src/lab/grafana-dashboard/icons.tsx +0 -67
- package/src/lab/grafana-dashboard/index.tsx +0 -120
- package/src/lab/grafana-dashboard/top-bar.tsx +0 -62
- package/src/lab/grafana-dashboard/top-bar.types.ts +0 -5
- package/src/lab/grafana-dashboard/types.ts +0 -8
- package/src/lab/media-player.core1.tsx +0 -273
- package/src/lab/media-player.muted.tsx +0 -62
- package/src/lab/media-player.units.ts +0 -80
- package/src/lab/table-grid/create.table-grid.tsx +0 -183
- package/src/lab/table-grid/demo.tsx +0 -53
- package/src/lab/table-grid/dino.tsx +0 -8
- package/src/lab/table-grid/helpers.tsx +0 -11
- package/src/lab/table-grid/index.ts +0 -3
- package/src/lab/table-grid/item-actions.tsx +0 -138
- package/src/lab/table-grid/toolbar-pannel.tsx +0 -98
- package/src/lab/table-grid/types.ts +0 -68
- package/src/redux/create.hoc-lazy.tsx +0 -80
- package/src/redux/dino.ts +0 -9
- package/src/redux/index.ts +0 -6
- package/src/redux/types.ts +0 -27
- package/src/redux/ui.error-page.tsx +0 -62
- package/src/redux/ui.units.tsx +0 -41
- package/src/redux/vector-404.webp +0 -0
- package/src/table/context.tsx +0 -16
- package/src/table/create.action-row.tsx +0 -91
- package/src/table/create.status-cell.tsx +0 -51
- package/src/table/create.table.tsx +0 -239
- package/src/table/custom.filter-operators.ts +0 -94
- package/src/table/dino.tsx +0 -120
- package/src/table/helpers.ts +0 -94
- package/src/table/index.ts +0 -13
- package/src/table/model-filter.ts +0 -43
- package/src/table/toolbar-pannel.tsx +0 -106
- package/src/table/types.ts +0 -50
- package/src/table/ui.buttons.tsx +0 -54
- package/src/table/ui.units.tsx +0 -189
- package/src/utils/dayjs-config.ts +0 -13
- package/src/utils/helpers.ts +0 -171
- package/src/utils/index.ts +0 -7
- package/src/utils/json-object.ts +0 -29
- package/src/utils/mfe-events.tsx +0 -34
- package/src/utils/query-param.ts +0 -129
- package/tsconfig.json +0 -20
- /package/dist/{src/redux → redux}/types.js +0 -0
- /package/dist/{src/redux → redux}/vector-404.webp.js +0 -0
- /package/dist/{src/table → table}/model-filter.js +0 -0
- /package/dist/{src/utils → utils}/dayjs-config.js +0 -0
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { extends as _extends, defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { __rest } from '../../node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { styled, Typography, Tooltip, tooltipClasses, Stack, Divider, Box, IconButton } from '@mui/material';
|
|
5
|
-
import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
|
|
6
|
-
|
|
7
|
-
var HelpTooltip = function HelpTooltip(props) {
|
|
8
|
-
return /*#__PURE__*/React.createElement(HtmlTooltip, {
|
|
9
|
-
arrow: true,
|
|
10
|
-
placement: "bottom",
|
|
11
|
-
title: /*#__PURE__*/React.createElement(Stack, {
|
|
12
|
-
sx: {
|
|
13
|
-
gap: '6px',
|
|
14
|
-
py: '6px',
|
|
15
|
-
minWidth: '200px',
|
|
16
|
-
maxWidth: '400px '
|
|
17
|
-
}
|
|
18
|
-
}, /*#__PURE__*/React.createElement(TooltipHeaderText, null, props.title), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(Box, {
|
|
19
|
-
sx: {
|
|
20
|
-
p: '6px 12px'
|
|
21
|
-
}
|
|
22
|
-
}, props.children))
|
|
23
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
24
|
-
sx: Object.assign({
|
|
25
|
-
cursor: 'default'
|
|
26
|
-
}, props.sxIcon)
|
|
27
|
-
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
28
|
-
size: "small"
|
|
29
|
-
}, /*#__PURE__*/React.createElement(HelpOutlineIcon, {
|
|
30
|
-
fontSize: props.small ? 'small' : 'medium',
|
|
31
|
-
sx: {
|
|
32
|
-
color: 'rgb(25,103,210)'
|
|
33
|
-
}
|
|
34
|
-
}))));
|
|
35
|
-
};
|
|
36
|
-
var HelpTooltipWrap = function HelpTooltipWrap(props) {
|
|
37
|
-
return /*#__PURE__*/React.createElement(HtmlTooltip, {
|
|
38
|
-
arrow: true,
|
|
39
|
-
placement: "bottom",
|
|
40
|
-
title: /*#__PURE__*/React.createElement(Stack, {
|
|
41
|
-
sx: {
|
|
42
|
-
gap: '6px',
|
|
43
|
-
py: '6px',
|
|
44
|
-
minWidth: '200px',
|
|
45
|
-
maxWidth: '400px '
|
|
46
|
-
}
|
|
47
|
-
}, /*#__PURE__*/React.createElement(TooltipHeaderText, null, props.title), /*#__PURE__*/React.createElement(Divider, null), /*#__PURE__*/React.createElement(Box, {
|
|
48
|
-
sx: {
|
|
49
|
-
p: '6px 12px'
|
|
50
|
-
}
|
|
51
|
-
}, props.content))
|
|
52
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
|
53
|
-
sx: {
|
|
54
|
-
cursor: 'default'
|
|
55
|
-
}
|
|
56
|
-
}, props.children));
|
|
57
|
-
};
|
|
58
|
-
var TooltipHeaderText = styled(function (props) {
|
|
59
|
-
return /*#__PURE__*/React.createElement(Typography, _extends({
|
|
60
|
-
variant: "subtitle1"
|
|
61
|
-
}, props));
|
|
62
|
-
})({
|
|
63
|
-
color: '#0095ff',
|
|
64
|
-
fontWeight: 700,
|
|
65
|
-
padding: '0 10px'
|
|
66
|
-
});
|
|
67
|
-
var HtmlTooltip = styled(function (_a) {
|
|
68
|
-
var className = _a.className,
|
|
69
|
-
props = __rest(_a, ["className"]);
|
|
70
|
-
return /*#__PURE__*/React.createElement(Tooltip, _extends({}, props, {
|
|
71
|
-
classes: {
|
|
72
|
-
popper: className
|
|
73
|
-
}
|
|
74
|
-
}));
|
|
75
|
-
})(function (_ref) {
|
|
76
|
-
var theme = _ref.theme;
|
|
77
|
-
return _defineProperty(_defineProperty({}, "& .".concat(tooltipClasses.tooltip), {
|
|
78
|
-
backgroundColor: '#fff',
|
|
79
|
-
color: '#3c3c3c',
|
|
80
|
-
maxWidth: 500,
|
|
81
|
-
minHeight: 120,
|
|
82
|
-
fontSize: theme.typography.pxToRem(12),
|
|
83
|
-
borderRadius: '8px',
|
|
84
|
-
boxShadow: 'rgba(0, 0, 0, 0.08) 0px 6px 30px'
|
|
85
|
-
}), "& .".concat(tooltipClasses.arrow), {
|
|
86
|
-
color: '#fff'
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
export { HelpTooltipWrap, HelpTooltip as default };
|
|
91
|
-
//# sourceMappingURL=help-tooltip.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help-tooltip.js","sources":["../../../src/components/help-tooltip.tsx"],"sourcesContent":["import React, { FC, PropsWithChildren, ReactNode } from 'react'\r\nimport { Box, Divider, IconButton, Stack, Tooltip, Typography } from '@mui/material'\r\nimport { SxProps, Theme, TooltipProps, TypographyProps, styled, tooltipClasses } from '@mui/material'\r\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline'\r\n\r\ninterface IProps {\r\n title: string\r\n small?: boolean\r\n sxIcon?: SxProps<Theme>\r\n}\r\n\r\nconst HelpTooltip: FC<PropsWithChildren<IProps>> = (props) => (\r\n <HtmlTooltip\r\n arrow\r\n placement='bottom'\r\n title={\r\n <Stack sx={{ gap: '6px', py: '6px', minWidth: '200px', maxWidth: '400px ' }}>\r\n <TooltipHeaderText>{props.title}</TooltipHeaderText>\r\n <Divider />\r\n <Box sx={{ p: '6px 12px' }}>{props.children}</Box>\r\n </Stack>\r\n }\r\n >\r\n <Box sx={{ cursor: 'default', ...props.sxIcon }}>\r\n <IconButton size='small'>\r\n <HelpOutlineIcon fontSize={props.small ? 'small' : 'medium'} sx={{ color: 'rgb(25,103,210)' }} />\r\n </IconButton>\r\n </Box>\r\n </HtmlTooltip>\r\n)\r\n\r\nexport default HelpTooltip\r\n\r\ninterface IHelpTooltipWrapProps {\r\n content: ReactNode\r\n title: string\r\n children: React.ReactNode\r\n}\r\n\r\nexport const HelpTooltipWrap: FC<IHelpTooltipWrapProps> = (props) => (\r\n <HtmlTooltip\r\n arrow\r\n placement='bottom'\r\n title={\r\n <Stack sx={{ gap: '6px', py: '6px', minWidth: '200px', maxWidth: '400px ' }}>\r\n <TooltipHeaderText>{props.title}</TooltipHeaderText>\r\n <Divider />\r\n <Box sx={{ p: '6px 12px' }}>{props.content}</Box>\r\n </Stack>\r\n }\r\n >\r\n <Box sx={{ cursor: 'default' }}>{props.children}</Box>\r\n </HtmlTooltip>\r\n)\r\n\r\nconst TooltipHeaderText = styled((props: TypographyProps) => <Typography variant='subtitle1' {...props} />)({\r\n color: '#0095ff',\r\n fontWeight: 700,\r\n padding: '0 10px'\r\n})\r\n\r\nconst HtmlTooltip = styled(({ className, ...props }: TooltipProps) => <Tooltip {...props} classes={{ popper: className }} />)(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: '#fff',\r\n color: '#3c3c3c',\r\n maxWidth: 500,\r\n minHeight: 120,\r\n fontSize: theme.typography.pxToRem(12),\r\n borderRadius: '8px',\r\n boxShadow: 'rgba(0, 0, 0, 0.08) 0px 6px 30px'\r\n },\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: '#fff'\r\n }\r\n}))\r\n"],"names":["HelpTooltip","props","React","createElement","HtmlTooltip","arrow","placement","title","Stack","sx","gap","py","minWidth","maxWidth","TooltipHeaderText","Divider","Box","p","children","Object","assign","cursor","sxIcon","IconButton","size","HelpOutlineIcon","fontSize","small","color","HelpTooltipWrap","content","styled","Typography","_extends","variant","fontWeight","padding","_a","className","__rest","Tooltip","classes","popper","_ref","theme","_defineProperty","concat","tooltipClasses","tooltip","backgroundColor","minHeight","typography","pxToRem","borderRadius","boxShadow"],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { slicedToArray as _slicedToArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { __rest } from '../../node_modules/.pnpm/@rollup_plugin-typescript@1_d0d2002d9033600b6738d939bd598bc6/node_modules/tslib/tslib.es6.js';
|
|
3
|
-
import React, { useState, useEffect, Fragment } from 'react';
|
|
4
|
-
import { useDebounce } from '../hooks/index.js';
|
|
5
|
-
|
|
6
|
-
var ImageWithFallback = function ImageWithFallback(_a) {
|
|
7
|
-
var src = _a.src,
|
|
8
|
-
fallbackSrc = _a.fallbackSrc,
|
|
9
|
-
alt = _a.alt,
|
|
10
|
-
loading = _a.loading,
|
|
11
|
-
_a$debounceDelay = _a.debounceDelay,
|
|
12
|
-
debounceDelay = _a$debounceDelay === void 0 ? 0 : _a$debounceDelay,
|
|
13
|
-
props = __rest(_a, ["src", "fallbackSrc", "alt", "loading", "debounceDelay"]);
|
|
14
|
-
var debouncedSrc = useDebounce(src, debounceDelay);
|
|
15
|
-
var debouncedFallbackSrc = useDebounce(fallbackSrc, debounceDelay);
|
|
16
|
-
var effectiveSrc = debounceDelay > 0 ? debouncedSrc : src;
|
|
17
|
-
var effectiveFallbackSrc = debounceDelay > 0 ? debouncedFallbackSrc : fallbackSrc;
|
|
18
|
-
var _useState = useState(true),
|
|
19
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
20
|
-
isLoading = _useState2[0],
|
|
21
|
-
setLoading = _useState2[1];
|
|
22
|
-
var _useState3 = useState(effectiveSrc !== null && effectiveSrc !== void 0 ? effectiveSrc : effectiveFallbackSrc),
|
|
23
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
24
|
-
imgSrc = _useState4[0],
|
|
25
|
-
setImgSrc = _useState4[1];
|
|
26
|
-
useEffect(function () {
|
|
27
|
-
setImgSrc(effectiveSrc !== null && effectiveSrc !== void 0 ? effectiveSrc : effectiveFallbackSrc);
|
|
28
|
-
setLoading(true);
|
|
29
|
-
}, [effectiveSrc, effectiveFallbackSrc]);
|
|
30
|
-
var loadingElement = isLoading && loading ? loading : /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
31
|
-
return /*#__PURE__*/React.createElement(Fragment, null, loadingElement, /*#__PURE__*/React.createElement("img", _extends({}, props, {
|
|
32
|
-
src: imgSrc,
|
|
33
|
-
alt: alt,
|
|
34
|
-
onLoadStart: function onLoadStart() {
|
|
35
|
-
return setLoading(true);
|
|
36
|
-
},
|
|
37
|
-
onLoad: function onLoad() {
|
|
38
|
-
return setLoading(false);
|
|
39
|
-
},
|
|
40
|
-
onError: function onError() {
|
|
41
|
-
setImgSrc(fallbackSrc);
|
|
42
|
-
setLoading(false);
|
|
43
|
-
}
|
|
44
|
-
})));
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export { ImageWithFallback as default };
|
|
48
|
-
//# sourceMappingURL=image-with-fallback.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-with-fallback.js","sources":["../../../src/components/image-with-fallback.tsx"],"sourcesContent":["import React, { Fragment, ReactNode, useEffect, useState } from 'react'\r\nimport { useDebounce } from '../hooks'\r\n\r\nexport interface ImageWithFallbackPropsOwner {\r\n src?: string\r\n alt?: string\r\n fallbackSrc: string\r\n loading?: ReactNode\r\n debounceDelay?: number\r\n}\r\n\r\ntype ImgProps = Omit<React.ImgHTMLAttributes<HTMLImageElement>, keyof ImageWithFallbackPropsOwner>\r\n\r\nexport interface ImageWithFallbackProps extends ImgProps, ImageWithFallbackPropsOwner {}\r\n\r\nconst ImageWithFallback: React.FC<ImageWithFallbackProps> = ({ src, fallbackSrc, alt, loading, debounceDelay = 0, ...props }) => {\r\n const debouncedSrc = useDebounce(src, debounceDelay)\r\n const debouncedFallbackSrc = useDebounce(fallbackSrc, debounceDelay)\r\n\r\n const effectiveSrc = debounceDelay > 0 ? debouncedSrc : src\r\n const effectiveFallbackSrc = debounceDelay > 0 ? debouncedFallbackSrc : fallbackSrc\r\n\r\n const [isLoading, setLoading] = useState(true)\r\n const [imgSrc, setImgSrc] = useState(effectiveSrc ?? effectiveFallbackSrc)\r\n\r\n useEffect(() => {\r\n setImgSrc(effectiveSrc ?? effectiveFallbackSrc)\r\n setLoading(true)\r\n }, [effectiveSrc, effectiveFallbackSrc])\r\n\r\n const loadingElement = isLoading && loading ? loading : <></>\r\n\r\n return (\r\n <Fragment>\r\n {loadingElement}\r\n <img\r\n {...props}\r\n src={imgSrc}\r\n alt={alt}\r\n onLoadStart={() => setLoading(true)}\r\n onLoad={() => setLoading(false)}\r\n onError={() => {\r\n setImgSrc(fallbackSrc)\r\n setLoading(false)\r\n }}\r\n />\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport default ImageWithFallback\r\n"],"names":["ImageWithFallback","_a","src","fallbackSrc","alt","loading","_a$debounceDelay","debounceDelay","props","__rest","debouncedSrc","useDebounce","debouncedFallbackSrc","effectiveSrc","effectiveFallbackSrc","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","imgSrc","setImgSrc","useEffect","loadingElement","React","createElement","Fragment","_extends","onLoadStart","onLoad","onError"],"mappings":";;;;;AAeA,IAAMA,iBAAiB,GAAqC,SAAtDA,iBAAiBA,CAAsCC,EAA+D,EAAI;AAAnE,EAAA,IAAEC,GAAG,GAA0DD,EAAA,CAA7DC,GAAG;IAAEC,WAAW,GAA6CF,EAAA,CAAxDE,WAAW;IAAEC,GAAG,GAAwCH,EAAA,CAA3CG,GAAG;IAAEC,OAAO,GAA+BJ,EAAA,CAAtCI,OAAO;IAAAC,gBAAA,GAA+BL,EAAA,CAA7BM,aAAa;AAAbA,IAAAA,aAAa,GAAAD,gBAAA,KAAG,MAAA,GAAA,CAAC,GAAAA,gBAAA;AAAKE,IAAAA,KAAK,GAAAC,MAAA,CAAAR,EAAA,EAA7D,yDAA+D,CAAF;AACxH,EAAA,IAAMS,YAAY,GAAGC,WAAW,CAACT,GAAG,EAAEK,aAAa,CAAC;AACpD,EAAA,IAAMK,oBAAoB,GAAGD,WAAW,CAACR,WAAW,EAAEI,aAAa,CAAC;EAEpE,IAAMM,YAAY,GAAGN,aAAa,GAAG,CAAC,GAAGG,YAAY,GAAGR,GAAG;EAC3D,IAAMY,oBAAoB,GAAGP,aAAa,GAAG,CAAC,GAAGK,oBAAoB,GAAGT,WAAW;AAEnF,EAAA,IAAAY,SAAA,GAAgCC,QAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvCI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAI,UAAA,GAA4BL,QAAQ,CAACH,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZ,MAAA,GAAAA,YAAY,GAAIC,oBAAoB,CAAC;IAAAQ,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAnEE,IAAAA,MAAM,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAExBG,EAAAA,SAAS,CAAC,YAAK;AACbD,IAAAA,SAAS,CAACX,YAAY,KAAZ,IAAA,IAAAA,YAAY,cAAZA,YAAY,GAAIC,oBAAoB,CAAC;IAC/CM,UAAU,CAAC,IAAI,CAAC;AAClB,GAAC,EAAE,CAACP,YAAY,EAAEC,oBAAoB,CAAC,CAAC;AAExC,EAAA,IAAMY,cAAc,GAAGP,SAAS,IAAId,OAAO,GAAGA,OAAO,gBAAGsB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,OAAK;AAE7D,EAAA,oBACEF,KAAA,CAAAC,aAAA,CAACC,QAAQ,EACNH,IAAAA,EAAAA,cAAc,eACfC,KAAA,CAAAC,aAAA,CAAAE,KAAAA,EAAAA,QAAA,KACMtB,KAAK,EAAA;AACTN,IAAAA,GAAG,EAAEqB,MAAO;AACZnB,IAAAA,GAAG,EAAEA,GAAI;IACT2B,WAAW,EAAE,SAAbA,WAAWA,GAAA;MAAA,OAAQX,UAAU,CAAC,IAAI,CAAC;KAAC;IACpCY,MAAM,EAAE,SAARA,MAAMA,GAAA;MAAA,OAAQZ,UAAU,CAAC,KAAK,CAAC;KAAC;AAChCa,IAAAA,OAAO,EAAE,SAATA,OAAOA,GAAO;MACZT,SAAS,CAACrB,WAAW,CAAC;MACtBiB,UAAU,CAAC,KAAK,CAAC;AACnB;AAAE,GAAA,CAEN,CAAU,CAAC;AAEf;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.js","sources":["../../../src/components/text-editor.tsx"],"sourcesContent":["// /* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport React, { Component } from 'react'\r\nimport { Box, styled, SxProps, Theme } from '@mui/material'\r\n/**\r\n * yarn add react-quill@2.0.0\r\n */\r\nimport ReactQuill from 'react-quill'\r\nimport 'react-quill/dist/quill.snow.css'\r\n\r\nexport const textEditorClasses = {\r\n root: 'DinoTextEditor-root',\r\n fullscreen: 'DinoTextEditor-fullscreen'\r\n}\r\n\r\nconst EditorToolbar: any = {}\r\n\r\nEditorToolbar.formats = [\r\n 'header',\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strike',\r\n 'blockquote',\r\n 'list',\r\n 'bullet',\r\n 'indent',\r\n 'link',\r\n 'image',\r\n 'align',\r\n 'color',\r\n 'background'\r\n]\r\n\r\nEditorToolbar.modules = {\r\n toolbar: [\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n ['bold', 'italic', 'underline', 'strike', 'blockquote'],\r\n [{ align: '' }, { align: 'center' }, { align: 'right' }, { align: 'justify' }],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],\r\n [{ color: [] }, { background: [] }],\r\n ['link', 'image'],\r\n ['clean']\r\n ]\r\n}\r\n\r\ninterface IProps {\r\n id?: string\r\n name: string\r\n sx?: SxProps<Theme>\r\n readOnly?: boolean\r\n defautValue?: string\r\n error?: boolean\r\n onBlur?: () => void\r\n}\r\n\r\ninterface IState {\r\n value: string\r\n}\r\n\r\nclass TextEditor extends Component<IProps, IState> {\r\n constructor(props: IProps) {\r\n super(props)\r\n this.state = { value: props.defautValue ?? '' }\r\n }\r\n handleChange = (value: string) => {\r\n let str = value\r\n if (value === '<p><br></p>') str = ''\r\n this.setState({ value: str })\r\n }\r\n\r\n id = 0\r\n render() {\r\n const classes = [textEditorClasses.root]\r\n if (this.props.error) classes.push('error')\r\n return (\r\n <Wrapper id={this.props.id} sx={this.props.sx} className={classes.join(' ')}>\r\n {!this.props.readOnly && <input key={++this.id} name={this.props.name} defaultValue={this.state.value} hidden />}\r\n <ReactQuill\r\n readOnly={this.props.readOnly}\r\n placeholder='Enter the message'\r\n value={this.state.value}\r\n modules={EditorToolbar.modules}\r\n formats={EditorToolbar.formats}\r\n onChange={this.handleChange}\r\n onBlur={this.props.onBlur}\r\n />\r\n </Wrapper>\r\n )\r\n }\r\n}\r\n\r\nexport default TextEditor\r\n\r\nexport { default as TextEditorPreview } from './text-editor.preview'\r\n\r\nconst borderColor = '#d32f2f'\r\n\r\nconst Wrapper = styled(Box)({\r\n margin: 0,\r\n minHeight: '450px',\r\n display: 'flex',\r\n '& .quill': { flex: 1 },\r\n '& .ql-container': {\r\n height: 'calc(100% - 42px)',\r\n borderBottomLeftRadius: '6px',\r\n borderBottomRightRadius: '6px'\r\n },\r\n '& .ql-toolbar': {\r\n borderTopLeftRadius: '6px',\r\n borderTopRightRadius: '6px'\r\n },\r\n '&.error .ql-toolbar': {\r\n borderTopColor: borderColor,\r\n borderLeftColor: borderColor,\r\n borderRightColor: borderColor\r\n },\r\n '&.error .ql-container': {\r\n borderBottomColor: borderColor,\r\n borderLeftColor: borderColor,\r\n borderRightColor: borderColor\r\n },\r\n '&.error .ql-editor.ql-blank::before': {\r\n color: borderColor\r\n }\r\n})\r\n"],"names":["textEditorClasses","root","fullscreen","EditorToolbar","formats","modules","toolbar","header","align","list","indent","color","background","TextEditor","_Component","props","_this","_classCallCheck","_callSuper","handleChange","value","str","setState","id","state","_a","defautValue","_inherits","_createClass","key","render","classes","error","push","React","createElement","Wrapper","sx","className","join","readOnly","name","defaultValue","hidden","ReactQuill","placeholder","onChange","onBlur","Component","borderColor","styled","Box","margin","minHeight","display","flex","height","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor"],"mappings":"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"}
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { createClass as _createClass, classCallCheck as _classCallCheck, toConsumableArray as _toConsumableArray, inherits as _inherits, extends as _extends, callSuper as _callSuper } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React, { Component } from 'react';
|
|
3
|
-
import { styled, Autocomplete, TextField, Chip, Typography, Tooltip, IconButton } from '@mui/material';
|
|
4
|
-
import RemoveIcon from '@mui/icons-material/Remove';
|
|
5
|
-
import { getErrorMessage } from './helper.js';
|
|
6
|
-
|
|
7
|
-
function CreateAutocompleteChip(options) {
|
|
8
|
-
var separator = (options === null || options === void 0 ? void 0 : options.separator) || '|';
|
|
9
|
-
var limitTags = (options === null || options === void 0 ? void 0 : options.limitTags) || 2;
|
|
10
|
-
var storeItems = (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) ? AutocompleteChipStore.initial(options.saveLocalStorageByKey) : undefined;
|
|
11
|
-
return /*#__PURE__*/function (_Component) {
|
|
12
|
-
function AutocompleteChip(props) {
|
|
13
|
-
var _this;
|
|
14
|
-
_classCallCheck(this, AutocompleteChip);
|
|
15
|
-
_this = _callSuper(this, AutocompleteChip, [props]);
|
|
16
|
-
_this.refInput = null;
|
|
17
|
-
_this.handleRemoveItem = function (e, value) {
|
|
18
|
-
var _a;
|
|
19
|
-
e.preventDefault();
|
|
20
|
-
e.stopPropagation();
|
|
21
|
-
console.log(value);
|
|
22
|
-
var list = (_a = storeItems === null || storeItems === void 0 ? void 0 : storeItems["delete"](value)) !== null && _a !== void 0 ? _a : [];
|
|
23
|
-
_this.setState({
|
|
24
|
-
options: list
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
_this.handleAddOption = function (_, newValue) {
|
|
28
|
-
var _a;
|
|
29
|
-
if (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) {
|
|
30
|
-
var _options = (_a = storeItems === null || storeItems === void 0 ? void 0 : storeItems.setItems(_this.state.options, newValue)) !== null && _a !== void 0 ? _a : _this.state.options;
|
|
31
|
-
_this.setState({
|
|
32
|
-
value: newValue,
|
|
33
|
-
options: _options
|
|
34
|
-
});
|
|
35
|
-
} else {
|
|
36
|
-
_this.setState({
|
|
37
|
-
value: newValue
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
if (_this.refInput) {
|
|
41
|
-
_this.refInput.value = newValue.join(separator);
|
|
42
|
-
}
|
|
43
|
-
_this.props.name && _this.props.onBlur && _this.props.onBlur(_this.props.name);
|
|
44
|
-
};
|
|
45
|
-
_this.isBtnRemoveOption = function (value) {
|
|
46
|
-
var _a, _b, _c;
|
|
47
|
-
var isSelectedOption = _this.state.value.findIndex(function (x) {
|
|
48
|
-
return x === value;
|
|
49
|
-
}) < 0;
|
|
50
|
-
var selectOptions = (_c = (_a = options === null || options === void 0 ? void 0 : options.optionItems) !== null && _a !== void 0 ? _a : (_b = _this.props.slots) === null || _b === void 0 ? void 0 : _b.optionItems) !== null && _c !== void 0 ? _c : [];
|
|
51
|
-
var isDefault = selectOptions.findIndex(function (x) {
|
|
52
|
-
return x === value;
|
|
53
|
-
}) < 0;
|
|
54
|
-
return isDefault && isSelectedOption;
|
|
55
|
-
};
|
|
56
|
-
_this.getSelectOptions = function () {
|
|
57
|
-
var _a, _b;
|
|
58
|
-
var items = (_a = options === null || options === void 0 ? void 0 : options.optionItems) !== null && _a !== void 0 ? _a : [];
|
|
59
|
-
if (options === null || options === void 0 ? void 0 : options.saveLocalStorageByKey) {
|
|
60
|
-
items = (_b = storeItems === null || storeItems === void 0 ? void 0 : storeItems.getItemsAndMerge(items)) !== null && _b !== void 0 ? _b : [];
|
|
61
|
-
}
|
|
62
|
-
return items;
|
|
63
|
-
};
|
|
64
|
-
_this.getTextFieldProps = function () {
|
|
65
|
-
var _this$props = _this.props,
|
|
66
|
-
name = _this$props.name,
|
|
67
|
-
label = _this$props.label,
|
|
68
|
-
placeholder = _this$props.placeholder,
|
|
69
|
-
_onBlur = _this$props.onBlur,
|
|
70
|
-
messageErrors = _this$props.messageErrors;
|
|
71
|
-
var eMessage = getErrorMessage(messageErrors, name);
|
|
72
|
-
return {
|
|
73
|
-
label: label,
|
|
74
|
-
placeholder: placeholder || 'Add new',
|
|
75
|
-
onBlur: function onBlur() {
|
|
76
|
-
if (!name) return;
|
|
77
|
-
_onBlur && _onBlur(name);
|
|
78
|
-
},
|
|
79
|
-
error: eMessage.error,
|
|
80
|
-
helperText: eMessage.message
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
_this.getDefaultValue = function () {
|
|
84
|
-
var _a, _b;
|
|
85
|
-
var _this$props2 = _this.props,
|
|
86
|
-
name = _this$props2.name,
|
|
87
|
-
data = _this$props2.data;
|
|
88
|
-
var value = name ? (_a = data === null || data === void 0 ? void 0 : data[name]) === null || _a === void 0 ? void 0 : _a.toString() : '';
|
|
89
|
-
return (_b = value === null || value === void 0 ? void 0 : value.split(separator).filter(function (x) {
|
|
90
|
-
return !!x;
|
|
91
|
-
})) !== null && _b !== void 0 ? _b : [];
|
|
92
|
-
};
|
|
93
|
-
_this.state = {
|
|
94
|
-
value: _this.getDefaultValue(),
|
|
95
|
-
options: _this.getSelectOptions()
|
|
96
|
-
};
|
|
97
|
-
return _this;
|
|
98
|
-
}
|
|
99
|
-
_inherits(AutocompleteChip, _Component);
|
|
100
|
-
return _createClass(AutocompleteChip, [{
|
|
101
|
-
key: "render",
|
|
102
|
-
value: function render() {
|
|
103
|
-
var _this2 = this;
|
|
104
|
-
var name = this.props.name;
|
|
105
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Autocomplete, {
|
|
106
|
-
multiple: true,
|
|
107
|
-
freeSolo: true,
|
|
108
|
-
limitTags: limitTags,
|
|
109
|
-
value: this.state.value,
|
|
110
|
-
onChange: this.handleAddOption,
|
|
111
|
-
options: this.state.options,
|
|
112
|
-
renderOption: function renderOption(props, option) {
|
|
113
|
-
return /*#__PURE__*/React.createElement(ItemOption, _extends({}, props, {
|
|
114
|
-
key: option
|
|
115
|
-
}), /*#__PURE__*/React.createElement(Typography, {
|
|
116
|
-
variant: "subtitle1",
|
|
117
|
-
sx: {
|
|
118
|
-
flex: 1
|
|
119
|
-
}
|
|
120
|
-
}, option), _this2.isBtnRemoveOption(option) && /*#__PURE__*/React.createElement(Tooltip, {
|
|
121
|
-
title: "Remove option",
|
|
122
|
-
arrow: true,
|
|
123
|
-
placement: "left"
|
|
124
|
-
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
125
|
-
size: "small",
|
|
126
|
-
onClick: function onClick(e) {
|
|
127
|
-
return _this2.handleRemoveItem(e, option);
|
|
128
|
-
}
|
|
129
|
-
}, /*#__PURE__*/React.createElement(RemoveIcon, {
|
|
130
|
-
fontSize: "small"
|
|
131
|
-
}))));
|
|
132
|
-
},
|
|
133
|
-
renderTags: function renderTags(tagValue, getTagProps) {
|
|
134
|
-
return tagValue.map(function (option, index) {
|
|
135
|
-
return /*#__PURE__*/React.createElement(Chip, _extends({
|
|
136
|
-
label: option
|
|
137
|
-
}, getTagProps({
|
|
138
|
-
index: index
|
|
139
|
-
}), {
|
|
140
|
-
key: option.toString()
|
|
141
|
-
}));
|
|
142
|
-
});
|
|
143
|
-
},
|
|
144
|
-
renderInput: function renderInput(params) {
|
|
145
|
-
return /*#__PURE__*/React.createElement(TextField, _extends({}, params, {
|
|
146
|
-
variant: "outlined"
|
|
147
|
-
}, _this2.getTextFieldProps()));
|
|
148
|
-
}
|
|
149
|
-
}), /*#__PURE__*/React.createElement("input", {
|
|
150
|
-
ref: function ref(_ref) {
|
|
151
|
-
_this2.refInput = _ref;
|
|
152
|
-
},
|
|
153
|
-
hidden: true,
|
|
154
|
-
type: "text",
|
|
155
|
-
name: name === null || name === void 0 ? void 0 : name.toString(),
|
|
156
|
-
defaultValue: this.state.value.join(separator)
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
|
-
}]);
|
|
160
|
-
}(Component);
|
|
161
|
-
}
|
|
162
|
-
var ItemOption = styled('li')({
|
|
163
|
-
display: 'flex',
|
|
164
|
-
alignItems: 'center'
|
|
165
|
-
});
|
|
166
|
-
var AutocompleteChipStore = /*#__PURE__*/_createClass(function AutocompleteChipStore(key, defaultValue) {
|
|
167
|
-
var _this3 = this;
|
|
168
|
-
_classCallCheck(this, AutocompleteChipStore);
|
|
169
|
-
this.storeKeyRoot = 'autocomplete_chip_store';
|
|
170
|
-
this.getRoot = function () {
|
|
171
|
-
try {
|
|
172
|
-
var res = window.localStorage.getItem(_this3.storeKeyRoot);
|
|
173
|
-
return JSON.parse(res !== null && res !== void 0 ? res : '{}');
|
|
174
|
-
} catch (error) {
|
|
175
|
-
return {};
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
this.getChild = function () {
|
|
179
|
-
return _this3.getRoot()[_this3.storeKey];
|
|
180
|
-
};
|
|
181
|
-
this.setRoot = function (value) {
|
|
182
|
-
window.localStorage.setItem(_this3.storeKeyRoot, JSON.stringify(value));
|
|
183
|
-
};
|
|
184
|
-
this.setChild = function (value) {
|
|
185
|
-
var obj = _this3.getRoot();
|
|
186
|
-
obj[_this3.storeKey] = value;
|
|
187
|
-
_this3.setRoot(obj);
|
|
188
|
-
};
|
|
189
|
-
this.getItemsAndMerge = function (value) {
|
|
190
|
-
try {
|
|
191
|
-
return Array.from(new Set([].concat(_toConsumableArray(_this3.getChild()), _toConsumableArray(value)))).sort();
|
|
192
|
-
} catch (error) {
|
|
193
|
-
return value;
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
this.setItems = function (options, value) {
|
|
197
|
-
var list = Array.from(new Set([].concat(_toConsumableArray(options), _toConsumableArray(value)))).sort();
|
|
198
|
-
_this3.setChild(list);
|
|
199
|
-
return list;
|
|
200
|
-
};
|
|
201
|
-
this["delete"] = function (value) {
|
|
202
|
-
var list = _this3.getChild().filter(function (x) {
|
|
203
|
-
return x !== value;
|
|
204
|
-
});
|
|
205
|
-
_this3.setChild(list);
|
|
206
|
-
return list;
|
|
207
|
-
};
|
|
208
|
-
this.storeKey = key;
|
|
209
|
-
if (defaultValue) {
|
|
210
|
-
this.setChild(defaultValue);
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
AutocompleteChipStore.initial = function (key, defaultValue) {
|
|
214
|
-
return new AutocompleteChipStore(key, defaultValue);
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
export { CreateAutocompleteChip as default };
|
|
218
|
-
//# sourceMappingURL=create.autocomplete.chips.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.autocomplete.chips.js","sources":["../../../src/form/create.autocomplete.chips.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Autocomplete, Chip, IconButton, styled, TextField, TextFieldProps, Tooltip, Typography } from '@mui/material'\r\nimport RemoveIcon from '@mui/icons-material/Remove'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\ninterface IOptions {\r\n optionItems?: string[]\r\n limitTags?: number\r\n separator?: string\r\n saveLocalStorageByKey?: string\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T, IOptions> {}\r\n\r\ninterface IState {\r\n value: string[]\r\n options: string[]\r\n}\r\n\r\nexport default function CreateAutocompleteChip<T>(options?: IOptions) {\r\n const separator = options?.separator || '|'\r\n const limitTags = options?.limitTags || 2\r\n const storeItems = options?.saveLocalStorageByKey ? AutocompleteChipStore.initial(options.saveLocalStorageByKey) : undefined\r\n\r\n return class AutocompleteChip extends Component<IProps<T>, IState> {\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = {\r\n value: this.getDefaultValue(),\r\n options: this.getSelectOptions()\r\n }\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n render() {\r\n const { name } = this.props\r\n return (\r\n <>\r\n <Autocomplete\r\n multiple\r\n freeSolo\r\n limitTags={limitTags}\r\n value={this.state.value}\r\n onChange={this.handleAddOption}\r\n options={this.state.options}\r\n renderOption={(props, option) => (\r\n <ItemOption {...props} key={option}>\r\n <Typography variant='subtitle1' sx={{ flex: 1 }}>\r\n {option}\r\n </Typography>\r\n {this.isBtnRemoveOption(option) && (\r\n <Tooltip title='Remove option' arrow placement='left'>\r\n <IconButton size='small' onClick={(e) => this.handleRemoveItem(e, option)}>\r\n <RemoveIcon fontSize='small' />\r\n </IconButton>\r\n </Tooltip>\r\n )}\r\n </ItemOption>\r\n )}\r\n renderTags={(tagValue, getTagProps) => {\r\n return tagValue.map((option, index) => <Chip label={option} {...getTagProps({ index })} key={option.toString()} />)\r\n }}\r\n renderInput={(params) => <TextField {...params} variant='outlined' {...this.getTextFieldProps()} />}\r\n />\r\n <input\r\n ref={(ref) => {\r\n this.refInput = ref\r\n }}\r\n hidden\r\n type='text'\r\n name={name?.toString()}\r\n defaultValue={this.state.value.join(separator)}\r\n />\r\n </>\r\n )\r\n }\r\n\r\n handleRemoveItem = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, value: string) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n console.log(value)\r\n const list = storeItems?.delete(value) ?? []\r\n this.setState({ options: list })\r\n }\r\n\r\n handleAddOption = (_: React.SyntheticEvent, newValue: string[]) => {\r\n if (options?.saveLocalStorageByKey) {\r\n const options = storeItems?.setItems(this.state.options, newValue) ?? this.state.options\r\n this.setState({ value: newValue, options })\r\n } else {\r\n this.setState({ value: newValue })\r\n }\r\n if (this.refInput) {\r\n this.refInput.value = newValue.join(separator)\r\n }\r\n this.props.name && this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n\r\n isBtnRemoveOption = (value: string) => {\r\n const isSelectedOption = this.state.value.findIndex((x) => x === value) < 0\r\n const selectOptions = options?.optionItems ?? this.props.slots?.optionItems ?? []\r\n const isDefault = selectOptions.findIndex((x) => x === value) < 0\r\n return isDefault && isSelectedOption\r\n }\r\n\r\n getSelectOptions = () => {\r\n let items = options?.optionItems ?? []\r\n if (options?.saveLocalStorageByKey) {\r\n items = storeItems?.getItemsAndMerge(items) ?? []\r\n }\r\n return items\r\n }\r\n\r\n getTextFieldProps = (): TextFieldProps => {\r\n const { name, label, placeholder, onBlur, messageErrors } = this.props\r\n const eMessage = getErrorMessage(messageErrors, name)\r\n return {\r\n label,\r\n placeholder: placeholder || 'Add new',\r\n onBlur: () => {\r\n if (!name) return\r\n onBlur && onBlur(name)\r\n },\r\n error: eMessage.error,\r\n helperText: eMessage.message\r\n }\r\n }\r\n\r\n getDefaultValue = (): string[] => {\r\n const { name, data } = this.props\r\n const value = name ? data?.[name]?.toString() : ''\r\n return value?.split(separator).filter((x) => !!x) ?? []\r\n }\r\n }\r\n}\r\n\r\nconst ItemOption = styled('li')({\r\n display: 'flex',\r\n alignItems: 'center'\r\n})\r\n\r\ntype TChipStoreRoot = { [key: string]: string[] }\r\n\r\nclass AutocompleteChipStore {\r\n private storeKeyRoot = 'autocomplete_chip_store'\r\n private storeKey: string\r\n constructor(key: string, defaultValue?: string[]) {\r\n this.storeKey = key\r\n if (defaultValue) {\r\n this.setChild(defaultValue)\r\n }\r\n }\r\n\r\n static initial = (key: string, defaultValue?: string[]) => new AutocompleteChipStore(key, defaultValue)\r\n\r\n private getRoot = (): TChipStoreRoot => {\r\n try {\r\n const res = window.localStorage.getItem(this.storeKeyRoot)\r\n return JSON.parse(res ?? '{}')\r\n } catch (error) {\r\n return {}\r\n }\r\n }\r\n\r\n private getChild = (): string[] => {\r\n return this.getRoot()[this.storeKey]\r\n }\r\n\r\n private setRoot = (value: TChipStoreRoot) => {\r\n window.localStorage.setItem(this.storeKeyRoot, JSON.stringify(value))\r\n }\r\n\r\n private setChild = (value: string[]) => {\r\n const obj = this.getRoot()\r\n obj[this.storeKey] = value\r\n this.setRoot(obj)\r\n }\r\n\r\n getItemsAndMerge = (value: string[]): string[] => {\r\n try {\r\n return Array.from(new Set([...this.getChild(), ...value])).sort()\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n\r\n setItems = (options: string[], value: string[]): string[] => {\r\n const list = Array.from(new Set([...options, ...value])).sort()\r\n this.setChild(list)\r\n return list\r\n }\r\n\r\n delete = (value: string) => {\r\n const list = this.getChild().filter((x) => x !== value)\r\n this.setChild(list)\r\n return list\r\n }\r\n}\r\n"],"names":["CreateAutocompleteChip","options","separator","limitTags","storeItems","saveLocalStorageByKey","AutocompleteChipStore","initial","undefined","_Component","AutocompleteChip","props","_this","_classCallCheck","_callSuper","refInput","handleRemoveItem","e","value","preventDefault","stopPropagation","console","log","list","_a","setState","handleAddOption","_","newValue","setItems","state","join","name","onBlur","isBtnRemoveOption","isSelectedOption","findIndex","x","selectOptions","_c","optionItems","_b","slots","isDefault","getSelectOptions","items","getItemsAndMerge","getTextFieldProps","_this$props","label","placeholder","messageErrors","eMessage","getErrorMessage","error","helperText","message","getDefaultValue","_this$props2","data","toString","split","filter","_inherits","_createClass","key","render","_this2","React","createElement","Fragment","Autocomplete","multiple","freeSolo","onChange","renderOption","option","ItemOption","_extends","Typography","variant","sx","flex","Tooltip","title","arrow","placement","IconButton","size","onClick","RemoveIcon","fontSize","renderTags","tagValue","getTagProps","map","index","Chip","renderInput","params","TextField","ref","hidden","type","defaultValue","Component","styled","display","alignItems","_this3","storeKeyRoot","getRoot","res","window","localStorage","getItem","JSON","parse","getChild","storeKey","setRoot","setItem","stringify","setChild","obj","Array","from","Set","concat","_toConsumableArray","sort"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.date-expired.js","sources":["../../../src/form/create.date-expired.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { LocalizationProvider } from '@mui/x-date-pickers'\r\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\r\nimport { Switch, Typography, TextField, styled, Box, TextFieldProps } from '@mui/material'\r\nimport { dayjsCustom, mergeObjects, tryParseIntRequired } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\n\r\nconst defaultFormatString = 'MM-DD-YYYY'\r\n\r\nconst dateExpiredClasses = {\r\n root: 'DateExpired-root',\r\n control: 'DateExpired-control',\r\n label: 'DateExpired-label',\r\n labelSwitch: 'DateExpired-labelSwitch',\r\n input: 'DateExpired-input',\r\n switch: 'DateExpired-switch'\r\n}\r\n\r\ninterface ISlots<T> {\r\n /** @default string */\r\n type?: 'number' | 'string'\r\n textFieldProps?: Partial<TextFieldProps>\r\n switchChecked?: boolean\r\n switchCheckedGetter?: (value: any, model?: Partial<T>) => boolean\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T> {\r\n slots?: ISlots<T>\r\n}\r\n\r\ninterface IState {\r\n numberOfDays: number\r\n switchChecked: boolean\r\n}\r\n\r\nfunction CreateDateExpired<T>(params?: ISlots<T>): React.ComponentType<IProps<T>> {\r\n class DateExpired extends Component<IProps<T>, IState> {\r\n defaultNumberOfDays: number = 30\r\n private id\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this.state = {\r\n numberOfDays: this.getNumberOfDays(),\r\n switchChecked: this.slots.switchChecked\r\n }\r\n this.id = new Date().getTime().toString()\r\n }\r\n\r\n get slots(): ISlots<T> & { switchChecked: boolean } {\r\n const { switchChecked, switchCheckedGetter } = this.props.slots ?? {}\r\n const obj = mergeObjects(params, this.props.slots)\r\n let check = (this.defaulValue ? !!this.defaulValue : switchChecked) ?? true\r\n if (switchCheckedGetter) check = switchCheckedGetter(this.defaulValue, this.props.data)\r\n return { ...obj, switchChecked: check }\r\n }\r\n\r\n get defaulValue(): string {\r\n const { data, name } = this.props\r\n return this.props.defaultValue ?? (!!data && !!name ? data[name]?.toString() : undefined)\r\n }\r\n\r\n get defaultValueInput(): string | number {\r\n if (this.slots.type === 'number') {\r\n return this.state.numberOfDays\r\n } else {\r\n return this.getOffsetDate(this.state.numberOfDays, 'YYYY-MM-DDTHH:mm:ss.sssZ')\r\n }\r\n }\r\n\r\n getNumberOfDays = (): number => {\r\n if (this.slots.type === 'number') {\r\n return tryParseIntRequired(this.defaulValue, this.defaultNumberOfDays)\r\n } else {\r\n return this.getDaysUntilDate(this.defaulValue, this.defaultNumberOfDays)\r\n }\r\n }\r\n\r\n //#region Render\r\n render() {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <Wrap className={dateExpiredClasses.root}>\r\n <input key={this.defaultValueInput} type='text' hidden name={this.props.name?.toString()} defaultValue={this.defaultValueInput} />\r\n <TextField {...this.mapTextFieldProps()} />\r\n <div className={dateExpiredClasses.control}>\r\n <Typography\r\n variant='caption'\r\n className={dateExpiredClasses.labelSwitch}\r\n {...{ component: 'label', htmlFor: this.id }}\r\n sx={{ color: this.state.switchChecked ? 'success.main' : '#767676' }}\r\n >\r\n {this.state.switchChecked ? 'Use Expiration Date' : 'No Expiration'}\r\n </Typography>\r\n <Switch\r\n id={this.id}\r\n size='small'\r\n color='success'\r\n checked={this.state.switchChecked}\r\n onChange={(_, checked) => this.setState({ switchChecked: checked })}\r\n />\r\n </div>\r\n </Wrap>\r\n </LocalizationProvider>\r\n )\r\n }\r\n //#endregion\r\n\r\n mapTextFieldProps = (): TextFieldProps => {\r\n const { messageErrors, name, onBlur } = this.props\r\n const disabled = this.props.disabled || !this.state.switchChecked\r\n const obj: TextFieldProps = {\r\n fullWidth: true,\r\n className: dateExpiredClasses.input,\r\n label: (\r\n <span className={dateExpiredClasses.label}>\r\n Expiry date\r\n {this.state.switchChecked && <b>{this.getOffsetDate(this.state.numberOfDays)}</b>}\r\n </span>\r\n ),\r\n variant: 'outlined',\r\n type: 'number',\r\n disabled: disabled,\r\n value: this.state.switchChecked ? this.state.numberOfDays : 0,\r\n onChange: this.handleChange\r\n }\r\n if (!!name) {\r\n obj.onBlur = () => onBlur && onBlur(name)\r\n const temp = getErrorMessage(messageErrors, name)\r\n if (temp.error) {\r\n obj.error = Boolean(temp.error)\r\n obj.helperText = temp.message ?? ''\r\n }\r\n }\r\n return mergeObjects<TextFieldProps>({}, obj, this.slots.textFieldProps)\r\n }\r\n\r\n handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n const numberOfDays: number = e.target.value != '' ? parseInt(e.target.value) : 0\r\n this.setState({ numberOfDays })\r\n }\r\n\r\n getOffsetDate = (num: number, formatString = defaultFormatString): string => {\r\n return dayjsCustom().add(num, 'day').format(formatString)\r\n }\r\n\r\n getDaysUntilDate = (value?: string, defaultValue = 0): number => {\r\n try {\r\n if (!value) return defaultValue\r\n const target = dayjsCustom(value)\r\n const today = dayjsCustom()\r\n const diff = target.diff(today, 'day', true)\r\n return Math.round(diff)\r\n } catch {\r\n return defaultValue\r\n }\r\n }\r\n }\r\n return DateExpired\r\n}\r\nexport default CreateDateExpired\r\n\r\nconst Wrap = styled(Box)({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '10px',\r\n position: 'relative',\r\n [`.${dateExpiredClasses.switch}`]: {\r\n margin: 0,\r\n flex: '0 0 auto'\r\n },\r\n [`.${dateExpiredClasses.label}`]: {\r\n b: {\r\n color: '#1976d2',\r\n marginLeft: '8px'\r\n }\r\n },\r\n [`.${dateExpiredClasses.labelSwitch}`]: {\r\n fontWeight: 600,\r\n cursor: 'pointer'\r\n },\r\n [`.${dateExpiredClasses.control}`]: {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n height: '100%',\r\n display: 'flex',\r\n alignItems: 'center'\r\n },\r\n [`.${dateExpiredClasses.input}`]: {\r\n '.MuiInputBase-input': {\r\n paddingRight: '160px'\r\n }\r\n }\r\n})\r\n"],"names":["defaultFormatString","dateExpiredClasses","root","control","label","labelSwitch","input","CreateDateExpired","params","DateExpired","_Component","props","_this","_classCallCheck","_callSuper","defaultNumberOfDays","getNumberOfDays","slots","type","tryParseIntRequired","defaulValue","getDaysUntilDate","mapTextFieldProps","_this$props","messageErrors","name","onBlur","disabled","state","switchChecked","obj","fullWidth","className","React","createElement","getOffsetDate","numberOfDays","variant","value","onChange","handleChange","temp","getErrorMessage","error","Boolean","helperText","_a","message","mergeObjects","textFieldProps","e","target","parseInt","setState","num","formatString","arguments","length","undefined","dayjsCustom","add","format","defaultValue","today","diff","Math","round","id","Date","getTime","toString","_inherits","_createClass","key","get","_ref","switchCheckedGetter","check","_b","data","Object","assign","_this$props2","render","_this2","LocalizationProvider","dateAdapter","AdapterDayjs","Wrap","defaultValueInput","hidden","TextField","Typography","component","htmlFor","sx","color","Switch","size","checked","_","Component","styled","Box","_defineProperty","display","alignItems","gap","position","concat","margin","flex","b","marginLeft","fontWeight","cursor","top","right","height","paddingRight"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.date-picker.js","sources":["../../../src/form/create.date-picker.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { styled } from '@mui/material'\r\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'\r\nimport { DatePicker as MUIDatePicker, LocalizationProvider, DatePickerProps } from '@mui/x-date-pickers'\r\nimport { dayjsCustom, mergeObjects } from '../utils'\r\nimport { IFormInputBase } from './types'\r\nimport { getErrorMessage } from './helper'\r\nimport { Dayjs } from 'dayjs'\r\n\r\nconst formatDefault = 'MM/DD/YYYY'\r\n\r\ninterface ISlots {\r\n defaultValue?: string\r\n minDate?: Dayjs\r\n minDateOffset?: number\r\n datePickerProps?: DatePickerProps<Dayjs>\r\n}\r\n\r\ninterface IProps<T> extends IFormInputBase<T> {\r\n format?: string\r\n slots?: Omit<ISlots, 'defaultValue'>\r\n}\r\n\r\ninterface IState {\r\n value: Dayjs | null\r\n}\r\n\r\nconst CreateDatePicker = function <T extends Object>(params?: ISlots): React.ComponentType<IProps<T>> {\r\n class DatePicker extends Component<IProps<T>, IState> {\r\n private _cachedSlots: ISlots = {}\r\n constructor(props: IProps<T>) {\r\n super(props)\r\n this._cachedSlots = this.mergeSlots(props.slots) ?? {}\r\n this.state = { value: this.getDefaultValue() }\r\n }\r\n\r\n get slots() {\r\n return this._cachedSlots\r\n }\r\n\r\n componentDidUpdate(prevProps: IProps<T>) {\r\n if (prevProps.slots !== this.props.slots) {\r\n this._cachedSlots = this.mergeSlots(this.props.slots)\r\n }\r\n }\r\n\r\n getDatePickerProps = (): DatePickerProps<Dayjs> => {\r\n const delayInDays = params?.minDateOffset ?? 0\r\n const minDate = delayInDays > 0 ? dayjsCustom().add(delayInDays, 'day').startOf('day') : params?.minDate\r\n const label = this.props.label ?? this.props.name?.toString()\r\n const format = this.props.format ?? formatDefault\r\n const eMessage = getErrorMessage<T>(this.props.messageErrors, this.props.name)\r\n const obj: DatePickerProps<Dayjs> = {\r\n label,\r\n format,\r\n views: ['day', 'month', 'year'],\r\n value: this.state.value,\r\n onChange: this.handleChange,\r\n disabled: this.props.disabled,\r\n minDate,\r\n slotProps: {\r\n textField: { onBlur: this.handleBlur, fullWidth: true, error: eMessage.error, helperText: eMessage.message, variant: 'outlined' }\r\n }\r\n }\r\n return mergeObjects(obj, params?.datePickerProps, this.slots?.datePickerProps)\r\n }\r\n\r\n refInput: HTMLInputElement | null = null\r\n render() {\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterDayjs}>\r\n <CustomDatePicker {...this.getDatePickerProps()} />\r\n <input\r\n hidden\r\n name={this.props.name?.toString()}\r\n defaultValue={this.getDefaultValue()?.toDate().toISOString()}\r\n ref={(ref) => (this.refInput = ref)}\r\n />\r\n </LocalizationProvider>\r\n )\r\n }\r\n\r\n private mergeSlots = (currentSlots?: ISlots): ISlots => {\r\n return mergeObjects<ISlots>({}, params, currentSlots)\r\n }\r\n\r\n handleBlur = () => {\r\n if (!this.props.name) return\r\n this.props.onBlur && this.props.onBlur(this.props.name)\r\n }\r\n\r\n handleChange = (newValue: Dayjs | null) => {\r\n this.setState({ value: newValue })\r\n if (this.refInput) {\r\n this.refInput.value = newValue && !isNaN(newValue.toDate().getTime()) ? newValue.toDate().toISOString() : ''\r\n }\r\n setTimeout(this.handleBlur, 50)\r\n }\r\n\r\n getDefaultValue = (): Dayjs => {\r\n try {\r\n if (!this.props.defaultValue && !this.slots.defaultValue && this.slots.minDateOffset) return dayjsCustom().add(1, 'day').startOf('day')\r\n if (!this.props.defaultValue && this.slots.minDate) return this.slots.minDate\r\n\r\n const { data, name } = this.props\r\n const dValue = this.props.defaultValue ?? this.slots.defaultValue ?? (name ? data?.[name] : '')\r\n return dValue ? dayjsCustom(dValue.toString()) : dayjsCustom()\r\n } catch {\r\n return dayjsCustom()\r\n }\r\n }\r\n }\r\n return DatePicker\r\n}\r\n\r\nexport default CreateDatePicker\r\n\r\nconst CustomDatePicker = styled(MUIDatePicker<Dayjs>)({\r\n '& .MuiInputBase-root::before, & .MuiInputBase-root::after': {\r\n borderBottom: 'none !important'\r\n }\r\n})\r\n"],"names":["formatDefault","CreateDatePicker","params","DatePicker","_Component","props","_this","_classCallCheck","_callSuper","_cachedSlots","getDatePickerProps","delayInDays","_a","minDateOffset","minDate","dayjsCustom","add","startOf","label","_b","_c","name","toString","format","_d","eMessage","getErrorMessage","messageErrors","obj","views","value","state","onChange","handleChange","disabled","slotProps","textField","onBlur","handleBlur","fullWidth","error","helperText","message","variant","mergeObjects","datePickerProps","slots","_e","refInput","mergeSlots","currentSlots","newValue","setState","isNaN","toDate","getTime","toISOString","setTimeout","getDefaultValue","defaultValue","_this$props","data","dValue","_inherits","_createClass","key","get","componentDidUpdate","prevProps","render","_this2","React","createElement","LocalizationProvider","dateAdapter","AdapterDayjs","CustomDatePicker","hidden","ref","Component","styled","MUIDatePicker","borderBottom"],"mappings":";;;;;;;;;;;AASA,IAAMA,aAAa,GAAG,YAAY;AAkBlC,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAA+BC,MAAe,EAAA;EAAA,IAC5DC,UAAW,0BAAAC,UAAA,EAAA;IAEf,SAAAD,UAAAA,CAAYE,KAAgB,EAAA;AAAA,MAAA,IAAAC,KAAA;AAAAC,MAAAA,eAAA,OAAAJ,UAAA,CAAA;;AAC1BG,MAAAA,KAAA,GAAAE,UAAA,CAAAL,IAAAA,EAAAA,UAAA,GAAME,KAAK,CAAA,CAAA;AAFLC,MAAAA,KAAA,CAAYG,YAAA,GAAW,EAAE;MAiBjCH,KAAA,CAAkBI,kBAAA,GAAG,YAA6B;;AAChD,QAAA,IAAMC,WAAW,GAAG,CAAAC,EAAA,GAAAV,MAAM,KAAN,IAAA,IAAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAAA,MAAM,CAAEW,aAAa,MAAI,IAAA,IAAAD,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAA,CAAC;AAC9C,QAAA,IAAME,OAAO,GAAGH,WAAW,GAAG,CAAC,GAAGI,KAAW,EAAE,CAACC,GAAG,CAACL,WAAW,EAAE,KAAK,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC,GAAGf,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEY,OAAO;AACxG,QAAA,IAAMI,KAAK,GAAG,CAAAC,EAAA,GAAAb,KAAA,CAAKD,KAAK,CAACa,KAAK,MAAA,IAAA,IAAAC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,CAAAC,EAAA,GAAAd,KAAA,CAAKD,KAAK,CAACgB,IAAI,MAAE,IAAA,IAAAD,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAAE,QAAQ,EAAE;QAC7D,IAAMC,MAAM,GAAG,CAAAC,EAAA,GAAAlB,KAAA,CAAKD,KAAK,CAACkB,MAAM,MAAI,IAAA,IAAAC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAAxB,aAAa;AACjD,QAAA,IAAMyB,QAAQ,GAAGC,eAAe,CAAIpB,KAAA,CAAKD,KAAK,CAACsB,aAAa,EAAErB,KAAA,CAAKD,KAAK,CAACgB,IAAI,CAAC;AAC9E,QAAA,IAAMO,GAAG,GAA2B;AAClCV,UAAAA,KAAK,EAALA,KAAK;AACLK,UAAAA,MAAM,EAANA,MAAM;AACNM,UAAAA,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;AAC/BC,UAAAA,KAAK,EAAExB,KAAA,CAAKyB,KAAK,CAACD,KAAK;UACvBE,QAAQ,EAAE1B,KAAA,CAAK2B,YAAY;AAC3BC,UAAAA,QAAQ,EAAE5B,KAAA,CAAKD,KAAK,CAAC6B,QAAQ;AAC7BpB,UAAAA,OAAO,EAAPA,OAAO;AACPqB,UAAAA,SAAS,EAAE;AACTC,YAAAA,SAAS,EAAE;cAAEC,MAAM,EAAE/B,KAAA,CAAKgC,UAAU;AAAEC,cAAAA,SAAS,EAAE,IAAI;cAAEC,KAAK,EAAEf,QAAQ,CAACe,KAAK;cAAEC,UAAU,EAAEhB,QAAQ,CAACiB,OAAO;AAAEC,cAAAA,OAAO,EAAE;AAAY;AAClI;SACF;AACD,QAAA,OAAOC,aAAY,CAAChB,GAAG,EAAE1B,MAAM,KAAA,IAAA,IAANA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAAA,MAAM,CAAE2C,eAAe,EAAE,MAAAvC,KAAA,CAAKwC,KAAK,MAAE,IAAA,IAAAC,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAAF,eAAe,CAAC;OAC/E;MAEDvC,KAAA,CAAQ0C,QAAA,GAA4B,IAAI;AAehC1C,MAAAA,KAAA,CAAA2C,UAAU,GAAG,UAACC,YAAqB,EAAY;QACrD,OAAON,aAAY,CAAS,EAAE,EAAE1C,MAAM,EAAEgD,YAAY,CAAC;OACtD;MAED5C,KAAA,CAAUgC,UAAA,GAAG,YAAK;AAChB,QAAA,IAAI,CAAChC,KAAA,CAAKD,KAAK,CAACgB,IAAI,EAAE;AACtBf,QAAAA,KAAA,CAAKD,KAAK,CAACgC,MAAM,IAAI/B,KAAA,CAAKD,KAAK,CAACgC,MAAM,CAAC/B,KAAA,CAAKD,KAAK,CAACgB,IAAI,CAAC;OACxD;AAEDf,MAAAA,KAAA,CAAA2B,YAAY,GAAG,UAACkB,QAAsB,EAAI;QACxC7C,KAAA,CAAK8C,QAAQ,CAAC;AAAEtB,UAAAA,KAAK,EAAEqB;AAAU,SAAA,CAAC;QAClC,IAAI7C,KAAA,CAAK0C,QAAQ,EAAE;AACjB1C,UAAAA,KAAA,CAAK0C,QAAQ,CAAClB,KAAK,GAAGqB,QAAQ,IAAI,CAACE,KAAK,CAACF,QAAQ,CAACG,MAAM,EAAE,CAACC,OAAO,EAAE,CAAC,GAAGJ,QAAQ,CAACG,MAAM,EAAE,CAACE,WAAW,EAAE,GAAG,EAAE;AAC7G;AACDC,QAAAA,UAAU,CAACnD,KAAA,CAAKgC,UAAU,EAAE,EAAE,CAAC;OAChC;MAEDhC,KAAA,CAAeoD,eAAA,GAAG,YAAY;;QAC5B,IAAI;AACF,UAAA,IAAI,CAACpD,KAAA,CAAKD,KAAK,CAACsD,YAAY,IAAI,CAACrD,KAAA,CAAKwC,KAAK,CAACa,YAAY,IAAIrD,KAAA,CAAKwC,KAAK,CAACjC,aAAa,EAAE,OAAOE,KAAW,EAAE,CAACC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAACC,OAAO,CAAC,KAAK,CAAC;AACvI,UAAA,IAAI,CAACX,KAAA,CAAKD,KAAK,CAACsD,YAAY,IAAIrD,KAAA,CAAKwC,KAAK,CAAChC,OAAO,EAAE,OAAOR,KAAA,CAAKwC,KAAK,CAAChC,OAAO;AAE7E,UAAA,IAAA8C,WAAA,GAAuBtD,KAAA,CAAKD,KAAK;YAAzBwD,IAAI,GAAAD,WAAA,CAAJC,IAAI;YAAExC,IAAI,GAAAuC,WAAA,CAAJvC,IAAI;UAClB,IAAMyC,MAAM,GAAG,CAAA3C,EAAA,GAAA,CAAAP,EAAA,GAAAN,KAAA,CAAKD,KAAK,CAACsD,YAAY,mCAAIrD,KAAA,CAAKwC,KAAK,CAACa,YAAY,MAAI,IAAA,IAAAxC,EAAA,KAAA,KAAA,CAAA,GAAAA,EAAA,GAACE,IAAI,GAAGwC,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAGxC,IAAI,CAAC,GAAG,EAAG;AAC/F,UAAA,OAAOyC,MAAM,GAAG/C,KAAW,CAAC+C,MAAM,CAACxC,QAAQ,EAAE,CAAC,GAAGP,KAAW,EAAE;SAC/D,CAAC,OAAMK,EAAA,EAAA;UACN,OAAOL,KAAW,EAAE;AACrB;OACF;MA9ECT,KAAA,CAAKG,YAAY,GAAG,CAAAG,EAAA,GAAAN,KAAA,CAAK2C,UAAU,CAAC5C,KAAK,CAACyC,KAAK,CAAC,MAAA,IAAA,IAAAlC,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,EAAE;MACtDN,KAAA,CAAKyB,KAAK,GAAG;AAAED,QAAAA,KAAK,EAAExB,KAAA,CAAKoD,eAAe;OAAI;AAAA,MAAA,OAAApD,KAAA;AAChD;IAACyD,SAAA,CAAA5D,UAAA,EAAAC,UAAA,CAAA;IAAA,OAAA4D,YAAA,CAAA7D,UAAA,EAAA,CAAA;MAAA8D,GAAA,EAAA,OAAA;MAAAC,GAAA,EAED,SAAAA,GAAAA,GAAS;QACP,OAAO,IAAI,CAACzD,YAAY;AAC1B;AAAC,KAAA,EAAA;MAAAwD,GAAA,EAAA,oBAAA;AAAAnC,MAAAA,KAAA,EAED,SAAAqC,kBAAkBA,CAACC,SAAoB,EAAA;QACrC,IAAIA,SAAS,CAACtB,KAAK,KAAK,IAAI,CAACzC,KAAK,CAACyC,KAAK,EAAE;AACxC,UAAA,IAAI,CAACrC,YAAY,GAAG,IAAI,CAACwC,UAAU,CAAC,IAAI,CAAC5C,KAAK,CAACyC,KAAK,CAAC;AACtD;AACH;AAAC,KAAA,EAAA;MAAAmB,GAAA,EAAA,QAAA;AAAAnC,MAAAA,KAAA,EAwBD,SAAAuC,MAAMA,GAAA;AAAA,QAAA,IAAAC,MAAA,GAAA,IAAA;;AACJ,QAAA,oBACEC,KAAA,CAAAC,aAAA,CAACC,oBAAoB,EAAA;AAACC,UAAAA,WAAW,EAAEC;AAAa,SAAA,eAC9CJ,KAAA,CAAAC,aAAA,CAACI,gBAAgB,EAAK,IAAI,CAAClE,kBAAkB,EAC7C,CAAA,eAAA6D,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;UACEK,MAAM,EAAA,IAAA;UACNxD,IAAI,EAAE,CAAAT,EAAA,GAAA,IAAI,CAACP,KAAK,CAACgB,IAAI,MAAA,IAAA,IAAAT,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAEU,QAAQ,EAAG;AAClCqC,UAAAA,YAAY,EAAE,CAAAxC,EAAA,GAAA,IAAI,CAACuC,eAAe,EAAE,MAAA,IAAA,IAAAvC,EAAA,KAAA,MAAA,GAAA,MAAA,GAAAA,EAAA,CAAEmC,MAAM,EAAG,CAAAE,WAAW,EAAG;AAC7DsB,UAAAA,GAAG,EAAE,SAALA,GAAGA,CAAGA,IAAG,EAAA;AAAA,YAAA,OAAMR,MAAI,CAACtB,QAAQ,GAAG8B,IAAG;AAAA;AAAE,SAExC,CAAsB,CAAC;AAE3B;AAAC,KAAA,CAAA,CAAA;AAAA,GAAA,CApDsBC,SAA4B,CAAA;AAoFrD,EAAA,OAAO5E,UAAU;AACnB;AAIA,IAAMyE,gBAAgB,GAAGI,MAAM,CAACC,UAAoB,CAAC,CAAC;AACpD,EAAA,2DAA2D,EAAE;AAC3DC,IAAAA,YAAY,EAAE;AACf;AACF,CAAA,CAAC;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.form-base.js","sources":["../../../src/form/create.form-base.tsx"],"sourcesContent":["import React, { Component } from 'react'\r\nimport { Box, SxProps, Theme } from '@mui/material'\r\nimport { IFormBase } from './types'\r\nimport { convertFormDataToJson, GetErrorFromResponse, SingleValidate, ValidateMerge } from './helper'\r\nimport FormValidator, { PartialError, SingleRuleValidate } from './validator'\r\n\r\ninterface IParam<TModel> {\r\n validate?: FormValidator<Partial<TModel>>\r\n}\r\n\r\ninterface IProps<TModel> {\r\n sx?: SxProps<Theme>\r\n validate?: FormValidator<Partial<TModel>>\r\n onSubmit: (data: Partial<TModel>, e: React.FormEvent<HTMLFormElement>) => Promise<void>\r\n}\r\n\r\ninterface IState<TModel> extends Pick<IFormBase<TModel>, 'messageErrors'> {\r\n modelState?: Partial<TModel>\r\n}\r\n\r\nexport interface IFormContextBase<TModel> {\r\n modelState?: Partial<TModel>\r\n messageErrors: PartialError<TModel>\r\n onBlur: (keyName: keyof TModel) => void\r\n setError: (keyName: keyof TModel, message: string) => void\r\n clearErrorAll: (keyName: keyof TModel) => void\r\n}\r\n\r\nconst CreateFormBase = function <TModel>(param?: IParam<TModel>) {\r\n const FormBaseContext = React.createContext<IFormContextBase<TModel>>({} as any)\r\n class FormBase extends Component<React.PropsWithChildren<IProps<TModel>>, IState<TModel>> {\r\n refForm: HTMLFormElement | null = null\r\n constructor(props: IProps<TModel>) {\r\n super(props)\r\n this.validate = this.getValidate()\r\n this.state = { messageErrors: {} }\r\n }\r\n\r\n setError = (keyName: keyof TModel, message: string) => {\r\n const error = { [keyName]: [{ rule: SingleRuleValidate.Custom, message }] }\r\n this.setState({\r\n messageErrors: Object.assign({}, this.state.messageErrors, error)\r\n })\r\n }\r\n\r\n clearErrorAll = () => {\r\n this.setState({ messageErrors: {} })\r\n }\r\n\r\n render() {\r\n const { onBlur, setError, clearErrorAll } = this\r\n const { modelState, messageErrors } = this.state\r\n return (\r\n <Box component='form' sx={this.props.sx} ref={(ref: HTMLFormElement) => (this.refForm = ref)} onSubmit={this.onSubmit}>\r\n <FormBaseContext.Provider value={{ setError, onBlur, clearErrorAll, modelState, messageErrors }}>\r\n {this.props.children}\r\n </FormBaseContext.Provider>\r\n </Box>\r\n )\r\n }\r\n\r\n private validate: FormValidator<Partial<TModel>>\r\n onSubmit: React.FormEventHandler<HTMLFormElement> = async (e) => {\r\n e.preventDefault()\r\n const formData = new FormData(e.currentTarget as HTMLFormElement)\r\n const model = convertFormDataToJson<TModel>(formData)\r\n this.setState({ modelState: model })\r\n const messageErrors = this.validate.run(model) as PartialError<TModel>\r\n if (messageErrors) {\r\n this.setState({ messageErrors: messageErrors })\r\n if (Object.keys(messageErrors).length > 0) return\r\n }\r\n await this.props.onSubmit(model, e).catch((error) => {\r\n const messageError = GetErrorFromResponse(error, model)\r\n this.setState({ messageErrors: { ...this.state.messageErrors, ...(messageError || {}) } })\r\n })\r\n }\r\n\r\n onBlur = (keyName: keyof TModel) => {\r\n if (!this.refForm) return\r\n const { messageErrors } = this.state\r\n const formData = new FormData(this.refForm)\r\n const model = convertFormDataToJson(formData)\r\n this.setState({ modelState: model })\r\n const error = SingleValidate<TModel, Partial<TModel>>(keyName, model, messageErrors, this.validate) || {}\r\n this.setState({ messageErrors: error as PartialError<TModel> })\r\n }\r\n\r\n getValidate = (): FormValidator<Partial<TModel>> => {\r\n const defaultValidate = new FormValidator<Partial<TModel>>({})\r\n return ValidateMerge(defaultValidate, param?.validate, this.props.validate)\r\n }\r\n }\r\n\r\n return {\r\n Form: FormBase,\r\n Validator: param?.validate,\r\n Context: FormBaseContext,\r\n contextMapping: (params: (context: IFormContextBase<TModel>) => JSX.Element) => <FormBaseContext.Consumer>{params}</FormBaseContext.Consumer>\r\n }\r\n}\r\nexport default CreateFormBase\r\n"],"names":["CreateFormBase","param","FormBaseContext","React","createContext","FormBase","_Component","props","_this","_classCallCheck","_callSuper","refForm","setError","keyName","message","error","_defineProperty","rule","SingleRuleValidate","Custom","setState","messageErrors","Object","assign","state","clearErrorAll","onSubmit","e","__awaiter","_regeneratorRuntime","mark","_callee","_this2","formData","model","wrap","_callee$","_context","prev","next","preventDefault","FormData","currentTarget","convertFormDataToJson","modelState","validate","run","keys","length","abrupt","messageError","GetErrorFromResponse","stop","onBlur","SingleValidate","getValidate","defaultValidate","FormValidator","ValidateMerge","_inherits","_createClass","key","value","render","_this3","_this$state","createElement","Box","component","sx","ref","Provider","children","Component","Form","Validator","Context","contextMapping","params","Consumer"],"mappings":"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"}
|