@next-bricks/form 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +25 -25
- package/dist/chunks/{4049.c9231cdb.js → 1024.e6e84e10.js} +2 -2
- package/dist/chunks/{4049.c9231cdb.js.map → 1024.e6e84e10.js.map} +1 -1
- package/dist/chunks/1372.646dd047.js +2 -0
- package/dist/chunks/{8498.a624c508.js.map → 1372.646dd047.js.map} +1 -1
- package/dist/chunks/1564.9da0a147.js +2 -0
- package/dist/chunks/{2754.131e5d06.js.map → 1564.9da0a147.js.map} +1 -1
- package/dist/chunks/1772.afde9c5d.js +2 -0
- package/dist/chunks/1772.afde9c5d.js.map +1 -0
- package/dist/chunks/{2024.709c5b23.js → 1776.23ab99ab.js} +2 -2
- package/dist/chunks/{2024.709c5b23.js.map → 1776.23ab99ab.js.map} +1 -1
- package/dist/chunks/1832.b1430978.js +2 -0
- package/dist/chunks/1832.b1430978.js.map +1 -0
- package/dist/chunks/{8316.6bf92939.js → 2356.0f26ad15.js} +3 -2
- package/dist/chunks/2356.0f26ad15.js.map +1 -0
- package/dist/chunks/242.8c275ad8.js +2 -0
- package/dist/chunks/242.8c275ad8.js.map +1 -0
- package/dist/chunks/{5716.2f556b6f.js → 2560.82aaec19.js} +2 -2
- package/dist/chunks/2560.82aaec19.js.map +1 -0
- package/dist/chunks/2632.120a7b8d.js +2 -0
- package/dist/chunks/{4991.5a94cf9d.js.map → 2632.120a7b8d.js.map} +1 -1
- package/dist/chunks/2976.93e2729e.js +2 -0
- package/dist/chunks/2976.93e2729e.js.map +1 -0
- package/dist/chunks/3272.279837d8.js +3 -0
- package/dist/chunks/3272.279837d8.js.map +1 -0
- package/dist/chunks/{5725.93406f7c.js → 3680.8833e0a1.js} +2 -2
- package/dist/chunks/{5725.93406f7c.js.map → 3680.8833e0a1.js.map} +1 -1
- package/dist/chunks/3752.53524bf2.js +2 -0
- package/dist/chunks/{6653.1d0752f6.js.map → 3752.53524bf2.js.map} +1 -1
- package/dist/chunks/3811.4a005b95.js +2 -0
- package/dist/chunks/3811.4a005b95.js.map +1 -0
- package/dist/chunks/4424.b813edbe.js +2 -0
- package/dist/chunks/{4540.933f9d9d.js.map → 4424.b813edbe.js.map} +1 -1
- package/dist/chunks/{4275.d194a6d0.js → 4524.0d2c8bc4.js} +2 -2
- package/dist/chunks/{4275.d194a6d0.js.map → 4524.0d2c8bc4.js.map} +1 -1
- package/dist/chunks/4847.d2780047.js +2 -0
- package/dist/chunks/4847.d2780047.js.map +1 -0
- package/dist/chunks/5356.11eb5245.js +2 -0
- package/dist/chunks/5356.11eb5245.js.map +1 -0
- package/dist/chunks/5400.7346181a.js +2 -0
- package/dist/chunks/5400.7346181a.js.map +1 -0
- package/dist/chunks/{2784.4e953002.js → 5668.a8db154f.js} +3 -2
- package/dist/chunks/5668.a8db154f.js.map +1 -0
- package/dist/chunks/6056.8fb66dc3.js +2 -0
- package/dist/chunks/{2179.bf3df713.js.map → 6056.8fb66dc3.js.map} +1 -1
- package/dist/chunks/{7672.0bc7f2af.js → 6064.b8e47421.js} +2 -2
- package/dist/chunks/{7672.0bc7f2af.js.map → 6064.b8e47421.js.map} +1 -1
- package/dist/chunks/6192.934ed25b.js +2 -0
- package/dist/chunks/6192.934ed25b.js.map +1 -0
- package/dist/chunks/6228.52516cd5.js +2 -0
- package/dist/chunks/6228.52516cd5.js.map +1 -0
- package/dist/chunks/6352.94bd1f0f.js +2 -0
- package/dist/chunks/6352.94bd1f0f.js.map +1 -0
- package/dist/chunks/{7110.a25da63c.js → 6408.6b4fab2b.js} +2 -2
- package/dist/chunks/6408.6b4fab2b.js.map +1 -0
- package/dist/chunks/6736.9a4fef91.js +3 -0
- package/dist/chunks/{8008.48391db2.js.map → 6736.9a4fef91.js.map} +1 -1
- package/dist/chunks/6804.9687bb89.js +2 -0
- package/dist/chunks/{8588.6a967f83.js.map → 6804.9687bb89.js.map} +1 -1
- package/dist/chunks/7228.f45ababa.js +2 -0
- package/dist/chunks/7228.f45ababa.js.map +1 -0
- package/dist/chunks/7476.c4997756.js +2 -0
- package/dist/chunks/7476.c4997756.js.map +1 -0
- package/dist/chunks/7861.7dd8e975.js +2 -0
- package/dist/chunks/{5381.1a4afa5a.js.map → 7861.7dd8e975.js.map} +1 -1
- package/dist/chunks/{6635.cf6a5657.js → 7928.a379c779.js} +3 -3
- package/dist/chunks/{6635.cf6a5657.js.map → 7928.a379c779.js.map} +1 -1
- package/dist/chunks/8060.99bdecf4.js +2 -0
- package/dist/chunks/8060.99bdecf4.js.map +1 -0
- package/dist/chunks/8064.cd34cfbe.js +2 -0
- package/dist/chunks/8064.cd34cfbe.js.map +1 -0
- package/dist/chunks/820.6f0a01d9.js +2 -0
- package/dist/chunks/820.6f0a01d9.js.map +1 -0
- package/dist/chunks/8440.02cce698.js +2 -0
- package/dist/chunks/{6205.54bc36bd.js.map → 8440.02cce698.js.map} +1 -1
- package/dist/chunks/856.9e8a7f42.js +2 -0
- package/dist/chunks/856.9e8a7f42.js.map +1 -0
- package/dist/chunks/{6473.851e08b6.js → 8644.82982f42.js} +2 -2
- package/dist/chunks/{6473.851e08b6.js.map → 8644.82982f42.js.map} +1 -1
- package/dist/chunks/{4031.9fcc08e1.js → 8648.daa3668b.js} +2 -2
- package/dist/chunks/{4031.9fcc08e1.js.map → 8648.daa3668b.js.map} +1 -1
- package/dist/chunks/872.d3503cb2.js +2 -0
- package/dist/chunks/872.d3503cb2.js.map +1 -0
- package/dist/chunks/8732.c65201b4.js +2 -0
- package/dist/chunks/8732.c65201b4.js.map +1 -0
- package/dist/chunks/8756.8f9f59d0.js +3 -0
- package/dist/chunks/8756.8f9f59d0.js.map +1 -0
- package/dist/chunks/8944.4260ef06.js +2 -0
- package/dist/chunks/{4795.90b6991e.js.map → 8944.4260ef06.js.map} +1 -1
- package/dist/chunks/9648.d4a5738b.js +2 -0
- package/dist/chunks/9648.d4a5738b.js.map +1 -0
- package/dist/chunks/eo-auto-complete.abfc2ae7.js +3 -0
- package/dist/chunks/eo-auto-complete.abfc2ae7.js.map +1 -0
- package/dist/chunks/eo-checkbox.edfc708c.js +2 -0
- package/dist/chunks/eo-checkbox.edfc708c.js.map +1 -0
- package/dist/chunks/eo-date-picker.aec18c09.js +2 -0
- package/dist/chunks/eo-date-picker.aec18c09.js.map +1 -0
- package/dist/chunks/eo-dynamic-form-item.6893fb2c.js +3 -0
- package/dist/chunks/eo-dynamic-form-item.6893fb2c.js.map +1 -0
- package/dist/chunks/eo-form-item.b37a9c8b.js +3 -0
- package/dist/chunks/eo-form-item.b37a9c8b.js.map +1 -0
- package/dist/chunks/eo-form.d8b84b09.js +2 -0
- package/dist/chunks/eo-form.d8b84b09.js.map +1 -0
- package/dist/chunks/eo-icon-select.05513840.js +3 -0
- package/dist/chunks/eo-icon-select.05513840.js.map +1 -0
- package/dist/chunks/eo-input.b3384704.js +3 -0
- package/dist/chunks/eo-input.b3384704.js.map +1 -0
- package/dist/chunks/eo-radio.918b4712.js +3 -0
- package/dist/chunks/eo-radio.918b4712.js.map +1 -0
- package/dist/chunks/eo-search.2d7a308f.js +2 -0
- package/dist/chunks/eo-search.2d7a308f.js.map +1 -0
- package/dist/chunks/eo-select.8d7a70a3.js +3 -0
- package/dist/chunks/eo-select.8d7a70a3.js.map +1 -0
- package/dist/chunks/eo-submit-buttons.d4ba6c66.js +2 -0
- package/dist/chunks/eo-submit-buttons.d4ba6c66.js.map +1 -0
- package/dist/chunks/eo-switch.ff851d38.js +3 -0
- package/dist/chunks/eo-switch.ff851d38.js.map +1 -0
- package/dist/chunks/eo-textarea.38defa38.js +3 -0
- package/dist/chunks/eo-textarea.38defa38.js.map +1 -0
- package/dist/chunks/eo-time-picker.986a098e.js +2 -0
- package/dist/chunks/eo-time-picker.986a098e.js.map +1 -0
- package/dist/chunks/eo-time-range-picker.d55f4299.js +2 -0
- package/dist/chunks/eo-time-range-picker.d55f4299.js.map +1 -0
- package/dist/chunks/eo-upload-file.028e44dc.js +3 -0
- package/dist/chunks/eo-upload-file.028e44dc.js.map +1 -0
- package/dist/chunks/eo-upload-image.27caca05.js +3 -0
- package/dist/chunks/eo-upload-image.27caca05.js.map +1 -0
- package/dist/chunks/main.73e5e0f8.js +2 -0
- package/dist/chunks/main.73e5e0f8.js.map +1 -0
- package/dist/examples.json +11 -11
- package/dist/index.d2951838.js +2 -0
- package/dist/index.d2951838.js.map +1 -0
- package/dist/manifest.json +249 -249
- package/dist/types.json +1735 -1735
- package/dist-types/form-item/index.spec.d.ts +1 -0
- package/docs/eo-dynamic-form-item.md +1 -1
- package/docs/eo-radio.md +3 -1
- package/docs/eo-select.md +1 -1
- package/docs/eo-submit-buttons.md +20 -40
- package/docs/eo-switch.md +1 -1
- package/package.json +4 -4
- package/dist/chunks/1236.c243ac33.js +0 -2
- package/dist/chunks/1236.c243ac33.js.map +0 -1
- package/dist/chunks/1303.3f73197e.js +0 -2
- package/dist/chunks/1303.3f73197e.js.map +0 -1
- package/dist/chunks/1646.3c0dd2c1.js +0 -2
- package/dist/chunks/1646.3c0dd2c1.js.map +0 -1
- package/dist/chunks/1874.8dc70082.js +0 -2
- package/dist/chunks/1874.8dc70082.js.map +0 -1
- package/dist/chunks/2108.5dd77e2b.js +0 -2
- package/dist/chunks/2108.5dd77e2b.js.map +0 -1
- package/dist/chunks/2179.bf3df713.js +0 -2
- package/dist/chunks/2754.131e5d06.js +0 -2
- package/dist/chunks/3458.4c7fbba5.js +0 -2
- package/dist/chunks/3458.4c7fbba5.js.map +0 -1
- package/dist/chunks/3948.02eb1d71.js +0 -2
- package/dist/chunks/3948.02eb1d71.js.map +0 -1
- package/dist/chunks/4540.933f9d9d.js +0 -2
- package/dist/chunks/4717.0d0a5793.js +0 -2
- package/dist/chunks/4717.0d0a5793.js.map +0 -1
- package/dist/chunks/4795.90b6991e.js +0 -2
- package/dist/chunks/4991.5a94cf9d.js +0 -2
- package/dist/chunks/5151.ccc54077.js +0 -2
- package/dist/chunks/5151.ccc54077.js.map +0 -1
- package/dist/chunks/5381.1a4afa5a.js +0 -2
- package/dist/chunks/5628.d77bdb77.js +0 -2
- package/dist/chunks/5628.d77bdb77.js.map +0 -1
- package/dist/chunks/5636.676bad66.js +0 -2
- package/dist/chunks/5636.676bad66.js.map +0 -1
- package/dist/chunks/5716.2f556b6f.js.map +0 -1
- package/dist/chunks/5789.e946d373.js +0 -3
- package/dist/chunks/5789.e946d373.js.map +0 -1
- package/dist/chunks/6205.54bc36bd.js +0 -2
- package/dist/chunks/6653.1d0752f6.js +0 -2
- package/dist/chunks/6660.71f541b7.js +0 -2
- package/dist/chunks/6660.71f541b7.js.map +0 -1
- package/dist/chunks/6969.71535221.js +0 -3
- package/dist/chunks/6969.71535221.js.map +0 -1
- package/dist/chunks/6980.e59062da.js +0 -2
- package/dist/chunks/6980.e59062da.js.map +0 -1
- package/dist/chunks/7067.efcc5fd0.js +0 -2
- package/dist/chunks/7067.efcc5fd0.js.map +0 -1
- package/dist/chunks/7110.a25da63c.js.map +0 -1
- package/dist/chunks/7164.d8415e45.js +0 -2
- package/dist/chunks/7164.d8415e45.js.map +0 -1
- package/dist/chunks/7746.d245961e.js +0 -2
- package/dist/chunks/7746.d245961e.js.map +0 -1
- package/dist/chunks/7915.e235a57b.js +0 -2
- package/dist/chunks/7915.e235a57b.js.map +0 -1
- package/dist/chunks/8008.48391db2.js +0 -3
- package/dist/chunks/8498.a624c508.js +0 -2
- package/dist/chunks/8588.6a967f83.js +0 -2
- package/dist/chunks/8691.5bfc34e7.js +0 -2
- package/dist/chunks/8691.5bfc34e7.js.map +0 -1
- package/dist/chunks/9431.671db050.js +0 -2
- package/dist/chunks/9431.671db050.js.map +0 -1
- package/dist/chunks/9549.b7a67a03.js +0 -2
- package/dist/chunks/9549.b7a67a03.js.map +0 -1
- package/dist/chunks/eo-auto-complete.5e90af9d.js +0 -3
- package/dist/chunks/eo-auto-complete.5e90af9d.js.map +0 -1
- package/dist/chunks/eo-checkbox.f3bc89e8.js +0 -2
- package/dist/chunks/eo-checkbox.f3bc89e8.js.map +0 -1
- package/dist/chunks/eo-date-picker.32750be6.js +0 -2
- package/dist/chunks/eo-date-picker.32750be6.js.map +0 -1
- package/dist/chunks/eo-dynamic-form-item.1a6aa59b.js +0 -3
- package/dist/chunks/eo-dynamic-form-item.1a6aa59b.js.map +0 -1
- package/dist/chunks/eo-form-item.5b65d837.js +0 -3
- package/dist/chunks/eo-form-item.5b65d837.js.map +0 -1
- package/dist/chunks/eo-form.4a6ea696.js +0 -2
- package/dist/chunks/eo-form.4a6ea696.js.map +0 -1
- package/dist/chunks/eo-icon-select.c3f6fa90.js +0 -3
- package/dist/chunks/eo-icon-select.c3f6fa90.js.map +0 -1
- package/dist/chunks/eo-input.d11ac139.js +0 -3
- package/dist/chunks/eo-input.d11ac139.js.map +0 -1
- package/dist/chunks/eo-radio.3db45b5c.js +0 -3
- package/dist/chunks/eo-radio.3db45b5c.js.map +0 -1
- package/dist/chunks/eo-search.022419b5.js +0 -2
- package/dist/chunks/eo-search.022419b5.js.map +0 -1
- package/dist/chunks/eo-select.859db8d7.js +0 -3
- package/dist/chunks/eo-select.859db8d7.js.map +0 -1
- package/dist/chunks/eo-submit-buttons.225fb0bc.js +0 -2
- package/dist/chunks/eo-submit-buttons.225fb0bc.js.map +0 -1
- package/dist/chunks/eo-switch.2b683d0d.js +0 -3
- package/dist/chunks/eo-switch.2b683d0d.js.map +0 -1
- package/dist/chunks/eo-textarea.9f46ac4a.js +0 -3
- package/dist/chunks/eo-textarea.9f46ac4a.js.map +0 -1
- package/dist/chunks/eo-time-picker.46db1e5d.js +0 -2
- package/dist/chunks/eo-time-picker.46db1e5d.js.map +0 -1
- package/dist/chunks/eo-time-range-picker.1dd4ca8d.js +0 -2
- package/dist/chunks/eo-time-range-picker.1dd4ca8d.js.map +0 -1
- package/dist/chunks/eo-upload-file.88e9b8c2.js +0 -3
- package/dist/chunks/eo-upload-file.88e9b8c2.js.map +0 -1
- package/dist/chunks/eo-upload-image.104acb6a.js +0 -3
- package/dist/chunks/eo-upload-image.104acb6a.js.map +0 -1
- package/dist/chunks/main.513e996e.js +0 -2
- package/dist/chunks/main.513e996e.js.map +0 -1
- package/dist/index.296b2f35.js +0 -2
- package/dist/index.296b2f35.js.map +0 -1
- /package/dist/chunks/{8316.6bf92939.js.LICENSE.txt → 2356.0f26ad15.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{6969.71535221.js.LICENSE.txt → 3272.279837d8.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{2784.4e953002.js.LICENSE.txt → 5668.a8db154f.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{8008.48391db2.js.LICENSE.txt → 6736.9a4fef91.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{6635.cf6a5657.js.LICENSE.txt → 7928.a379c779.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5789.e946d373.js.LICENSE.txt → 8756.8f9f59d0.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-auto-complete.5e90af9d.js.LICENSE.txt → eo-auto-complete.abfc2ae7.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-dynamic-form-item.1a6aa59b.js.LICENSE.txt → eo-dynamic-form-item.6893fb2c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-form-item.5b65d837.js.LICENSE.txt → eo-form-item.b37a9c8b.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-icon-select.c3f6fa90.js.LICENSE.txt → eo-icon-select.05513840.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-input.d11ac139.js.LICENSE.txt → eo-input.b3384704.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-radio.3db45b5c.js.LICENSE.txt → eo-radio.918b4712.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-select.859db8d7.js.LICENSE.txt → eo-select.8d7a70a3.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-switch.2b683d0d.js.LICENSE.txt → eo-switch.ff851d38.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-textarea.9f46ac4a.js.LICENSE.txt → eo-textarea.38defa38.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-upload-file.88e9b8c2.js.LICENSE.txt → eo-upload-file.028e44dc.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{eo-upload-image.104acb6a.js.LICENSE.txt → eo-upload-image.27caca05.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/1236.c243ac33.js","mappings":"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","sources":["webpack:///./src/input/index.tsx","webpack:///./src/textarea/calculateAutoSizeStyle.ts","webpack:///./src/textarea/index.tsx","webpack:///../../src/PubSub.ts","webpack:///../../src/FormStore.ts","webpack:///./src/form/index.tsx","webpack:///./src/form-item/index.tsx","webpack:///./src/utils/formatOptions.ts","webpack:///./src/radio/host-context.css?b01e","webpack:///./src/radio/index.tsx","webpack:///./src/select/empty.svg","webpack:///./src/select/index.tsx","webpack:///./src/submit-buttons/index.tsx","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","webpack:///./src/checkbox/index.tsx","webpack:///./src/dynamic-form-item/i18n.ts","webpack:///./src/dynamic-form-item/index.tsx","webpack:///./src/search/index.tsx","webpack:///./src/icon-select/i18n.ts","webpack:///./src/icon-select/utils.ts","webpack:///./src/icon-select/index.tsx","webpack:///./src/upload/i18n.ts","webpack:///./src/upload/utils.ts","webpack:///./src/upload/Upload.tsx","webpack:///./src/upload/upload-image/utils.ts","webpack:///./src/upload/upload-image/index.tsx","webpack:///./src/general-switch/index.tsx","webpack:///./src/upload/upload-file/index.tsx","webpack:///./src/auto-complete/index.tsx","webpack:///../../node_modules/antd/es/time-picker/index.js","webpack:///./src/time-picker/index.tsx","webpack:///./src/date-picker/i18n.ts","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","webpack:///../../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","webpack:///../../node_modules/@ant-design/icons/es/icons/RightOutlined.js","webpack:///./src/date-picker/index.tsx","webpack:///./src/time-range-picker/i18n.ts","webpack:///./src/time-range-picker/index.tsx","webpack:///./src/radio/host-context.css","webpack:///./src/auto-complete/styles.shadow.css","webpack:///./src/checkbox/checkbox.shadow.css","webpack:///./src/date-picker/styles.shadow.css","webpack:///./src/dynamic-form-item/dynamic-form-item.shadow.css","webpack:///./src/general-switch/styles.shadow.css","webpack:///./src/icon-select/styles.shadow.css","webpack:///./src/input/input.shadow.css","webpack:///./src/radio/index.shadow.css","webpack:///./src/search/styles.shadow.css","webpack:///./src/select/index.shadow.css","webpack:///./src/submit-buttons/index.shadow.css","webpack:///./src/textarea/textarea.shadow.css","webpack:///./src/time-picker/fix-style.shadow.css","webpack:///./src/time-picker/styles.shadow.css","webpack:///./src/time-range-picker/styles.shadow.css","webpack:///./src/upload/upload-file/styles.shadow.css","webpack:///./src/upload/upload-image/styles.shadow.css","webpack:///../../node_modules/dayjs/locale/zh-cn.js","webpack:///../../node_modules/dayjs/plugin/isoWeek.js","webpack:///../../node_modules/dayjs/plugin/quarterOfYear.js","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js"],"sourcesContent":["import React, {\n useEffect,\n useState,\n useRef,\n forwardRef,\n createRef,\n useImperativeHandle,\n type ChangeEvent,\n type MouseEvent,\n type FocusEvent,\n type CSSProperties,\n} from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\nimport classNames from \"classnames\";\nimport { isNil } from \"lodash\";\nimport styleText from \"./input.shadow.css\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ComponentSize, InputType } from \"../interface.js\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface InputProps extends FormItemProps {\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n clearable?: boolean;\n autoFocus?: boolean;\n type?: InputType;\n size?: ComponentSize;\n maxLength?: number;\n minLength?: number;\n validateState?: string;\n inputStyle?: CSSProperties;\n}\n\nexport interface InputEvents {\n change: CustomEvent<string>;\n}\n\nexport interface InputEventsMap {\n onChange: \"change\";\n}\n\n/**\n * 通用输入框构件\n * @author sailor\n *\n * @part addon-wrapper - 包裹输入组件、前缀、后缀、前置和后置的容器\n * @part affix-wrapper - 包裹输入组件、前缀和后缀的容器\n * @part input - 输入组件\n * @part clear-icon - 清除按钮\n * @part prefix - 输入框前缀容器\n * @part suffix - 输入框后缀容器\n * @part before-addon - 输入框前置容器\n * @part after-addon - 输入框后置容器\n *\n * @slot addonBefore - 输入框前置标签\n * @slot addonAfter - 输入框后置标签\n * @slot prefix - 输入框前缀图标\n * @slot suffix - 输入框后缀图标\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-input\", {\n styleTexts: [styleText],\n alias: [\"form.general-input\"],\n})\nclass Input extends FormItemElementBase {\n #RCInputRef = createRef<RCInputRef>();\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 错误时显示消息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 输入框值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否只读\n */\n @property({ type: Boolean })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否显示清除按钮\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 类型\n * @default \"text\"\n */\n @property() accessor type: InputType | undefined;\n\n /**\n * 大小\n * @default \"medium\"\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 最小长度\n */\n @property({ type: Number })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({ type: Number })\n accessor maxLength: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({ attribute: false }) accessor inputStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n /**\n * focus\n */\n @method()\n focusInput() {\n return this.#RCInputRef.current?.focus();\n }\n\n /**\n * blur\n */\n @method()\n blurInput() {\n return this.#RCInputRef.current?.blur();\n }\n\n /**\n * 是否有 addonBefore 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonBefore: boolean | undefined;\n\n /**\n * 是否有 addonAfter 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasAddonAfter: boolean | undefined;\n\n /**\n * 是否有 prefix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasPrefix: boolean | undefined;\n\n /**\n * 是否有 suffix 插槽\n * @internal\n */\n @property({ type: Boolean })\n accessor hasSuffix: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n renderCallback = (ref: RCInputRef) => {\n (this.#RCInputRef as any).current = ref;\n const addonBefore = this.#getSlotByName(\"addonBefore\");\n const addonAfter = this.#getSlotByName(\"addonAfter\");\n const prefix = this.#getSlotByName(\"prefix\");\n const suffix = this.#getSlotByName(\"suffix\");\n\n addonBefore?.addEventListener(\"slotchange\", () => {\n this.hasAddonBefore = addonBefore.assignedElements().length > 0;\n });\n addonAfter?.addEventListener(\"slotchange\", () => {\n this.hasAddonAfter = addonAfter.assignedElements().length > 0;\n });\n suffix?.addEventListener(\"slotchange\", () => {\n this.hasSuffix = suffix.assignedElements().length > 0;\n });\n prefix?.addEventListener(\"slotchange\", () => {\n this.hasPrefix = prefix.assignedElements().length > 0;\n });\n };\n\n #getSlotByName(name: string): HTMLSlotElement {\n return this.shadowRoot?.querySelector(\n `slot[name='${name}']`\n ) as HTMLSlotElement;\n }\n\n render() {\n return (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <RCInput\n formElement={this.getFormElement()}\n curElement={this}\n ref={this.renderCallback}\n name={this.name}\n label={this.label}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n validateState={this.validateState}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readonly}\n clearable={this.clearable}\n autoFocus={this.autoFocus}\n type={this.type}\n size={this.size}\n minLength={this.minLength}\n maxLength={this.maxLength}\n inputStyle={this.inputStyle}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n validator={this.validator}\n />\n );\n }\n}\n\nexport interface RCInputProps extends InputProps {\n onInputChange?: (value: string) => void;\n}\n\nexport interface RCInputRef {\n focus: (options?: FocusOptions) => void;\n blur: () => void;\n}\n\n// eslint-disable-next-line react/display-name\nexport const RCInput = forwardRef<RCInputRef, RCInputProps>((props, ref) => {\n const {\n placeholder,\n clearable,\n disabled,\n readOnly,\n autoFocus,\n size = \"medium\",\n type = \"text\",\n maxLength,\n minLength,\n validateState,\n onInputChange,\n inputStyle,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputAffixWrapperRef = useRef<HTMLInputElement>(null);\n\n const [value, setValue] = useState<string>();\n const [focused, setFocused] = useState<boolean>();\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n useImperativeHandle(ref, () => ({\n focus: (options?: FocusOptions) => {\n inputRef.current?.focus(options);\n },\n blur: () => {\n inputRef.current?.blur();\n },\n }));\n\n const handleInputAffixWrapperClick = (e: MouseEvent<HTMLElement>) => {\n if (inputAffixWrapperRef.current?.contains(e.target as Element)) {\n inputRef.current?.focus();\n }\n };\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onInputChange?.(e.target.value);\n };\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n };\n\n const handleClear = (e: MouseEvent<HTMLElement>) => {\n setValue(\"\");\n onInputChange?.(\"\");\n };\n\n const getClearIcon = () => {\n if (!clearable) return null;\n\n const hidden = disabled || readOnly || !fixValue(value);\n return (\n <WrappedIcon\n className={classNames(\"input-clear-icon\", {\n \"input-clear-icon-hidden\": hidden,\n })}\n part=\"clear-icon\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={handleClear}\n />\n );\n };\n\n return (\n <WrappedFormItem {...props}>\n <div\n part=\"addon-wrapper\"\n className={classNames(\n \"input-addon-wrapper\",\n size && `input-addon-wrapper-size-${size}`,\n validateState && `input-addon-wrapper-status-${validateState}`\n )}\n style={inputStyle}\n >\n <span part=\"before-addon\" className=\"input-before-addon\">\n <slot name=\"addonBefore\" />\n </span>\n <span\n ref={inputAffixWrapperRef}\n part=\"affix-wrapper\"\n className={classNames(\"input-affix-wrapper\", {\n \"input-affix-wrapper-focused\": focused,\n \"input-affix-wrapper-disabled\": disabled,\n \"input-affix-wrapper-readOnly\": readOnly,\n })}\n onClick={handleInputAffixWrapperClick}\n >\n <span part=\"prefix\" className=\"input-prefix\">\n <slot name=\"prefix\" />\n </span>\n <input\n part=\"input\"\n placeholder={placeholder}\n autoFocus={autoFocus}\n maxLength={maxLength}\n minLength={minLength}\n ref={inputRef}\n className=\"input\"\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n value={fixValue(value)}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <span part=\"suffix\" className=\"input-suffix\">\n {getClearIcon()}\n <slot name=\"suffix\" />\n </span>\n </span>\n <span part=\"after-addon\" className=\"input-after-addon\">\n <slot name=\"addonAfter\" />\n </span>\n </div>\n </WrappedFormItem>\n );\n});\n\nfunction fixValue<T>(value: T) {\n return isNil(value) ? \"\" : String(value);\n}\n","const HIDDEN_TEXTAREA_STYLE = `\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n`;\n\nconst SIZING_STYLE = [\n \"letter-spacing\",\n \"line-height\",\n \"padding-top\",\n \"padding-bottom\",\n \"font-family\",\n \"font-weight\",\n \"font-size\",\n \"font-variant\",\n \"text-rendering\",\n \"text-transform\",\n \"width\",\n \"text-indent\",\n \"padding-left\",\n \"padding-right\",\n \"border-width\",\n \"box-sizing\",\n \"word-break\",\n \"white-space\",\n];\nlet hiddenTextarea: HTMLTextAreaElement;\n\nexport default function calculateAutoSizeStyle(\n uiTextNode: HTMLTextAreaElement,\n minRows: number | null = null,\n maxRows: number | null = null\n): React.CSSProperties {\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement(\"textarea\");\n hiddenTextarea.setAttribute(\"tab-index\", \"-1\");\n hiddenTextarea.setAttribute(\"aria-hidden\", \"true\");\n document.body.appendChild(hiddenTextarea);\n }\n\n const uiTextNodeStyle = window.getComputedStyle(uiTextNode);\n const sizingStyle = SIZING_STYLE.map(\n (name) => `${name}:${uiTextNodeStyle.getPropertyValue(name)}`\n ).join(\";\");\n\n // equal style\n hiddenTextarea.setAttribute(\n \"style\",\n `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`\n );\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || \"\";\n\n let minHeight: number | undefined = undefined;\n let maxHeight: number | undefined = undefined;\n let overflowY: any;\n\n const borderSize = 2;\n const paddingSize = 8;\n let height = hiddenTextarea.scrollHeight + borderSize;\n\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = \" \";\n const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows + paddingSize + borderSize;\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows + paddingSize + borderSize;\n overflowY = height > maxHeight ? \"\" : \"hidden\";\n height = Math.min(maxHeight, height);\n }\n }\n\n const style: React.CSSProperties = {\n height,\n overflowY,\n resize: \"none\",\n };\n\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n\n return style;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport calculateAutoSizeStyle from \"./calculateAutoSizeStyle.js\";\nimport styleText from \"./textarea.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport \"@next-core/theme\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype AutoSize =\n | boolean\n | {\n minRows: number;\n maxRows: number;\n };\n\ninterface TextareaProps extends FormItemProps {\n name?: string;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n textareaStyle?: React.CSSProperties;\n minLength?: number;\n maxLength?: number;\n autoSize?: AutoSize;\n validateState?: string;\n onInputChange: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用多行文本输入框构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-textarea\", {\n styleTexts: [styleText],\n alias: [\"form.general-textarea\"],\n})\nclass Textarea extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 标签文字\n */\n @property() accessor label: string | undefined;\n\n /**\n * 值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 最小长度\n */\n @property({\n type: Number,\n })\n accessor minLength: number | undefined;\n\n /**\n * 最大长度\n */\n @property({\n type: Number,\n })\n accessor maxLength: number | undefined;\n\n /**\n * 大小自适应\n */\n @property({\n attribute: false,\n })\n accessor autoSize: AutoSize | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 表单校验最大长度\n */\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n /**\n * 表单校验最小长度\n */\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 校验信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 自定义样式\n */\n @property({ attribute: false }) accessor textareaStyle:\n | React.CSSProperties\n | undefined;\n\n /**\n * @detail\n * @description 值改变事件\n */\n @event({ type: \"change\" })\n accessor #InputChangeEvent!: EventEmitter<string>;\n\n handleInputChange = (value: string) => {\n this.value = value;\n this.#InputChangeEvent.emit(value);\n };\n\n render() {\n return (\n <TextareaComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n placeholder={this.placeholder}\n disabled={this.disabled}\n minLength={this.minLength}\n maxLength={this.maxLength}\n autoSize={this.autoSize}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n textareaStyle={this.textareaStyle}\n validateState={this.validateState}\n max={this.max}\n min={this.min}\n message={this.message}\n trigger=\"handleInputChange\"\n onInputChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function TextareaComponent(props: TextareaProps) {\n const {\n name,\n placeholder,\n disabled,\n textareaStyle,\n minLength,\n maxLength,\n autoSize,\n validateState,\n onInputChange,\n } = props;\n const [value, setValue] = useState(props.value);\n const [autoSizeStyle, setAutoSizeStyle] = useState<React.CSSProperties>();\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const [minRows, maxRows] = React.useMemo(() => {\n if (autoSize && typeof autoSize === \"object\") {\n return [autoSize.minRows, autoSize.maxRows];\n }\n\n return [];\n }, [autoSize]);\n\n const setAutoSize = useCallback(() => {\n const textareaElement = textareaRef.current as HTMLTextAreaElement;\n if (textareaElement && autoSize) {\n const textareaStyles = calculateAutoSizeStyle(\n textareaElement,\n minRows,\n maxRows\n );\n\n setAutoSizeStyle(textareaStyles);\n }\n }, [autoSize, maxRows, minRows]);\n\n const handleInputChange = (\n e: React.ChangeEvent<HTMLTextAreaElement>\n ): void => {\n setValue(e.target.value);\n onInputChange(e.target.value);\n setAutoSize();\n };\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n useEffect(() => {\n setAutoSize();\n }, [maxRows, minRows, setAutoSize]);\n\n return (\n <WrappedFormItem {...props}>\n <textarea\n ref={textareaRef}\n className={classNames({\n error: validateState === \"error\",\n })}\n name={name}\n value={value}\n disabled={disabled}\n style={{\n height: 94,\n ...textareaStyle,\n ...autoSizeStyle,\n }}\n placeholder={placeholder}\n minLength={minLength}\n maxLength={maxLength}\n onChange={handleInputChange}\n />\n </WrappedFormItem>\n );\n}\n\nexport { Textarea };\n","import { remove } from \"lodash\";\n\nexport class PubSub {\n #topics: Record<string, { token: string; func: Function }[]> = {};\n #subUid = 0;\n\n publish(topic: string, body: any): void {\n if (!this.#topics[topic]) {\n return;\n }\n const subscribers = this.#topics[topic];\n let len = subscribers ? subscribers.length : 0;\n while (len--) {\n subscribers[len].func(topic, body);\n }\n }\n\n subscribe(topic: string, fn: (topic: string, detail: any) => void): string {\n if (!this.#topics[topic]) {\n this.#topics[topic] = [];\n }\n const token = (++this.#subUid).toString();\n this.#topics[topic].push({\n token: token,\n func: fn,\n });\n return token;\n }\n\n unsubscribe(token: string): void {\n for (const m in this.#topics) {\n if (this.#topics[m]) {\n remove(this.#topics[m], (item) => item.token === token);\n }\n }\n }\n}\n","import { isEmpty, isNil } from \"lodash\";\nimport { PubSub } from \"./PubSub.js\";\n\ninterface FormStoreOptions {\n onValuesChanged?: (data: any) => void;\n}\n\ninterface FieldDetail {\n name: string;\n label?: string;\n originProps?: Record<string, any>;\n validate: Validate;\n [k: string]: any;\n}\n\nexport interface MessageBody {\n message: string;\n type: string;\n}\n\nexport interface WatchOptions {\n needValidate?: boolean;\n}\n\ninterface Validate {\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n message?: {\n required?: string;\n pattern?: string;\n min?: string;\n max?: string;\n };\n validator?: (value: any) => MessageBody | string;\n}\n\nlet uid = 0;\n\nclass Field {\n field: string;\n detail: FieldDetail;\n constructor(name: string, detail: FieldDetail) {\n this.field = name;\n this.detail = detail;\n }\n}\n\nexport class FormStore extends PubSub {\n static uid: number;\n static instance: Map<number, FormStore> = new Map();\n static getInstance(options?: FormStoreOptions): FormStore {\n if (!this.instance.get(uid)) {\n this.uid = uid;\n this.instance.set(this.uid, new FormStore(options));\n uid += 1;\n }\n return this.instance.get(this.uid) as FormStore;\n }\n\n #fields: Map<string, Field> = new Map();\n #options: FormStoreOptions | undefined;\n #formData!: Record<string, unknown>;\n #initData: Record<string, unknown> | undefined;\n\n constructor(options?: FormStoreOptions) {\n super();\n this.#formData = {};\n this.#options = options;\n }\n\n setField(name: string, detail: FieldDetail) {\n this.#fields.set(name, new Field(name, detail));\n }\n #getAllFields() {\n return [...this.#fields.keys()];\n }\n\n getAllValues() {\n return this.#formData;\n }\n\n setInitValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n this.#initData = values;\n this.setFieldsValue(values, isEmitValuseChange);\n }\n\n setFieldsValueByInitData(name: string) {\n const value = this.#initData?.[name];\n if (!isNil(value)) {\n this.#formData[name] = value;\n this.publish(`${name}.init.value`, value);\n }\n }\n\n setFieldsValue(values: Record<string, unknown>, isEmitValuseChange = true) {\n const allFields = this.#getAllFields();\n const newFormData: Record<string, unknown> = {\n ...this.#formData,\n };\n Object.entries(values).forEach(([k, v]) => {\n if (allFields.includes(k)) {\n newFormData[k] = v;\n this.#initData && (this.#initData[k] = v);\n this.publish(`${k}.init.value`, v);\n }\n });\n this.#formData = newFormData;\n\n if (isEmitValuseChange) {\n this.#options?.onValuesChanged?.({\n changedValues: values,\n allValues: this.getAllValues(),\n });\n }\n }\n\n resetFields(name?: string) {\n if (name) {\n this.#formData[name] = null;\n this.publish(`${name}.reset.fields`, null);\n } else {\n this.#formData = {};\n this.publish(\"reset.fields\", null);\n }\n }\n\n getFieldsValue(name?: string) {\n if (name) {\n return this.#formData[name];\n }\n return this.getAllValues();\n }\n\n removeField(name: string) {\n this.#fields.delete(name);\n }\n\n validateFields(\n callback: (err: boolean, value: any) => void\n ): boolean | Record<string, unknown> {\n const allFields = this.#getAllFields();\n const results: Array<MessageBody | undefined> = [];\n allFields.forEach((name) => {\n const field = this.#fields.get(name);\n if (field) {\n results.push(this.validateField(field.detail));\n }\n });\n\n if (results.some((result) => result?.type !== \"normal\")) {\n callback(true, results);\n return false;\n } else {\n callback(false, this.#formData);\n return this.#formData;\n }\n }\n\n validateField(field: string | FieldDetail) {\n const fieldDetail =\n typeof field === \"string\" ? this.#fields.get(field)?.detail : field;\n if (!fieldDetail) return;\n const { name, label, validate } = fieldDetail;\n const validateValue = this.#formData[name];\n\n const messageBody = (message: string, type = \"error\") => {\n return {\n type,\n message,\n };\n };\n\n const getName = () => label ?? name;\n\n const valid = (validate: Validate, value: string): MessageBody => {\n const { required, pattern, message, min, max, validator } = validate;\n const label = getName();\n\n if (\n required &&\n (typeof value === \"object\"\n ? isEmpty(value)\n : typeof value === \"number\"\n ? false\n : !value)\n ) {\n return messageBody(message?.required || `${label}为必填项`);\n }\n\n if (pattern && value) {\n const reg = new RegExp(pattern);\n if (!reg.test(value)) {\n return messageBody(\n message?.pattern || `${label}没有匹配正则 ${pattern}`\n );\n }\n }\n\n if (min && (!value || value.length < min)) {\n return messageBody(message?.min || `${label}至少包含 ${min} 个字符`);\n }\n\n if (max && value && value.length > max) {\n return messageBody(message?.max || `${label}不能超过 ${max} 个字符`);\n }\n\n if (validator) {\n let result = \"\";\n let parsedValidator = [];\n if (Array.isArray(validator)) {\n parsedValidator = validator;\n } else {\n parsedValidator.push(validator);\n }\n\n for (const v of parsedValidator) {\n result = v(value);\n\n if (result) {\n break;\n }\n }\n return typeof result === \"string\"\n ? messageBody(result, result ? \"error\" : \"normal\")\n : (result as MessageBody);\n }\n\n return messageBody(\"\", \"normal\");\n };\n\n const result = valid(validate, validateValue as string);\n this.publish(`${name}.validate`, result);\n return result;\n }\n\n getValueFromEvent(e: React.ChangeEvent): any {\n if (!e || !e.target) {\n return e;\n }\n const target = e.target as HTMLInputElement;\n return target.type === \"checkbox\" ? target.checked : target.value;\n }\n\n resetValidateState() {\n this.publish(`reset.validate`, null);\n }\n\n onWatch(\n name: string,\n event: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n const value = this.getValueFromEvent(event);\n // default first params is value\n const realValue = Array.isArray(value) ? value[0] : value;\n\n this.setFieldsValue({\n [name]: realValue,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.apply(this, value);\n }\n }\n\n onChange(\n name: string,\n value: any,\n callback?: (v: string) => void,\n options?: WatchOptions\n ) {\n const field = this.#fields.get(name);\n\n if (field) {\n this.setFieldsValue({\n [name]: value,\n });\n\n if (options?.needValidate ?? true) {\n this.validateField(field.detail);\n }\n callback?.(value);\n }\n }\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n AbstractForm,\n FormStore,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ComponentSize, Layout } from \"../interface.js\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\ninterface FormProps {\n values?: Record<string, any>;\n layout?: Layout;\n size?: ComponentSize;\n}\n\nexport interface FormEvents {\n valuesChange?: Event;\n validateSuccess?: Event;\n validateError?: Event;\n}\n\nexport interface FormMapEvents {\n onValuesChange: \"values.change\";\n onValidateSuccess: \"validate.success\";\n onValidateError: \"validate.error\";\n}\n\n/**\n * 表单构件\n * @author sailor\n * @slot - 表单内容\n * @category form-input-basic\n */\n@defineElement(\"eo-form\", {\n alias: [\"form.general-form\"],\n})\nclass Form extends ReactNextElement implements FormProps, AbstractForm {\n formStore: FormStore;\n #_values!: Record<string, unknown>;\n defaultEmitValuesChange = true;\n\n constructor() {\n super();\n this.formStore = FormStore.getInstance({\n onValuesChanged: this.handleValuesChange,\n });\n }\n\n get isFormElement(): true {\n return true;\n }\n\n set values(value: Record<string, unknown>) {\n this.#_values = value;\n\n this.#_setInitValue(value);\n }\n get values(): Record<string, unknown> {\n return this.#_values;\n }\n\n #_setInitValue(values: Record<string, unknown>) {\n this.formStore.setInitValue(values, this.defaultEmitValuesChange);\n }\n\n /**\n * 布局方式(默认 vertical 布局)\n * @default vertical\n */\n @property() accessor layout: Layout = \"vertical\";\n\n /**\n * 表单组件尺寸\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 标签列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps = {\n sm: {\n span: 24,\n },\n md: {\n span: 24,\n },\n lg: {\n span: 7,\n },\n xl: {\n span: 5,\n },\n xxl: {\n span: 4,\n },\n };\n\n /**\n * 输入控件列布局样式(仅当 layout=\"horizontal\" 时有效)\n */\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps = {\n sm: {\n span: 18,\n },\n md: {\n span: 18,\n },\n lg: {\n span: 13,\n },\n xl: {\n span: 16,\n },\n xxl: {\n span: 18,\n },\n };\n\n /**\n * 表单值变更事件\n * @detail\n */\n @event({ type: \"values.change\" }) accessor #valuesChangeEvent!: EventEmitter<\n Record<string, unknown>\n >;\n handleValuesChange = (values: Record<string, unknown>) => {\n this.#valuesChangeEvent.emit(values);\n };\n\n /**\n * 表单验证成功时触发事件\n */\n @event({ type: \"validate.success\" }) accessor #successEvent!: EventEmitter<\n Record<string, unknown>\n >;\n /**\n * 表单验证报错时触发事件\n */\n @event({ type: \"validate.error\" }) accessor #errorEvent!: EventEmitter<\n MessageBody[]\n >;\n\n /**\n * 表单校验方法\n */\n @method()\n validate(): boolean | Record<string, unknown> {\n return this.formStore.validateFields((err, values) => {\n if (err) {\n this.#errorEvent.emit(values);\n } else {\n this.#successEvent.emit(values);\n }\n });\n }\n\n /**\n * 表单设置值方法\n */\n @method()\n setInitValue(values: Record<string, unknown>) {\n this.#_setInitValue(values);\n }\n\n /**\n * 表单重置值方法\n */\n @method()\n resetFields(name?: string) {\n this.formStore.resetFields(typeof name === \"string\" ? name : undefined);\n }\n\n /**\n * 获取表单值方法\n */\n @method()\n getFieldsValue(name?: string) {\n return this.formStore.getFieldsValue(\n typeof name === \"string\" ? name : undefined\n );\n }\n\n @property({\n attribute: false,\n })\n accessor formStyle: React.CSSProperties | undefined;\n\n /**\n * 校验表单字段方法\n */\n @method()\n validateField(name: string) {\n this.formStore.validateField(name);\n }\n\n /**\n * 重置表单校验状态方法\n */\n @method()\n resetValidateState() {\n this.formStore.resetValidateState();\n }\n\n render() {\n return (\n <FormComponent\n layout={this.layout}\n size={this.size}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n formStyle={this.formStyle}\n />\n );\n }\n}\n\ninterface FormComponentProps extends FormProps {\n formStyle?: React.CSSProperties;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n onValuesChange?: (value: Record<string, any>) => void;\n onValidateSuccess?: () => void;\n onValidateError?: () => void;\n}\n\nexport function FormComponent({\n layout = \"vertical\",\n formStyle,\n}: FormComponentProps) {\n const computedStyle = useMemo((): React.CSSProperties => {\n switch (layout) {\n case \"vertical\":\n case \"horizontal\": {\n return {\n display: \"flex\",\n flexDirection: \"column\",\n };\n }\n case \"inline\": {\n return {\n display: \"flex\",\n gap: 10,\n };\n }\n default:\n return {};\n }\n }, [layout]);\n\n return (\n <form>\n <slot\n style={{\n ...computedStyle,\n ...(formStyle ? formStyle : {}),\n }}\n />\n </form>\n );\n}\n\nexport { Form, FormProps };\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport {\n AbstractForm,\n FormItemElementBase,\n MessageBody,\n ColProps,\n} from \"@next-shared/form\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { Form } from \"../form/index.jsx\";\nimport styleText from \"./FormItem.shadow.less\";\nimport classNames from \"classnames\";\nimport type { ComponentSize, Layout } from \"../interface.js\";\nimport {\n convertToItemColName,\n calcWrapperColOffsetWithoutLabel,\n} from \"./convertToItemColName.js\";\nimport \"@next-core/theme\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\ntype CurrentElement = HTMLElement & {\n size?: ComponentSize;\n validateState?: MessageBody | string;\n [key: string]: any;\n};\n\nexport interface FormItemProps {\n formElement?: AbstractForm | null;\n curElement?: CurrentElement;\n name?: string;\n label?: string;\n current?: HTMLElement;\n required?: boolean;\n pattern?: string;\n min?: number;\n max?: number;\n labelCol?: ColProps;\n wrapperCol?: ColProps;\n message?: Record<string, string>;\n layout?: Layout;\n size?: ComponentSize;\n trigger?: string;\n valuePropsName?: string;\n notRender?: boolean;\n helpBrick?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n labelBrick?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n needValidate?: boolean;\n validator?: (value: any) => MessageBody | string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 通用输入框构件\n * @author sailor\n * @slot - 表单项内容\n * @category form-input-basic\n * @insider\n */\n@defineElement(\"eo-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.general-form-item\"],\n})\nclass FormItem extends FormItemElementBase implements FormItemProps {\n @property({\n attribute: false,\n })\n accessor formElement: Form | undefined;\n\n @property({\n attribute: false,\n })\n accessor curElement: HTMLElement | undefined;\n\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n @property() accessor label: string | undefined;\n\n @property() accessor pattern: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n @property({\n type: Number,\n })\n accessor max: number | undefined;\n\n @property({\n type: Number,\n })\n accessor min: number | undefined;\n\n /**\n * 表单项是否必填\n * @group basicFormItem\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 初始值\n */\n @property() accessor value: string | undefined;\n\n @property() accessor valuePropsName: string | undefined;\n\n @property() accessor layout: Layout | undefined;\n\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 是否自动去除前后的空白字符\n * @default true\n * @group advancedFormItem\n */\n @property({\n type: Boolean,\n })\n accessor trim = true;\n\n /**\n * 事件触发方法名\n */\n @property()\n accessor trigger!: string;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 值变化时是否主动出发校验\n */\n @property({\n type: Boolean,\n })\n accessor needValidate: boolean | undefined;\n\n render() {\n if (this.notRender) return null;\n return (\n <FormItemComponent\n formElement={this.formElement}\n curElement={this.curElement}\n label={this.label}\n name={this.name}\n required={this.required}\n pattern={this.pattern}\n min={this.min}\n max={this.max}\n message={this.message}\n size={this.size || this.formElement?.size}\n layout={this.layout || this.formElement?.layout}\n trigger={this.trigger}\n notRender={this.notRender}\n labelCol={this.labelCol}\n wrapperCol={this.wrapperCol}\n helpBrick={this.helpBrick}\n labelBrick={this.labelBrick}\n valuePropsName={this.valuePropsName}\n needValidate={this.needValidate}\n validator={this.validator}\n />\n );\n }\n}\n\nexport { FormItem };\n\nexport function FormItemComponent(props: FormItemProps) {\n const {\n name,\n label,\n required,\n pattern,\n max,\n min,\n message,\n formElement,\n curElement,\n valuePropsName = \"value\",\n size,\n trigger = \"onChange\",\n layout = \"horizontal\",\n helpBrick,\n labelBrick,\n needValidate = true,\n validator,\n } = props;\n const formInstance = formElement?.formStore;\n\n const labelCol = props.labelCol ?? formElement?.labelCol;\n const wrapperCol = props.wrapperCol ?? formElement?.wrapperCol;\n\n const finalWrapperCol = useMemo(() => {\n if (labelCol && wrapperCol && !label) {\n return calcWrapperColOffsetWithoutLabel(labelCol, wrapperCol);\n }\n\n return wrapperCol;\n }, [wrapperCol, label, labelCol]);\n\n const defaultValidateState = useRef<MessageBody>({\n message: \"\",\n type: \"normal\",\n });\n const [validateState, setValidateState] = useState<MessageBody>(\n defaultValidateState.current\n );\n\n useEffect(() => {\n if (!formInstance || !name || !curElement || curElement.$bindFormItem)\n return;\n const originTrigger = curElement[trigger];\n curElement[trigger] = (...args: any[]) =>\n formInstance.onWatch(name, args, originTrigger, {\n needValidate,\n });\n curElement.$bindFormItem = true;\n\n formInstance.subscribe(`${name}.validate`, (_, detail) => {\n setValidateState(detail);\n curElement.validateState = detail.type;\n });\n formInstance.subscribe(`${name}.init.value`, (_, v) => {\n curElement[valuePropsName] = v;\n curElement.validateState = \"\";\n setValidateState({\n message: \"\",\n type: \"normal\",\n });\n });\n formInstance.subscribe(`${name}.reset.fields`, () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.fields\", () => {\n curElement[valuePropsName] = undefined;\n });\n formInstance.subscribe(\"reset.validate\", () => {\n setValidateState(defaultValidateState.current);\n curElement.validateState = defaultValidateState.current.type;\n });\n\n formInstance.setField(name, {\n name,\n label,\n validate: {\n required,\n pattern,\n max,\n min,\n message,\n validator,\n },\n });\n\n if (layout === \"inline\") curElement.style.display = \"inline-block\";\n if (size) {\n curElement.size = formElement.size || size;\n }\n formInstance.setFieldsValueByInitData(name);\n\n return () => {\n formInstance.removeField(name);\n formInstance.unsubscribe(`${name}.validate`);\n formInstance.unsubscribe(`${name}.init.value`);\n formInstance.unsubscribe(`${name}.reset.fields`);\n formInstance.unsubscribe(\"reset.fields\");\n };\n }, [curElement, formInstance, name]);\n\n return (\n <div className={classNames(\"form-item\", layout)}>\n {label && (\n <div\n className={classNames(\n \"form-item-label-wrapper\",\n convertToItemColName(labelCol, layout)\n )}\n >\n <div className=\"form-item-label\">\n <label>\n {required && <span className=\"required\">*</span>}\n {label}\n </label>\n {labelBrick?.useBrick ? (\n <ReactUseMultipleBricks {...labelBrick}></ReactUseMultipleBricks>\n ) : null}\n </div>\n </div>\n )}\n <div\n className={classNames(\n \"form-item-wrapper\",\n convertToItemColName(finalWrapperCol, layout)\n )}\n >\n <div className=\"form-item-control\">\n <slot></slot>\n </div>\n {helpBrick?.useBrick ? (\n <ReactUseMultipleBricks {...helpBrick}></ReactUseMultipleBricks>\n ) : null}\n {formElement ? (\n <div\n className={classNames(\"message\", {\n error: validateState.type === \"error\",\n })}\n >\n {validateState?.type !== \"normal\" && validateState.message}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n","import { get } from \"lodash\";\nimport {\n GeneralOption,\n GeneralComplexOption,\n GeneralGroupOption,\n} from \"../interface.js\";\n\nexport function formatOptions(\n options: GeneralOption[] = [],\n fields?: { label?: string; value?: string }\n) {\n return options.map((op) => {\n if (typeof op === \"number\" || typeof op === \"string\") {\n return { label: op, value: op };\n }\n if (typeof op === \"boolean\") {\n return { label: String(op), value: op };\n }\n if (fields) {\n return {\n ...op,\n label: get(op, fields.label || \"label\"),\n value: get(op, fields.value || \"value\"),\n };\n }\n return { ...op, label: op.label, value: op.value };\n }) as GeneralComplexOption[];\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { CSSProperties } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type {\n RadioType,\n GeneralOption,\n GeneralComplexOption,\n UIType,\n RadioGroupButtonStyle,\n ComponentSize,\n} from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { isBoolean, isEqual } from \"lodash\";\nimport \"./host-context.css\";\n\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface CustomOptions {\n url: string;\n description?: string;\n title: string;\n backgroundColor?: string;\n value: string;\n [propName: string]: any;\n}\n\nexport interface RadioProps {\n type?: RadioType;\n options: GeneralOption[] | CustomOptions[] | undefined;\n value?: any;\n disabled?: boolean;\n buttonStyle?: RadioGroupButtonStyle;\n size?: ComponentSize;\n ui?: UIType;\n useBrick?: UseSingleBrickConf;\n customStyle?: React.CSSProperties;\n}\nexport interface RadioEvents {\n change: CustomEvent<GeneralComplexOption>;\n optionsChange: CustomEvent<{\n options: GeneralComplexOption[];\n name: string;\n }>;\n}\nexport interface RadioEventsMapping {\n onValueChange: \"change\";\n onOptionsChange: \"optionsChange\";\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用单选构件\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-radio\", {\n styleTexts: [styleText],\n alias: [\"form.general-radio\"],\n})\nclass Radio extends FormItemElementBase {\n /**\n * 下拉框字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 单选框字段说明\n */\n @property() accessor label: string | undefined;\n\n /**\n * 单选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: GeneralOption[] | undefined;\n\n /**\n * 单选框当前选中始值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 单选框样式类型\n * @default \"default\"\n */\n @property()\n accessor type: RadioType = \"default\";\n\n /**\n * UI样式\n * @default \"default\"\n */\n @property()\n accessor ui: UIType | undefined;\n\n /**\n * 大小,只对按钮样式生效\n * @default \"medium\"\n */\n @property()\n accessor size: ComponentSize | undefined;\n\n /**\n * 自定义radio的外层样式\n */\n @property({\n attribute: false,\n })\n accessor customStyle: React.CSSProperties | undefined;\n\n /**\n * 自定义radio的内容\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseSingleBrickConf | undefined;\n\n /**\n * 值变化事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<{\n label: string;\n value: any;\n [key: string]: any;\n }>;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (value: any): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n #handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n this.#optionsChange.emit({ options, name });\n };\n\n render() {\n return (\n <RadioComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n useBrick={this.useBrick}\n ui={this.ui}\n disabled={this.disabled}\n size={this.size}\n options={formatOptions(this.options)}\n type={this.type}\n value={this.value}\n required={this.required}\n message={this.message}\n onChange={this.handleChange}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleChange\"\n optionsChange={this.#handleOptionsChange}\n customStyle={this.customStyle}\n />\n );\n }\n}\n\ninterface RadioComponentProps extends RadioProps, FormItemProps {\n onChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n}\n\nexport function RadioComponent(props: RadioComponentProps) {\n const { name, disabled, type, customStyle, optionsChange, size } = props;\n const [value, setValue] = React.useState(props.value);\n const [options, setOptions] = React.useState(props.options);\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n React.useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options);\n optionsChange?.(props.options, name as string);\n }\n }, [name, options, optionsChange, props.options]);\n\n const handleChange = (\n e: React.ChangeEvent | React.MouseEvent,\n option: GeneralComplexOption\n ): void => {\n e.stopPropagation();\n setValue((option as GeneralComplexOption)?.value as any);\n props.onChange?.(option.value);\n };\n\n return (\n <WrappedFormItem {...props}>\n <div\n className={classNames(\"radio-group\", {\n dashboard: props.ui === \"dashboard\",\n })}\n >\n {options?.map((item: any) => {\n const icon = item.icon;\n const iconStyle: CSSProperties = icon?.iconStyle;\n const key = isBoolean(item.value)\n ? item.value.toString()\n : item.value;\n const isDisabled = item.disabled || disabled;\n return (\n <label\n htmlFor={key}\n style={customStyle}\n className={classNames(\"radio-item\", {\n disabled: isDisabled,\n checked: value === item.value,\n [size || \"medium\"]: type === \"button\",\n })}\n key={key}\n onClick={(e) => !isDisabled && handleChange(e, item)}\n >\n <span className=\"raido\">\n <input\n type=\"radio\"\n name={name}\n disabled={isDisabled}\n checked={value === item.value}\n onChange={(e) => !isDisabled && handleChange(e, item)}\n />\n <span\n className={classNames(\"radio-inner\", {\n checked: value === item.value,\n })}\n ></span>\n </span>\n {type === \"icon\" ? (\n <div className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...(item?.icon ?? {})}\n style={{\n fontSize: \"32px\",\n ...iconStyle,\n }}\n />\n )}\n <div>{item.label}</div>\n </div>\n ) : type === \"custom\" ? (\n <div className=\"custom-content\">\n {props.useBrick && (\n <ReactUseBrick\n useBrick={props.useBrick}\n data={item}\n ></ReactUseBrick>\n )}\n </div>\n ) : type === \"icon-circle\" || type === \"icon-square\" ? (\n <div\n className={classNames({\n \"icon-content\":\n type === \"icon-circle\" || type === \"icon-square\",\n })}\n >\n {item.icon && (\n <div\n className={classNames({\n \"circle-icon\": type === \"icon-circle\",\n \"square-icon\": type === \"icon-square\",\n })}\n >\n <WrappedGeneralIcon\n {...(item?.icon ?? {})}\n style={{\n fontSize: \"46px\",\n ...iconStyle,\n }}\n />\n </div>\n )}\n <span title={item.label}>{item.label}</span>\n </div>\n ) : type === \"button\" ? (\n <div\n className={classNames(\"button-content\", {\n disabled: isDisabled,\n })}\n >\n <span>\n {icon && (\n <WrappedGeneralIcon\n {...(item?.icon ?? {})}\n style={{\n fontSize: \"22px\",\n marginRight: \"4px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n </div>\n ) : (\n <span className=\"content\">\n {icon && (\n <WrappedGeneralIcon\n {...(item?.icon ?? {})}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n ...iconStyle,\n }}\n />\n )}\n {item.label}\n </span>\n )}\n </label>\n );\n })}\n </div>\n </WrappedFormItem>\n );\n}\nexport { Radio };\n","import * as React from \"react\";\nconst SvgEmpty = props => <svg xmlns=\"http://www.w3.org/2000/svg\" xmlnsXlink=\"http://www.w3.org/1999/xlink\" width={56} height={53} {...props}><defs><linearGradient id=\"a\" x1=\"5.718%\" x2=\"83.05%\" y1=\"4.311%\" y2=\"88.915%\"><stop offset=\"0%\" stopColor=\"#D4D8E4\" /><stop offset=\"100%\" stopColor=\"#A9B0C4\" /></linearGradient><linearGradient id=\"g\" x1=\"41.823%\" x2=\"8.813%\" y1=\"24.795%\" y2=\"86.427%\"><stop offset=\"0%\" stopColor=\"#CCD0DD\" /><stop offset=\"100%\" stopColor=\"#9DA3B9\" /></linearGradient><filter id=\"b\" width=\"233.4%\" height=\"233.4%\" x=\"-57.2%\" y=\"-47.7%\" filterUnits=\"objectBoundingBox\"><feOffset dx={1} dy={2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\" /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.22 0\" /></filter><filter id=\"e\" width=\"288.7%\" height=\"288.7%\" x=\"-94.4%\" y=\"-121.3%\" filterUnits=\"objectBoundingBox\"><feOffset dy={-2} in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation={2} /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" /></filter><path id=\"c\" d=\"M23.672 23.607h2.492a4 4 0 0 1 4 4v2.491a4 4 0 0 1-4 4h-2.492a4 4 0 0 1-4-4v-2.491a4 4 0 0 1 4-4\" /><path id=\"f\" d=\"M37.311 12.459a4 4 0 0 1 4 4v3.419l-7.418-7.419z\" /></defs><g fill=\"none\" fillRule=\"evenodd\"><path fill=\"#A6AAC3\" d=\"M39.682 33.967H10.81a2.8 2.8 0 0 0-1.94.782l-5.197 4.999v6.98a5.6 5.6 0 0 0 5.6 5.6H41.22a5.6 5.6 0 0 0 5.6-5.6v-6.98l-5.196-4.999a2.8 2.8 0 0 0-1.942-.782\" /><path fill=\"url(#a)\" d=\"m33.893 12.459 7.418 7.419v22.568a2.8 2.8 0 0 1-2.8 2.8h-26.53a2.8 2.8 0 0 1-2.8-2.8V18.459a6 6 0 0 1 6-6z\" /><use xlinkHref=\"#c\" fill=\"#000\" filter=\"url(#b)\" /><path fill=\"url(#d)\" stroke=\"#FFF\" strokeLinejoin=\"round\" d=\"M26.164 24.107c.966 0 1.841.391 2.475 1.025a3.489 3.489 0 0 1 1.025 2.475v2.491a3.49 3.49 0 0 1-1.025 2.475 3.489 3.489 0 0 1-2.475 1.025h-2.492a3.489 3.489 0 0 1-2.475-1.025 3.489 3.489 0 0 1-1.025-2.475v-2.491a3.49 3.49 0 0 1 1.025-2.475 3.489 3.489 0 0 1 2.475-1.025Z\" /><g transform=\"rotate(180 37.602 16.168)\"><use xlinkHref=\"#f\" fill=\"#000\" filter=\"url(#e)\" /><use xlinkHref=\"#f\" fill=\"url(#g)\" /></g><path fill=\"#D6D8E4\" d=\"M54.164 27.541c.253 0 .459.205.459.459v.918h.918a.459.459 0 1 1 0 .918h-.918v.918a.459.459 0 0 1-.918 0v-.918h-.918a.459.459 0 0 1 0-.918h.918V28c0-.254.205-.459.459-.459M1.377 20.197c.19 0 .344.154.344.344v.574h.574a.459.459 0 1 1 0 .918h-.574v.574a.344.344 0 0 1-.688 0l-.001-.574H.459a.459.459 0 0 1 0-.918h.573v-.574c0-.19.155-.344.345-.344\" opacity={0.3} /><path fill=\"#D6D8E4\" d=\"M24.787 43.53h.014c7.087.143 9.817-3.834 12.785-4.046l.19-.008h9.044v10.052a2.8 2.8 0 0 1-2.63 2.795l-.17.005H6.472l-.17-.005a2.8 2.8 0 0 1-2.63-2.795V39.475h8.126l.144-.004c2.485.004 5.214 3.898 12.83 4.06z\" /><path fill=\"#D6D8E4\" d=\"M13.77 2.2s2.308-.555 2.962-2.2c.943 1.35 1.429 1.933 2.547 2.189-1.522.453-2.183.963-2.704 2.401-.598-1.695-1.142-1.914-2.805-2.39\" opacity={0.5} /><path fill=\"#D6D8E4\" d=\"M41.311 6.64S47.464 5.194 49.21.917c2.514 3.508 3.81 5.025 6.791 5.691-4.059 1.18-5.822 2.503-7.21 6.243-1.594-4.406-3.045-4.976-7.479-6.213\" opacity={0.8} /></g></svg>;\nexport default SvgEmpty;","import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { GeneralComplexOption, GeneralOption } from \"../interface.js\";\nimport styleText from \"./index.shadow.css\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport type {\n Tag,\n TagProps,\n TagMapEvents,\n TagEvents,\n} from \"@next-bricks/basic/tag\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { isEmpty, groupBy, isNil, debounce } from \"lodash\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { handleHttpError, fetchByProvider } from \"@next-core/runtime\";\nimport Empty from \"./empty.svg\";\n\ninterface UseBackendConf {\n provider: string;\n args: any[] | ((...args: any[]) => any[]);\n transform?: (data: any) => void;\n}\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedTag = wrapBrick<Tag, TagProps, TagEvents, TagMapEvents>(\"eo-tag\", {\n onCheck: \"check\",\n onClose: \"close\",\n});\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst isSearchable = (value: UseBackendConf): value is UseBackendConf => {\n return typeof value?.provider === \"string\";\n};\n\nconst applyArgs = (\n args: any[] | ((query: string) => any[]),\n query: string\n): any => {\n if (Array.isArray(args)) {\n return args.map((arg) => applyArgs(arg, query));\n }\n if (typeof args === \"function\") {\n return (args as (query: string) => any[]).call(null, query);\n }\n\n return args;\n};\n\ntype RequestStatus = \"loading\" | \"success\" | \"error\";\n\nexport interface SelectProps extends FormItemProps {\n value?: any;\n options: GeneralComplexOption[];\n placeholder?: string;\n mode?: \"tags\" | \"multiple\";\n tokenSeparators?: string[];\n maxTagCount?: number;\n groupBy?: string;\n suffix?: UseSingleBrickConf;\n fields?: { label?: string; value?: string };\n useBackend?: UseBackendConf & {\n onValueChangeArgs?: any[] | ((...args: any[]) => any[]);\n // emptyConfig?: Partial<Record<RequestStatus, EasyopsEmptyProps>>;\n };\n debounceSearchDelay?: number;\n clearable?: boolean;\n disabled?: boolean;\n inputStyle?: React.CSSProperties;\n validateState?: string;\n onChange?: (value: any, options: GeneralComplexOption[]) => void;\n onValueChange?: (value: any) => void;\n optionsChange?: (options: any, name: string) => void;\n onFocus?: () => void;\n onSearch?: (value: string) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 通用下拉选择构件\n * @author sailorshe\n * @category form-input-basic\n */\n@defineElement(\"eo-select\", {\n styleTexts: [styleText],\n alias: [\"form.general-select\"],\n})\nclass Select extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options!: GeneralComplexOption[];\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 类型\n */\n @property()\n accessor mode: \"tags\" | \"multiple\" | undefined;\n\n /**\n * 自动分词的分隔符,仅在 mode=\"tags\" 时生效\n */\n @property({\n attribute: false,\n })\n accessor tokenSeparators: string[] | undefined;\n\n /**\n * 最多显示多少个 tag, 剩余的 tag 将被隐藏\n */\n @property()\n accessor maxTagCount: number | undefined;\n\n /**\n * 分组字段\n */\n @property()\n accessor groupBy: string | undefined;\n\n /**\n */\n @property({\n attribute: false,\n })\n accessor suffix: UseSingleBrickConf | undefined;\n\n /**\n * 是否支持清除\n * @default true\n */\n @property({ type: Boolean })\n accessor clearable: boolean | undefined;\n\n /**\n * 列表指定字段作为 label 和 value\n */\n @property({\n attribute: false,\n })\n accessor fields: { label?: string; value?: string } | undefined;\n\n /**\n * 后端搜索\n */\n @property({\n attribute: false,\n })\n accessor useBackend: UseBackendConf | undefined;\n\n @property({\n type: Number,\n })\n accessor debounceSearchDelay: number | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 下拉选择事件\n */\n @event({ type: \"change\" }) accessor #changeEvent!: EventEmitter<{\n value: string | string[];\n options: GeneralComplexOption[];\n }>;\n\n /**\n * 下拉框search事件\n */\n @event({ type: \"search\" }) accessor #searchEvent!: EventEmitter<{\n value: string;\n }>;\n\n /**\n * 下拉框focus事件\n */\n @event({ type: \"focus\" }) accessor #focusEvent!: EventEmitter<void>;\n\n /**\n * 选项列表变化事件\n */\n @event({ type: \"options.change\" }) accessor #optionsChange!: EventEmitter<{\n options: {\n label: string;\n value: any;\n [key: string]: any;\n };\n name: string;\n }>;\n\n handleChange = (\n value: string | string[],\n options: GeneralComplexOption[]\n ): void => {\n this.value = value;\n\n this.#changeEvent.emit({\n value,\n options,\n });\n };\n\n private _handleOptionsChange = (\n options: {\n label: string;\n value: any;\n [key: string]: any;\n },\n name: string\n ): void => {\n Promise.resolve().then(() => {\n this.#optionsChange.emit({ options, name });\n });\n };\n\n handleSearch = (value: string) => {\n this.#searchEvent.emit({\n value,\n });\n };\n\n handleFocus = () => {\n this.#focusEvent.emit();\n };\n\n render() {\n return (\n <SelectComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n disabled={this.disabled}\n placeholder={this.placeholder}\n required={this.required}\n mode={this.mode}\n tokenSeparators={this.tokenSeparators}\n maxTagCount={this.maxTagCount}\n groupBy={this.groupBy}\n suffix={this.suffix}\n fields={this.fields}\n useBackend={this.useBackend}\n debounceSearchDelay={this.debounceSearchDelay}\n clearable={this.clearable}\n trigger=\"handleChange\"\n inputStyle={this.inputStyle}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n options={this.options}\n onChange={this.handleChange}\n optionsChange={this._handleOptionsChange}\n onSearch={this.handleSearch}\n onFocus={this.handleFocus}\n />\n );\n }\n}\n\nexport function SelectComponent(props: SelectProps) {\n const {\n curElement,\n name,\n disabled,\n mode,\n tokenSeparators,\n maxTagCount,\n suffix,\n fields,\n useBackend,\n debounceSearchDelay,\n clearable = true,\n inputStyle,\n placeholder,\n validateState,\n optionsChange,\n onChange,\n onFocus,\n onValueChange,\n onSearch,\n } = props;\n\n const multiple = useMemo(\n () => mode && [\"multiple\", \"tags\"].includes(mode),\n [mode]\n );\n const selectRef = useRef<HTMLDivElement>(null);\n const inputSpanRef = useRef<HTMLSpanElement>(null);\n const shouldTriggerOnValueChangeArgs = useRef(true);\n const [inputValue, setInputValue] = useState<string>(\"\");\n const [inputWidth, setInputWidth] = useState<number>();\n const [value, setValue] = useState<any>(mode ? [] : undefined);\n const [requestStatus, setRequestStatus] = useState<RequestStatus>();\n const [options, setOptions] = useState<any[]>(\n formatOptions(props.options, fields) ?? []\n );\n const [isDropHidden, setIsDropHidden] = useState<boolean>(true);\n const [isFocused, setIsFocused] = useState<boolean>(false);\n const [selectedOptions, setSelectedOptions] = useState<\n GeneralComplexOption[]\n >([]);\n const [renderOptions, setRenderOptions] = useState<any[]>([]);\n const [focusOptionItem, setFocusOptionItem] = useState<GeneralComplexOption>(\n {} as GeneralComplexOption\n );\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setOptions(formatOptions(props.options, fields));\n }, [props.options, fields]);\n\n const handleSelectorClick = useCallback(() => {\n if (!value) {\n setIsDropHidden(false);\n setIsFocused(true);\n onFocus?.();\n inputRef.current && inputRef.current.focus();\n } else if (!disabled) {\n setIsDropHidden(!isDropHidden);\n setIsFocused(true);\n inputRef.current && inputRef.current.focus();\n }\n }, [disabled, isDropHidden, value, onFocus]);\n\n const handleChange = useCallback(\n (option: GeneralComplexOption<any>): void => {\n shouldTriggerOnValueChangeArgs.current = false;\n let newValue;\n if (multiple) {\n newValue = (value ?? []).includes(option.value)\n ? (value as string[]).filter((item) => item !== option.value)\n : (((value as any[]) ?? []).concat(option.value) as string[]);\n } else {\n newValue = option.value;\n }\n const getSelectOptions = () => {\n const hadSelected = selectedOptions.find(\n (item) => item.value === option.value\n );\n return hadSelected\n ? selectedOptions.filter((item) => item.value !== option.value)\n : selectedOptions.concat(option);\n };\n const newOptions = multiple ? getSelectOptions() : [option];\n setSelectedOptions(newOptions);\n setValue(newValue);\n onChange?.(newValue, newOptions);\n onValueChange?.(newValue);\n setIsDropHidden(!multiple);\n setFocusOptionItem(option);\n !multiple && setIsFocused(false);\n multiple && inputRef.current && inputRef.current.focus();\n setInputValue(\"\");\n },\n [multiple, onChange, onValueChange, selectedOptions, value]\n );\n\n const handleMultipleItemClose = useCallback(\n (closeValue: string | number | boolean) => {\n const newOptions = selectedOptions.filter(\n (item) => item.value !== closeValue\n );\n setSelectedOptions(newOptions);\n onChange?.(\n newOptions.map((item) => item.value),\n newOptions\n );\n },\n [onChange, selectedOptions]\n );\n\n const handleClear = (e: React.MouseEvent): void => {\n e.stopPropagation();\n setSelectedOptions([]);\n onChange?.(undefined, []);\n };\n\n const handleSearchQuery = useCallback(\n async (value = \"\", type: \"valueChange\" | \"search\") => {\n if (useBackend && isSearchable(useBackend)) {\n const {\n provider,\n args,\n onValueChangeArgs,\n transform = (data) => data,\n } = useBackend;\n try {\n setRequestStatus(\"loading\");\n const actualArgs = applyArgs(\n type === \"search\" ? args : onValueChangeArgs!,\n value\n );\n const result = await fetchByProvider(provider, actualArgs);\n if (isNil(result)) return;\n const transformedData = transform(result);\n const actualData = formatOptions(\n transformedData as unknown as GeneralOption[],\n fields as any\n );\n setRequestStatus(\"success\");\n setOptions(actualData);\n // 值设置后,需要回填\n if (type === \"valueChange\") {\n setSelectedOptions(\n actualData.filter((item) =>\n Array.isArray(props.value)\n ? props.value.includes(item.value)\n : item.value === props.value\n )\n );\n }\n } catch (e) {\n setRequestStatus(\"error\");\n handleHttpError(e);\n }\n }\n },\n [useBackend, fields, props.value]\n );\n\n const handleDebounceBackendSearch = useMemo(() => {\n return debounce(handleSearchQuery, debounceSearchDelay || 300);\n }, [debounceSearchDelay, handleSearchQuery]);\n\n const computedOptions = React.useMemo((): GeneralComplexOption[] => {\n return (mode === \"tags\" && inputValue ? [inputValue] : [])\n .map((item) => ({\n key: item,\n label: item,\n value: item,\n }))\n .concat(\n selectedOptions.filter(\n (selected) =>\n !options.find((option) => option.value === selected.value)\n ) as any\n )\n .concat(options);\n }, [inputValue, mode, options, selectedOptions]);\n\n useEffect(() => {\n setValue(props.value);\n // 设置回填option\n setSelectedOptions(\n computedOptions.filter((item) =>\n Array.isArray(props.value)\n ? props.value.includes(item.value)\n : item.value === props.value\n )\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n useEffect(() => {\n optionsChange?.(computedOptions, name as string);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [computedOptions]);\n\n useEffect(() => {\n props?.useBackend?.onValueChangeArgs &&\n shouldTriggerOnValueChangeArgs.current &&\n !(Array.isArray(props.value)\n ? props.value.length === 0\n : isNil(props.value)) &&\n handleSearchQuery(props.value, \"valueChange\");\n shouldTriggerOnValueChangeArgs.current = true;\n }, [handleSearchQuery, props?.useBackend?.onValueChangeArgs, props.value]);\n\n const handleInputChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n const value = e.target.value;\n if (mode === \"tags\" && value) {\n const matchToken = tokenSeparators?.includes(value[value.length - 1]);\n const customValue =\n value && matchToken ? value.substring(0, value.length - 1) : value;\n if (matchToken) {\n handleChange({\n key: customValue,\n label: customValue,\n value: customValue,\n });\n } else {\n setInputValue(value);\n }\n } else {\n setInputValue(value);\n setIsDropHidden(false);\n onSearch?.(value);\n }\n handleDebounceBackendSearch(value, \"search\");\n },\n [handleChange, handleDebounceBackendSearch, mode, onSearch, tokenSeparators]\n );\n\n const handleKeydown = useCallback(\n (e: KeyboardEvent): void => {\n if (isFocused) {\n if (e.code === \"Enter\") {\n focusOptionItem && handleChange(focusOptionItem);\n }\n if (\n e.code === \"Backspace\" &&\n multiple &&\n inputValue === \"\" &&\n selectedOptions?.length\n ) {\n selectedOptions.pop();\n setSelectedOptions([...selectedOptions]);\n value.pop();\n setValue([...value]);\n }\n }\n if (!isDropHidden && focusOptionItem) {\n if (e.code === \"ArrowDown\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(\n renderOptions[\n index + 1 > renderOptions.length - 1\n ? renderOptions.length - 1\n : index + 1\n ]\n );\n }\n if (e.code === \"ArrowUp\") {\n const index = renderOptions.findIndex(\n (item) => item.value === focusOptionItem.value\n );\n setFocusOptionItem(renderOptions[index - 1 < 0 ? 0 : index - 1]);\n }\n }\n },\n [\n isFocused,\n multiple,\n inputValue,\n selectedOptions,\n isDropHidden,\n focusOptionItem,\n handleChange,\n value,\n renderOptions,\n ]\n );\n\n const isEmptyValue = useMemo(() => {\n return typeof selectedOptions === \"object\"\n ? isEmpty(selectedOptions)\n : selectedOptions === undefined;\n }, [selectedOptions]);\n\n useLayoutEffect(() => {\n const renderOptions = computedOptions.filter((item) =>\n inputValue\n ? (item.label as string)\n .toLocaleUpperCase()\n .includes(inputValue.toLocaleUpperCase())\n : true\n );\n setRenderOptions(renderOptions);\n setFocusOptionItem(renderOptions?.[0]);\n\n if (inputSpanRef.current) {\n setInputWidth(\n inputSpanRef.current?.offsetWidth === 0\n ? 4\n : inputSpanRef.current?.offsetWidth\n );\n }\n }, [computedOptions, handleChange, inputValue, mode, tokenSeparators]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n e.stopPropagation();\n const path = e.composedPath();\n if (curElement && path.includes(curElement)) return;\n setIsFocused(false);\n setIsDropHidden(true);\n setInputValue(\"\");\n };\n document.addEventListener(\"keydown\", handleKeydown);\n document.addEventListener(\"click\", handleDocumentClick);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, [curElement, handleKeydown]);\n\n const renderSelector = useMemo(() => {\n let tagList: GeneralComplexOption[] = selectedOptions;\n if (maxTagCount) {\n const ellipsisInfo =\n selectedOptions.length - maxTagCount > 0\n ? {\n label: `+${selectedOptions.length - maxTagCount}`,\n key: \"$$key\",\n value: \"\",\n closable: false,\n }\n : null;\n tagList = selectedOptions.slice(0, maxTagCount);\n ellipsisInfo && tagList.push(ellipsisInfo);\n }\n const allOptions = computedOptions.reduce(\n (pre: any, cur: any) =>\n cur.options ? [...pre, ...cur.options] : [...pre, cur],\n []\n );\n\n const renderLabel = (option: GeneralComplexOption): React.ReactNode => {\n return (\n <div className=\"label\">\n <span className=\"text\">\n {multiple ? (\n <WrappedTag\n key={option.value as number}\n color={disabled ? \"#ddd\" : undefined}\n closable={option.closable ?? true}\n checkable={false}\n onClose={() => handleMultipleItemClose(option.value)}\n >\n {option.label}\n {multiple && suffix && (\n <ReactUseBrick useBrick={suffix} data={option} />\n )}\n </WrappedTag>\n ) : (\n option.label\n )}\n </span>\n {!multiple && suffix && (\n <ReactUseBrick useBrick={suffix} data={option} />\n )}\n </div>\n );\n };\n\n const renderMultipleLabel = (\n list: Array<GeneralComplexOption>\n ): React.ReactNode => {\n return list.map((item) => {\n let option: GeneralComplexOption;\n if (typeof item === \"object\") {\n option = item;\n } else {\n option =\n allOptions.find((option: any) => option.value === item) ??\n ({} as GeneralComplexOption);\n option.closeable = !disabled && option.closeable;\n }\n return renderLabel(option);\n });\n };\n\n return (\n <div\n className={classNames({\n \"selected-item\": multiple,\n \"select-single-item\": !multiple,\n })}\n style={\n isEmptyValue ? { color: \"var(--antd-input-placeholder-color)\" } : {}\n }\n >\n {selectedOptions?.length\n ? multiple\n ? renderMultipleLabel(tagList)\n : renderLabel(selectedOptions[0])\n : isFocused || inputValue\n ? \"\"\n : placeholder}\n </div>\n );\n }, [\n computedOptions,\n disabled,\n handleMultipleItemClose,\n inputValue,\n isEmptyValue,\n isFocused,\n maxTagCount,\n multiple,\n placeholder,\n selectedOptions,\n suffix,\n ]);\n\n const Options = useMemo(() => {\n const getSelectOption = (item: any): React.ReactNode => (\n <div\n key={item.value?.toString()}\n className={classNames(\"select-item\", \"select-item-option\", {\n disabled: item.disabled,\n \"select-option-hover\": item.value === focusOptionItem.value,\n \"select-option-selected\":\n typeof value !== \"object\"\n ? value === item?.value\n : (value as any[])?.includes(item.value),\n })}\n onClick={() => !item.disabled && handleChange(item)}\n onMouseOver={() => setFocusOptionItem(item)}\n onMouseLeave={() => setFocusOptionItem({} as any)}\n >\n <div className=\"select-item-option-content\">\n <div className=\"option\">\n <span className=\"label\">{item.label}</span>\n {suffix && <ReactUseBrick useBrick={suffix} data={item} />}\n </div>\n {multiple && (\n <div className=\"is-checked\">\n <WrappedIcon\n {...{\n lib: \"antd\",\n icon: \"check\",\n theme: \"outlined\",\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n\n const renderGroupOption = (): React.ReactNode => {\n const optsGroup = Object.entries(groupBy(renderOptions, props.groupBy));\n\n return optsGroup.map(([group, options], index) =>\n group !== \"undefined\" ? (\n <div key={index} className=\"select-group-wrapper\">\n <div className=\"select-group-label\">{group}</div>\n {options.map((item) => getSelectOption(item))}\n </div>\n ) : (\n options.map((item) => getSelectOption(item))\n )\n );\n };\n\n const renderOption = () =>\n renderOptions.map((item: any) => {\n return getSelectOption(item);\n });\n\n return renderOptions.length > 0 ? (\n props.groupBy ? (\n renderGroupOption()\n ) : (\n renderOption()\n )\n ) : (\n <div className=\"empty-tips\">\n <Empty />\n <span>暂无数据</span>\n </div>\n );\n }, [\n renderOptions,\n props.groupBy,\n focusOptionItem,\n value,\n suffix,\n multiple,\n handleChange,\n ]);\n\n return (\n <WrappedFormItem {...(props as FormItemProps)}>\n <div\n className={classNames(\"select\", {\n \"select-disabled\": disabled,\n \"select-allow-clear\": clearable,\n \"select-single\": !multiple,\n \"select-multiple\": multiple,\n })}\n style={inputStyle}\n ref={selectRef}\n >\n <div\n className={classNames(\"select-selector\", {\n \"selector-focused\": isFocused,\n \"is-error\": validateState === \"error\",\n })}\n onClick={handleSelectorClick}\n >\n <div className=\"select-selection-overflow\">\n {multiple && renderSelector}\n <div className=\"input-item\">\n <div className=\"select-selection-search\">\n <span\n style={{ position: \"absolute\", opacity: \"0\" }}\n ref={inputSpanRef}\n >\n {inputValue}\n </span>\n <input\n style={{ width: inputWidth }}\n type=\"text\"\n value={inputValue}\n ref={inputRef}\n className=\"select-selection-search-input\"\n onChange={handleInputChange}\n />\n </div>\n {!multiple ? !inputValue && renderSelector : null}\n </div>\n </div>\n <span className=\"select-arrow\">\n {!isEmptyValue && clearable ? (\n <WrappedIcon\n className=\"close-btn\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onClick={(e) => handleClear(e)}\n />\n ) : (\n <span\n className={classNames(\n \"anticon\",\n \"anticon-down \",\n \"ant-select-suffix\",\n {\n focus: isFocused,\n }\n )}\n >\n <WrappedIcon icon=\"down\" lib=\"antd\" theme=\"outlined\" />\n </span>\n )}\n </span>\n </div>\n <div\n style={{ ...(isDropHidden ? { display: \"none\" } : {}) }}\n className=\"select-dropdown\"\n >\n <div className=\"dropdown-list\">\n {requestStatus === \"loading\" ? (\n <div className=\"dropdown-list-loading-container\">\n <WrappedIcon\n {...{\n icon: \"loading\",\n lib: \"antd\",\n theme: \"outlined\",\n spinning: true,\n }}\n />\n </div>\n ) : (\n <div className=\"dropdown-inner\">{Options}</div>\n )}\n </div>\n </div>\n </div>\n </WrappedFormItem>\n );\n}\n\nexport { Select };\n","import React from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport styleText from \"./index.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { ButtonType } from \"../interface.js\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\ninterface SubmitButtonsProps extends FormItemProps {\n curElement: HTMLElement;\n submitText?: string;\n submitType?: ButtonType;\n submitDisabled?: boolean;\n cancelText?: string;\n cancelType?: ButtonType;\n onSubmitClick?: (event: React.MouseEvent) => void;\n onCancelClick?: (event: React.MouseEvent) => void;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 表单提交按钮\n * @author zhendonghuang\n * @category form-input-basic\n */\n@defineElement(\"eo-submit-buttons\", {\n styleTexts: [styleText],\n alias: [\"form.submit-buttons\"],\n})\nclass SubmitButtons extends FormItemElementBase {\n /**\n * 提交按钮的文字\n * @default \"提交\"\n */\n @property() accessor submitText: string = \"提交\";\n\n /**\n * 取消按钮的文字,不设置则不显示取消按钮\n */\n @property()\n accessor cancelText: string | undefined;\n\n /**\n * 点击确定按钮后自动禁用\n */\n @property({ type: Boolean })\n accessor disableAfterClick: boolean | undefined;\n\n /**\n * 禁用提交按钮\n */\n @property({ type: Boolean }) accessor submitDisabled: boolean | undefined;\n\n /**\n * 提交按钮类型\n */\n @property() accessor submitType: ButtonType | undefined;\n\n /**\n * 取消按钮类型\n */\n @property() accessor cancelType: ButtonType | undefined;\n\n /**\n * 点击提交按钮触发的事件\n */\n @event({ type: \"submit\" }) accessor #submitEvent!: EventEmitter<void>;\n\n /**\n * 点击取消按钮触发的事件\n */\n @event({ type: \"cancel\" }) accessor #cancelEvent!: EventEmitter<void>;\n\n private _handleSubmitClick = (): void => {\n Promise.resolve().then(() => {\n this.#submitEvent.emit();\n if (this.getFormElement()) {\n (this.getFormElement() as any).validate();\n }\n if (this.disableAfterClick) {\n this.submitDisabled = true;\n }\n });\n };\n\n private _handleCancelClick = (): void => {\n Promise.resolve().then(() => {\n this.#cancelEvent.emit();\n });\n };\n\n render() {\n return (\n <ButtonsComponent\n formElement={this.getFormElement()}\n curElement={this}\n submitDisabled={this.submitDisabled}\n submitText={this.submitText}\n submitType={this.submitType}\n cancelText={this.cancelText}\n cancelType={this.cancelType}\n onCancelClick={this._handleCancelClick}\n onSubmitClick={this._handleSubmitClick}\n />\n );\n }\n}\n\nexport function ButtonsComponent(props: SubmitButtonsProps) {\n return (\n <WrappedFormItem {...props}>\n {props.submitText && (\n <WrappedButton\n className={\"submitBtn\"}\n type={props.submitType || \"primary\"}\n onClick={props.onSubmitClick}\n disabled={props.submitDisabled}\n >\n {props.submitText}\n </WrappedButton>\n )}\n {props.cancelText && (\n <WrappedButton\n data-test-id=\"cancelBtn\"\n type={props.cancelType || \"text\"}\n onClick={props.onCancelClick}\n >\n {props.cancelText}\n </WrappedButton>\n )}\n </WrappedFormItem>\n );\n}\nexport { SubmitButtons };\n","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretRightOutlined = function CaretRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretRightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CaretRightOutlined.displayName = 'CaretRightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CaretRightOutlined);","import React, { useEffect, useState, useMemo } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport \"@next-core/theme\";\nimport styleText from \"./checkbox.shadow.css\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { intersection, isEqual, uniq } from \"lodash\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { CaretRightOutlined } from \"@ant-design/icons\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport type CheckboxType = \"default\" | \"icon\";\n\nexport declare type CheckboxValueType = string | number | boolean;\n\nexport interface CheckboxOptionType {\n label: React.ReactNode;\n value: any;\n style?: React.CSSProperties;\n disabled?: boolean;\n checkboxColor?: string;\n [propName: string]: any;\n}\n\nexport interface MenuIcon {\n [propName: string]: any;\n}\n\nexport interface OptionGroup {\n name: string;\n key: string;\n options: CheckboxOptionType[];\n}\n\nexport interface CheckboxProps extends FormItemProps {\n options?: CheckboxOptionType[];\n label?: string;\n value?: CheckboxValueType[];\n disabled?: boolean;\n type?: CheckboxType;\n isCustom?: boolean;\n isGroup?: boolean;\n optionGroups?: OptionGroup[];\n onChange?: (value: CheckboxValueType[]) => void;\n optionsChange?: (options: CheckboxOptionType[], name: string) => void;\n}\n\n/**\n * 表单复选框构件\n * @author derrickma\n * @category form-input-basic\n */\n@defineElement(\"eo-checkbox\", {\n styleTexts: [styleText],\n alias: [\"form.general-checkbox\"],\n})\nclass Checkbox extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n /**\n * 值\n */\n @property({ attribute: false })\n accessor value: CheckboxValueType[] | undefined;\n\n /**\n * 多选框选项表\n * @required\n */\n @property({ attribute: false })\n accessor options: CheckboxOptionType[] = [];\n\n /**\n * 类型\n * @default \"default\"\n */\n @property()\n accessor type: CheckboxType = \"default\";\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否为自定义\n * @default false\n */\n @property({ type: Boolean })\n accessor isCustom: boolean = false;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否为复选框,为true时,则可设置分组数据 optionGroups\n */\n @property({\n type: Boolean,\n })\n accessor isGroup: boolean | undefined;\n\n /**\n * 多选框选项分组数据,需要设置 isGroup 为 true 才生效\n */\n @property({\n attribute: false,\n })\n accessor optionGroups: OptionGroup[] | undefined;\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"change\" })\n accessor #checkboxChangeEvent!: EventEmitter<CheckboxOptionType[]>;\n\n handleCheckboxChange = (detail: CheckboxValueType[]) => {\n this.value = detail;\n const currentOptions = this.optionGroups\n ? this.optionGroups.reduce(\n (before: CheckboxOptionType[], after) => [\n ...before,\n ...after.options,\n ],\n []\n )\n : this.options;\n const currentSelectOption = formatOptions(currentOptions).filter((item) =>\n typeof item.value === \"object\" ? true : detail.includes(item.value)\n );\n this.#checkboxChangeEvent.emit(currentSelectOption);\n };\n\n /**\n * 复选框变化事件\n */\n @event({ type: \"options.change\" })\n accessor #optionsChangeEvent!: EventEmitter<{\n options: CheckboxOptionType[];\n name: string;\n }>;\n\n #handleOptionsChange = (options: CheckboxOptionType[], name: string) => {\n this.#optionsChangeEvent.emit({\n options,\n name,\n });\n };\n\n render() {\n return (\n <CheckboxComponent\n curElement={this}\n formElement={this.getFormElement()}\n options={formatOptions(this.options)}\n label={this.label}\n name={this.name}\n value={this.value}\n type={this.type}\n disabled={this.disabled}\n isCustom={this.isCustom}\n required={this.required}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleCheckboxChange\"\n onChange={this.handleCheckboxChange}\n optionsChange={this.#handleOptionsChange}\n isGroup={this.isGroup}\n optionGroups={this.optionGroups}\n />\n );\n }\n}\n\nfunction CheckboxComponent(props: CheckboxProps) {\n const { isGroup } = props;\n const [values, setValues] = useState<CheckboxValueType[]>(props?.value ?? []);\n const [options, setOptions] = useState<CheckboxOptionType[]>(\n props.options || []\n );\n const [collapseKeys, setCollapseKeys] = useState<string[]>(\n (props.optionGroups || []).map((o) => o.key)\n );\n const [optionGroups, setOptionGroups] = useState(props.optionGroups);\n useEffect(() => {\n if (!isEqual(optionGroups, props.optionGroups)) {\n setCollapseKeys((optionGroups || []).map((o) => o.key));\n setOptionGroups(props.optionGroups);\n }\n }, [props.optionGroups]);\n\n useEffect(() => {\n if (!isEqual(options, props.options)) {\n setOptions(props.options || []);\n props.optionsChange?.(props.options ?? [], props.name as string);\n }\n }, [options, props, props.options]);\n\n useEffect(() => {\n setValues(props?.value || []);\n }, [props.value]);\n\n const handleInputClick = (\n e: React.ChangeEvent<HTMLInputElement>,\n item: CheckboxOptionType\n ) => {\n e.stopPropagation();\n let newValue: CheckboxValueType[] = [];\n if (e.target.checked) {\n newValue = [...values, item.value];\n }\n if (!e.target.checked && values?.includes(item.value)) {\n newValue = [...values];\n const index = newValue.findIndex((i) => i == item.value);\n newValue.splice(index, 1);\n }\n setValues(newValue);\n props.onChange?.(newValue);\n };\n\n const getIcon = (item: CheckboxOptionType) => {\n let iconNode = null;\n const { icon } = item;\n if (icon) {\n if (\"imgSrc\" in icon) {\n const mergedIcon: any = {\n ...icon,\n imgSrc: icon.imgSrc,\n imgStyle: {\n marginRight: \"8px\",\n verticalAlign: \"-0.42em\",\n ...icon.imgStyle,\n },\n };\n iconNode = icon && (\n <WrappedIcon {...(mergedIcon as GeneralIconProps)} />\n );\n } else {\n iconNode = icon && (\n <WrappedIcon\n {...(icon as GeneralIconProps)}\n style={{\n fontSize: \"22px\",\n marginRight: \"8px\",\n verticalAlign: \"-0.25em\",\n }}\n />\n );\n }\n }\n return iconNode;\n };\n\n const IconCheckbox = (props: CheckboxProps) => {\n const { name, disabled = false, isCustom = false } = props;\n return (\n <>\n {options.map((item: any) => (\n <label\n key={item.value}\n className={\n disabled || item?.disabled\n ? classNames({\n disabledIconCheckbox: true,\n disabledIconCustomCheckbox: isCustom,\n })\n : classNames({\n iconCheckbox: true,\n iconCustomCheckbox: isCustom,\n })\n }\n >\n <div className={classNames({ inputBox: true })}>\n <input\n type=\"checkbox\"\n value={item.value}\n name={name}\n defaultChecked={values?.includes(item.value)}\n disabled={disabled || item?.disabled}\n onChange={(e) => handleInputClick(e, item)}\n />\n </div>\n <div className={classNames({ content: true })}>\n {item.icon && (\n <WrappedIcon\n {...(item.icon as GeneralIconProps)}\n style={{\n fontSize: isCustom ? \"52px\" : \"32px\",\n }}\n ></WrappedIcon>\n )}\n <div className={classNames({ text: true })}>\n {item.label || item.value}\n </div>\n </div>\n </label>\n ))}\n </>\n );\n };\n\n const CheckboxItem = (props: CheckboxProps) => {\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n minHeight: \"30px\",\n }}\n >\n <div className=\"checkboxWrapper\" part=\"checkbox-wrapper\">\n {props.options?.map((item: CheckboxOptionType) => {\n const disabled = item.disabled || props.disabled;\n return (\n <label\n key={item.value}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelDisabled: disabled,\n checkboxLabelCheck: values.includes(item.value),\n })}\n part=\"checkbox-option\"\n >\n <span\n style={{ color: item.checkboxColor }}\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputWrapperDisabled: disabled,\n checkboxInputCheck: values.includes(item.value),\n })}\n >\n <input\n onChange={(e) => !disabled && handleInputClick(e, item)}\n disabled={disabled}\n defaultChecked={values?.includes(item.value)}\n className={classNames({\n checkboxInput: true,\n checkboxInputDisabled: disabled,\n })}\n type=\"checkbox\"\n id={item.value}\n ></input>\n <span\n className={classNames({ checkboxInner: true })}\n style={\n values.includes(item.value) && item.checkboxColor\n ? {\n background: item.checkboxColor,\n borderColor: item.checkboxColor,\n }\n : {}\n }\n ></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n <slot>\n {getIcon(item)}\n {item.label}\n </slot>\n </span>\n </label>\n );\n })}\n </div>\n </div>\n );\n };\n const CheckGroupItem = (props: CheckboxProps) => {\n const _optionGroups = useMemo(() => {\n return optionGroups?.map((option) => {\n const newOptions = formatOptions(option.options);\n const newOptionsKeys = newOptions.map((n) => n.value);\n const checkOptions = intersection(values, newOptionsKeys);\n const checkType =\n checkOptions.length === newOptionsKeys.length\n ? \"all\"\n : checkOptions.length > 0 &&\n checkOptions.length !== newOptionsKeys.length\n ? \"part\"\n : \"none\";\n return {\n ...option,\n options: newOptions,\n checkType,\n keys: newOptionsKeys,\n };\n });\n }, [optionGroups, props.value]);\n return (\n <div className=\"collapse-wrapper\">\n {\" \"}\n {_optionGroups?.map((i) => (\n <div key={i.key}>\n <div\n onClick={() => {\n if (collapseKeys.includes(i.key)) {\n const newKeys = collapseKeys.filter((key) => key !== i.key);\n setCollapseKeys(newKeys);\n } else {\n setCollapseKeys([...collapseKeys, i.key]);\n }\n }}\n className={classNames(\"collapse-header\")}\n >\n <span className=\"collapse-icon\">\n <CaretRightOutlined\n rotate={collapseKeys.includes(i.key) ? 90 : 0}\n rev=\"\"\n />\n </span>\n <label\n onClick={(e) => {\n e.stopPropagation();\n }}\n className={classNames({\n checkboxLabel: true,\n checkboxLabelCheck: i.checkType === \"all\",\n })}\n >\n <span\n className={classNames({\n checkboxInputWrapper: true,\n checkboxInputCheck: i.checkType === \"all\",\n checkboxInputPartCheck: i.checkType === \"part\",\n })}\n >\n <input\n className={classNames({\n checkboxInput: true,\n })}\n onChange={(e) => {\n e.stopPropagation();\n if (i.checkType === \"all\") {\n const newValue = values.filter(\n (v) => !i.keys.includes(v)\n );\n props.onChange?.(newValue);\n } else {\n props.onChange?.(uniq([...values, ...i.keys]));\n }\n }}\n type=\"checkbox\"\n ></input>\n <span className={classNames({ checkboxInner: true })}></span>\n </span>\n\n <span className={classNames({ checkboxText: true })}>\n {i.name}\n </span>\n </label>\n </div>\n <div\n className={classNames(\"collapse-content\", {\n \"collapse-content-visible\": collapseKeys.includes(i.key),\n })}\n >\n <CheckboxItem\n {...{ ...props, options: i.options }}\n ></CheckboxItem>\n </div>\n </div>\n ))}\n </div>\n );\n };\n return (\n <WrappedFormItem {...(props as FormItemProps)}>\n {props.type == \"icon\" ? (\n <IconCheckbox {...props}></IconCheckbox>\n ) : isGroup && props.optionGroups ? (\n <CheckGroupItem {...props}></CheckGroupItem>\n ) : (\n <CheckboxItem {...{ ...props, options: options }}></CheckboxItem>\n )}\n </WrappedFormItem>\n );\n}\n\nexport { Checkbox };\n","export enum K {\n UNIQUE = \"UNIQUE\",\n}\n\nconst en: Locale = {\n UNIQUE: \"{{ name }} can not repeat!\",\n};\n\nconst zh: Locale = {\n UNIQUE: \"{{ name }} 不能重复!\",\n};\n\nexport const NS = \"bricks/form/dynamic-form-item\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Form,\n FormEvents,\n FormMapEvents,\n FormProps,\n} from \"../form/index.js\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport { UseBrickConf, UseSingleBrickConf } from \"@next-core/types\";\nimport styleText from \"./dynamic-form-item.shadow.css\";\nimport \"@next-core/theme\";\nimport { isEqual, flatten, omit, isEmpty } from \"lodash\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst WrappedForm = wrapBrick<Form, FormProps, FormEvents, FormMapEvents>(\n \"eo-form\",\n {\n onValuesChange: \"values.change\",\n onValidateSuccess: \"validate.success\",\n onValidateError: \"validate.error\",\n }\n);\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport function uniqueValidatorFN(\n props: DynamicFormItemProps,\n properties: any,\n t: any\n) {\n return () => {\n const fieldValue = props?.curElement?.value?.map(\n (v: any) => v[properties.name as string]\n );\n if (new Set(fieldValue).size !== fieldValue.length) {\n return (\n (properties.message as any)?.unique ??\n t(K.UNIQUE, { name: properties.label ?? properties.name })\n );\n }\n return \"\";\n };\n}\n\ntype DynamicFormValuesItem = Record<string, any>;\n\ninterface DynamicFormItemProps extends FormItemProps {\n form?: Form;\n useBrick?: UseBrickConf;\n value?: DynamicFormValuesItem[];\n validateState?: string;\n needValidate?: boolean;\n onChange?: (value: DynamicFormValuesItem[]) => void;\n onValuesChange?: (values: DynamicFormValuesItem[]) => void;\n onAdd?: (value: rowDataType) => void;\n onRemove?: (value: rowDataType) => void;\n hideRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n disabledRemoveButton?:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean);\n hideAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n disabledAddButton?: boolean | ((value: Record<string, any>[]) => boolean);\n}\ntype rowDataType = {\n detail: Record<string, any>;\n index: number;\n};\n\nexport const getRealValue = (\n property: boolean | ((...args: any[]) => boolean),\n args: any[]\n): boolean => {\n if (typeof property === \"function\") {\n return property(...args);\n }\n return property;\n};\n/**\n * 动态表单\n * @author sailor\n * @category form-input-basic\n */\n@defineElement(\"eo-dynamic-form-item\", {\n styleTexts: [styleText],\n alias: [\"form.dynamic-form-item\"],\n})\nclass DynamicFormItem extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: DynamicFormValuesItem[] | undefined;\n\n /**\n * 校验文本\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否隐藏每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否禁止每一行删除的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledRemoveButton:\n | boolean\n | ((row: Record<string, any>, index: number) => boolean)\n | undefined;\n\n /**\n * 是否隐藏添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor hideAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 是否禁止添加的按钮\n */\n @property({\n attribute: false,\n })\n accessor disabledAddButton:\n | boolean\n | ((value: Record<string, any>[]) => boolean)\n | undefined;\n\n /**\n * 动态表单子项构件列表\n */\n @property({\n attribute: false,\n })\n accessor useBrick: UseBrickConf | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<DynamicFormValuesItem[]>;\n\n /**\n * 增加一行时触发,detail为该行的默认值,index为该行的位置\n */\n @event({ type: \"row.add\" })\n accessor #addEvent!: EventEmitter<rowDataType>;\n\n /**\n * 移除一行时触发,detail为该行的值,index为该行的位置\n */\n @event({ type: \"row.remove\" })\n accessor #removeEvent!: EventEmitter<rowDataType>;\n\n #handleAdd = (value: rowDataType): void => {\n this.#addEvent.emit(value);\n };\n\n #handleRemove = (value: rowDataType): void => {\n this.#removeEvent.emit(value);\n };\n\n handleDynamicFormChange = (values: DynamicFormValuesItem[]) => {\n this.value = values;\n this.#changeEvent.emit(values);\n this.getFormElement()?.resetValidateState();\n };\n\n render() {\n return (\n <DynamicFormItemComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n required={this.required}\n useBrick={this.useBrick}\n value={this.value}\n validateState={this.validateState}\n needValidate={false}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleDynamicFormChange\"\n onChange={this.handleDynamicFormChange}\n onValuesChange={this.handleDynamicFormChange}\n message={this.message}\n onAdd={this.#handleAdd}\n onRemove={this.#handleRemove}\n hideAddButton={this.hideAddButton}\n hideRemoveButton={this.hideRemoveButton}\n disabledAddButton={this.disabledAddButton}\n disabledRemoveButton={this.disabledRemoveButton}\n />\n );\n }\n}\n\nexport function DynamicFormItemComponent(props: DynamicFormItemProps) {\n const { t } = useTranslation(NS);\n const {\n value,\n hideAddButton = false,\n hideRemoveButton = false,\n disabledRemoveButton = false,\n disabledAddButton = false,\n } = props;\n const formWrapperRef = useRef<HTMLDivElement>(null);\n const [values, setValues] = useState<DynamicFormValuesItem[]>(value ?? []);\n\n const [bricks, setBricks] = useState<UseSingleBrickConf[]>([]);\n\n const bricksOfNoLabel = useMemo(\n () => bricks.map((brick: any) => omit(brick, \"properties.label\")),\n [bricks]\n );\n\n const handleAddItem = () => {\n props.onAdd?.({ detail: {}, index: values.length });\n setValues(values.concat({}));\n };\n\n useEffect(() => {\n if (!isEqual(value, values)) {\n setValues(value ?? []);\n }\n }, [value]);\n\n useEffect(() => {\n if (props.useBrick) {\n const parsedUseBrick: UseSingleBrickConf[] = flatten(\n new Array(props.useBrick)\n );\n\n setBricks(\n parsedUseBrick.map((brick) => {\n const { properties = {} } = brick;\n if (properties.unique) {\n let parsedValidator: any = [\n uniqueValidatorFN(props, properties, t),\n ];\n if (properties.validator) {\n parsedValidator = [\n ...flatten(new Array(properties.validator)),\n ...parsedValidator,\n ];\n }\n return {\n ...brick,\n properties: {\n ...brick.properties,\n validator: parsedValidator,\n },\n };\n } else {\n return brick;\n }\n })\n );\n }\n }, [props.useBrick, props.curElement]);\n // istanbul ignore next;\n const validate = () => {\n const formWrapper = formWrapperRef.current;\n const forms = formWrapper?.querySelectorAll(\n \".dynamic-form\"\n ) as unknown as Form[];\n const result: Array<boolean | Record<string, unknown>> = [];\n if (forms.length) {\n forms.forEach((item) => {\n result.push(item.validate());\n });\n }\n return result.every(Boolean) ? \"\" : \"动态表单校验失败\";\n };\n\n // istanbul ignore next;\n const handleValuesChange = useCallback(\n (value: CustomEvent<DynamicFormValuesItem>, index: number) => {\n props.onChange?.(\n values.map((item, i) => {\n if (i === index) {\n return value.detail.allValues;\n }\n return item;\n })\n );\n },\n [props, values]\n );\n\n const handleRemoveItem = useCallback(\n (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n setValues(newValues);\n props.onChange?.(newValues);\n props.onRemove?.({\n detail: values.find((_, i) => i === index) as Record<string, any>,\n index,\n });\n },\n [props, values]\n );\n const addButtonDisabled = useMemo(\n () => getRealValue(disabledAddButton, [values]),\n [disabledAddButton, values]\n );\n const addButtonHide = useMemo(\n () => getRealValue(hideAddButton, [values]),\n [hideAddButton, values]\n );\n\n return (\n <WrappedFormItem {...(props as FormItemProps)} validator={validate}>\n <div className=\"dynamic-form-wrapper\" ref={formWrapperRef}>\n {values.map((value, index) => {\n const hideRemoveBtn = getRealValue(hideRemoveButton, [value, index]);\n const removeBtnDisabled = getRealValue(disabledRemoveButton, [\n value,\n index,\n ]);\n return (\n <div className=\"dynamic-form-item\" key={index}>\n {!isEmpty(bricks) && (\n <WrappedForm\n layout=\"vertical\"\n formStyle={{\n flexDirection: \"row\",\n alignItems: \"flex-start\",\n }}\n className=\"dynamic-form\"\n values={value}\n defaultEmitValuesChange={false}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onValuesChange={(value) => handleValuesChange(value, index)}\n >\n <ReactUseMultipleBricks\n useBrick={\n (index === 0\n ? bricks\n : bricksOfNoLabel) as UseSingleBrickConf[]\n }\n data={value}\n />\n {!hideRemoveBtn && (\n <div\n className={classNames(\"remove-btn-wrapper\", {\n \"remove-btn-disabled-wrapper\": removeBtnDisabled,\n })}\n >\n <WrappedIcon\n lib=\"easyops\"\n category=\"assets-inventory\"\n icon=\"out\"\n className={classNames(\"remove-btn\", {\n \"remove-btn-disabled\": removeBtnDisabled,\n })}\n onClick={() => handleRemoveItem(index)}\n />\n </div>\n )}\n </WrappedForm>\n )}\n </div>\n );\n })}\n <div\n className={classNames({\n \"add-btn-wrapper-disabled\": addButtonDisabled,\n })}\n >\n <WrappedButton\n className={classNames(\"add-btn\", {\n \"add-btn-hide\": addButtonHide,\n \"add-btn-disabled\": addButtonDisabled,\n })}\n icon={{\n category: \"assets-inventory\",\n icon: \"xin\",\n lib: \"easyops\",\n }}\n type=\"dashed\"\n buttonStyle={{\n width: \"100%\",\n color: addButtonDisabled ? \"var(--text-color-disabled)\" : \"\",\n }}\n onClick={handleAddItem}\n >\n 添加\n </WrappedButton>\n </div>\n </div>\n <slot name=\"helpSlot\"></slot>\n </WrappedFormItem>\n );\n}\n\nexport { DynamicFormItem };\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { debounce } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface SearchProps {\n value?: string;\n placeholder?: string;\n autoFocus?: boolean;\n clearable?: boolean;\n trim?: boolean;\n debounceTime?: number;\n}\n\nexport interface SearchEvents {\n change: CustomEvent<string>;\n search: CustomEvent<string>;\n}\n\nexport interface SearchEventsMap {\n onChange: \"change\";\n onSearch: \"search\";\n}\n\n/**\n * 搜索框\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-search\", {\n styleTexts: [styleText],\n alias: [\"form.general-search\"],\n})\nclass GeneralSearch extends ReactNextElement implements SearchProps {\n /**\n * 搜索框的值\n */\n @property()\n accessor value: string = \"\";\n\n /**\n * 提示语\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 是否自动聚焦\n */\n @property({\n type: Boolean,\n })\n accessor autoFocus: boolean | undefined;\n\n /**\n * 可以点击清除图标删除内容\n */\n @property({\n type: Boolean,\n })\n accessor clearable: boolean | undefined;\n\n /**\n * 是否剔除前后空格\n */\n @property({\n type: Boolean,\n })\n accessor trim: boolean | undefined;\n\n /**\n * 默认延迟时间\n */\n @property({\n type: Number,\n })\n accessor debounceTime: number = 0;\n\n /**\n * 输入的搜索字符,输入变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<string>;\n #handleChange = (value: string) => {\n this.value = value;\n };\n #handleDebouncedChange = (value: string) => {\n this.#change.emit(this.trim ? value?.trim() : value);\n };\n\n /**\n * 搜索时触发\n */\n @event({ type: \"search\" })\n accessor #search!: EventEmitter<string>;\n #handleSearch = (value: string) => {\n this.#search.emit(this.trim ? value?.trim() : value);\n };\n\n render() {\n return (\n <GeneralSearchComponent\n value={this.value}\n placeholder={this.placeholder}\n autoFocus={this.autoFocus}\n clearable={this.clearable}\n debounceTime={this.debounceTime}\n onChange={this.#handleChange}\n onSearch={this.#handleSearch}\n onDebouncedChange={this.#handleDebouncedChange}\n />\n );\n }\n}\n\ninterface SearchComponentProps extends SearchProps {\n onSearch?: (value: string) => void;\n onChange?: (value: string) => void;\n onDebouncedChange?: (value: string) => void;\n}\n\nexport function GeneralSearchComponent(props: SearchComponentProps) {\n const {\n placeholder,\n autoFocus,\n clearable,\n debounceTime,\n onDebouncedChange,\n onChange,\n onSearch,\n } = props;\n\n const [value, setValue] = useState<string>();\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const _onDebouncedChange = useMemo(() => {\n return debounceTime\n ? debounce(onDebouncedChange!, debounceTime)\n : onDebouncedChange;\n }, [debounceTime]);\n\n const handleSearch = () => {\n onSearch?.(value!);\n };\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n onChange?.(e.detail);\n _onDebouncedChange?.(e.detail);\n };\n\n return (\n <WrappedInput\n type=\"text\"\n autoFocus={autoFocus}\n clearable={clearable}\n placeholder={placeholder}\n value={value}\n onChange={handleChange as any}\n onKeyDown={(e) => e.key === \"Enter\" && handleSearch()}\n >\n <WrappedIcon\n slot=\"suffix\"\n className=\"search-button\"\n lib=\"antd\"\n icon=\"search\"\n theme=\"outlined\"\n onClick={() => handleSearch()}\n onMouseDown={(e) => e.preventDefault()}\n />\n </WrappedInput>\n );\n}\n","export enum K {\n ICON = \"ICON\",\n COLOR = \"COLOR\",\n SELECT_ICON = \"SELECT_ICON\",\n SEARCH_PLACEHOLDER = \"SEARCH_PLACEHOLDER\",\n}\n\nconst en: Locale = {\n ICON: \"Icon\",\n COLOR: \"Color\",\n SELECT_ICON: \"Select Icon\",\n SEARCH_PLACEHOLDER: \"input keyword to search\",\n};\n\nconst zh: Locale = {\n ICON: \"图标\",\n COLOR: \"颜色\",\n SELECT_ICON: \"选择图标\",\n SEARCH_PLACEHOLDER: \"输入关键字搜索\",\n};\n\nexport const NS = \"bricks/form/icon-select\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","export enum Colors {\n green = \"green\",\n red = \"red\",\n blue = \"blue\",\n orange = \"orange\",\n cyan = \"cyan\",\n purple = \"purple\",\n geekblue = \"geekblue\",\n gray = \"gray\",\n}\n\nexport const COLORS_MAP: Record<\n Colors,\n { color: string; background: string; borderColor: string }\n> = {\n [Colors.green]: {\n color: \"var(--theme-green-color)\",\n background: \"var(--theme-green-background)\",\n borderColor: \"var(--theme-green-border-color)\",\n },\n [Colors.red]: {\n color: \"var(--theme-red-color)\",\n background: \"var(--theme-red-background)\",\n borderColor: \"var(--theme-red-border-color)\",\n },\n [Colors.blue]: {\n color: \"var(--theme-blue-color)\",\n background: \"var(--theme-blue-background)\",\n borderColor: \"var(--theme-blue-border-color)\",\n },\n [Colors.orange]: {\n color: \"var(--theme-orange-color)\",\n background: \"var(--theme-orange-background)\",\n borderColor: \"var(--theme-orange-border-color)\",\n },\n [Colors.cyan]: {\n color: \"var(--theme-cyan-color)\",\n background: \"var(--theme-cyan-background)\",\n borderColor: \"var(--theme-cyan-border-color)\",\n },\n [Colors.purple]: {\n color: \"var(--theme-purple-color)\",\n background: \"var(--theme-purple-background)\",\n borderColor: \"var(--theme-purple-border-color)\",\n },\n [Colors.geekblue]: {\n color: \"var(--theme-geekblue-color)\",\n background: \"var(--theme-geekblue-background)\",\n borderColor: \"var(--theme-geekblue-border-color)\",\n },\n [Colors.gray]: {\n color: \"var(--theme-gray-color)\",\n background: \"var(--theme-gray-background)\",\n borderColor: \"var(--theme-gray-border-color)\",\n },\n};\n\n/**\n * 如果提供的颜色值是平台提供的规范颜色,则转换为使用平台规范的颜色定义,包括color、background、borderColor,不是的话则原样输出。\n * @param color {string} 颜色值\n * @return {color:string;background:string;borderColor:string;} 返回处理后的对应颜色值\n */\nexport function getColor(color?: string): {\n color: string;\n background: string;\n borderColor: string;\n} {\n if (!color) {\n return {\n color: \"var(--antd-avatar-color)\",\n background: \"var(--antd-avatar-bg)\",\n borderColor: \"var(--antd-avatar-color)\",\n };\n }\n return (\n COLORS_MAP[color as Colors] ?? {\n color,\n background: color,\n borderColor: color,\n }\n );\n}\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport classNames from \"classnames\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n LibIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n Modal,\n ModalProps,\n ModalEvents,\n ModalMapEvents,\n} from \"@next-bricks/containers/modal\";\nimport type {\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping,\n} from \"../radio/index.js\";\nimport type {\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap,\n} from \"../search/index.js\";\nimport type {\n getLibs as _getLibs,\n LibInfo,\n IconInfo,\n} from \"@next-bricks/icons/data-providers/get-libs\";\nimport type { searchIcons as _searchIcons } from \"@next-bricks/icons/data-providers/search-icons\";\nimport { COLORS_MAP, getColor } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst getLibs = unwrapProvider<typeof _getLibs>(\"icons.get-libs\");\nconst searchIcons = unwrapProvider<typeof _searchIcons>(\"icons.search-icons\");\nconst WrappedGeneralRadio = wrapBrick<\n Radio,\n RadioProps,\n RadioEvents,\n RadioEventsMapping\n>(\"eo-radio\", {\n onValueChange: \"change\",\n onOptionsChange: \"optionsChange\",\n});\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedModal = wrapBrick<Modal, ModalProps, ModalEvents, ModalMapEvents>(\n \"eo-modal\",\n {\n onClose: \"close\",\n onConfirm: \"confirm\",\n onCancel: \"cancel\",\n onOpen: \"open\",\n }\n);\nconst WrappedSearch = wrapBrick<\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ntype Icon = LibIconProps & { color?: string };\n\nexport interface IconSelectProps {\n name?: string;\n label?: string;\n value?: Icon;\n disabled?: boolean;\n required?: boolean;\n message?: Record<string, string>;\n}\n\n/**\n * 图标选择构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-icon-select\", {\n styleTexts: [styleText],\n alias: [\"form.icon-select\"],\n})\nclass IconSelect extends FormItemElementBase implements IconSelectProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: Icon | undefined;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<Icon | undefined>;\n handleChange = (value?: Icon) => {\n this.value = value;\n this.#change.emit(value);\n };\n\n render() {\n return (\n <IconSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n disabled={this.disabled}\n message={this.message}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst emptyIcon = {\n lib: \"easyops\",\n icon: \"empty-icon\",\n category: \"common\",\n} as Icon;\n\ninterface IconSelectComponentProps extends FormItemProps, IconSelectProps {\n onChange?: (value?: Icon) => void;\n}\n\nexport function IconSelectComponent(props: IconSelectComponentProps) {\n const { t } = useTranslation(NS);\n const { disabled, onChange } = props;\n\n const modalRef = useRef<Modal>(null);\n\n const [iconLibs, setIconLibs] = useState<LibInfo[]>([]);\n const [searchParams, setSearchParams] = useState<{\n q?: string;\n lib?: string;\n }>({});\n const [iconList, setIconList] = useState<IconInfo[]>([]);\n\n useEffect(() => {\n getLibs().then((libs) => {\n setIconLibs(libs);\n setSearchParams({ ...searchParams, lib: libs[0].lib });\n });\n }, []);\n\n const handleSearchIcons = (params: { q?: string; lib?: string }) => {\n searchIcons({ lib: params.lib, q: params.q, page: 1, pageSize: 100 }).then(\n (result) => setIconList(result.list)\n );\n };\n\n const [previewIcon, setPreviewIcon] = useState<LibIconProps>();\n const [previewColor, setPreviewColor] = useState<string>();\n\n useEffect(() => {\n setPreviewIcon(props.value?.lib ? props.value : undefined);\n setPreviewColor(props.value?.color);\n }, [props.value]);\n\n const [selectedIcon, setSelectedIcon] = useState<LibIconProps>();\n const [selectedColor, setSelectedColor] = useState<string>();\n\n const clearSelect = () => {\n setSelectedIcon(undefined);\n setSelectedColor(undefined);\n };\n\n const handleModalOpen = () => {\n setSelectedIcon(previewIcon);\n setSelectedColor(previewColor);\n handleSearchIcons(searchParams);\n };\n\n const handleModalClose = () => {\n clearSelect();\n };\n\n const handleModalConfirm = () => {\n setPreviewIcon(selectedIcon);\n setPreviewColor(selectedColor);\n const newValue = selectedIcon?.lib\n ? { ...selectedIcon, color: selectedColor }\n : undefined;\n onChange?.(newValue);\n modalRef.current?.close();\n };\n\n const handleIconSelect = (icon: LibIconProps) => {\n setSelectedIcon(icon);\n };\n\n const handleColorSelect = (color?: string) => {\n setSelectedColor(color);\n };\n\n return (\n <WrappedFormItem {...(props as FormItemProps)}>\n <span\n onClick={() => !disabled && modalRef.current?.open()}\n className={classNames(\"show-icon\", {\n disabled: disabled,\n })}\n style={{ backgroundColor: getColor(previewColor).background }}\n >\n <WrappedGeneralIcon\n {...(previewIcon || emptyIcon)}\n style={{ color: getColor(previewColor).color }}\n />\n </span>\n <WrappedModal\n ref={modalRef}\n modalTitle={t(K.SELECT_ICON)!}\n width=\"778px\"\n maskClosable={false}\n closeWhenConfirm={false}\n onConfirm={handleModalConfirm}\n onClose={handleModalClose}\n onOpen={handleModalOpen}\n >\n <div className=\"preview-container\">\n <div\n className=\"show-area\"\n style={{ backgroundColor: getColor(selectedColor).background }}\n >\n <WrappedGeneralIcon\n {...(selectedIcon || emptyIcon)}\n style={{ color: getColor(selectedColor).color }}\n />\n {selectedIcon && (\n <div className=\"delete-wrapper\" onClick={() => clearSelect()}>\n <div className=\"delete-icon\">\n <WrappedGeneralIcon\n lib=\"easyops\"\n category=\"default\"\n icon=\"delete\"\n style={{ color: \"var(--theme-red-color)\" }}\n />\n </div>\n </div>\n )}\n </div>\n <span className=\"preview-icon-name\">{selectedIcon?.icon}</span>\n </div>\n <div className=\"select-icon-container\">\n {\n <>\n <span className=\"label\">{t(K.COLOR)}:</span>\n <div className=\"select-color-area\">\n {Object.keys(COLORS_MAP).map((item) => {\n return (\n <div\n className=\"color-box\"\n style={{ backgroundColor: getColor(item).color }}\n key={item}\n onClick={() => handleColorSelect(item)}\n />\n );\n })}\n <div\n className=\"color-box empty-color\"\n onClick={() => handleColorSelect(undefined)}\n >\n <div className=\"empty-line\" />\n </div>\n </div>\n </>\n }\n <span className=\"label\">{t(K.ICON)}:</span>\n <div className=\"select-icon-area\">\n <div className=\"select-icon-search-bar\">\n <WrappedSearch\n value={searchParams.q}\n placeholder={t(K.SEARCH_PLACEHOLDER)!}\n onSearch={(e) => {\n const newSearchParams = { ...searchParams, q: e.detail };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n <WrappedGeneralRadio\n options={iconLibs?.map((lib) => {\n return {\n label: lib.title,\n value: lib.lib,\n };\n })}\n value={searchParams.lib}\n onValueChange={(e) => {\n const newSearchParams = {\n ...searchParams,\n lib: e.detail.value as string,\n };\n setSearchParams(newSearchParams);\n handleSearchIcons(newSearchParams);\n }}\n />\n </div>\n <div className=\"icon-area\">\n {iconList.map((iconInfo) => {\n return (\n <div\n key={JSON.stringify(iconInfo.icon)}\n title={iconInfo.title}\n className=\"icon-container\"\n onClick={() => {\n handleIconSelect(iconInfo.icon);\n }}\n >\n <WrappedGeneralIcon {...iconInfo.icon} />\n <div className=\"icon-name\">{iconInfo.title}</div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </WrappedModal>\n </WrappedFormItem>\n );\n}\n","export enum K {\n UPLOAD = \"UPLOAD\",\n FILE_UPLOADING = \"FILE_UPLOADING\",\n DRAG_UPLOAD_TEXT = \"DRAG_UPLOAD_TEXT\",\n EXCEEDED_FILE_SIZE_LIMIT = \"EXCEEDED_FILE_SIZE_LIMIT\",\n}\n\nconst en: Locale = {\n UPLOAD: \"Upload\",\n FILE_UPLOADING: \"File is still uploading\",\n DRAG_UPLOAD_TEXT: \"Drag files here or <strong>click to upload</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT:\n \"The uploaded file exceeded size limit: {{limitSize}} {{unit}}\",\n};\n\nconst zh: Locale = {\n UPLOAD: \"上传\",\n FILE_UPLOADING: \"文件上传中\",\n DRAG_UPLOAD_TEXT: \"将文件拖动到此处或<strong>点击上传</strong>\",\n EXCEEDED_FILE_SIZE_LIMIT: \"上传的文件超出大小限制: {{limitSize}} {{unit}}\",\n};\n\nexport const NS = \"bricks/form/eo-upload-file-and-image\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","import { i18n } from \"@next-core/i18n\";\nimport { NS, K } from \"./i18n.js\";\n\nlet uid = 0;\n\nexport const symbolForAbortController = Symbol.for(\"AbortController\");\n\nexport const LIST_IGNORE = Symbol.for(\"list-ignore\");\n\nexport const getUid = () => {\n return `upload-image-${+new Date()}-${++uid}`;\n};\n\nexport enum FileSizeUnit {\n KB = \"KB\",\n MB = \"MB\",\n GB = \"GB\",\n}\n\nexport const acceptValidator = (file: File, accepts?: string | string[]) => {\n const validAccepts = ([] as string[]).concat(accepts || []).reduce(\n (pre, cur) =>\n pre.concat(\n cur\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean)\n ),\n [] as string[]\n );\n\n if (file && validAccepts.length) {\n const lowerFileName = (file.name || \"\").toLowerCase();\n const mimeType = file.type || \"\";\n const baseMimeType = mimeType.split(\"/\")[0];\n\n return validAccepts.some((accept) => {\n // like *, */*\n if ([\"*\", \"*/*\"].includes(accept)) {\n return true;\n }\n\n // like .jpg, .png\n if (accept.startsWith(\".\")) {\n const lowerType = accept.toLowerCase();\n let affixList = [lowerType];\n if ([\".jpg\", \".jpeg\"].includes(lowerType)) {\n affixList = [\".jpg\", \".jpeg\"];\n }\n\n return affixList.some((affix) => lowerFileName.endsWith(affix));\n }\n\n // like image/*\n if (accept.endsWith(\"/*\")) {\n return baseMimeType === accept.split(\"/*\")[0];\n }\n\n // Full match\n if (mimeType === accept) {\n return true;\n }\n\n return false;\n });\n }\n return true;\n};\n\nexport const sizeValidator = (\n file: File,\n limitSize?: number,\n unit: FileSizeUnit = FileSizeUnit.MB\n) => {\n return new Promise((resolve, reject) => {\n if (file && limitSize) {\n const sizeConst = {\n [FileSizeUnit.KB]: 1024,\n [FileSizeUnit.MB]: 1024 * 1024,\n [FileSizeUnit.GB]: 1024 * 1024 * 1024,\n };\n\n file.size < limitSize * sizeConst[unit]\n ? resolve(file)\n : reject(\n new Error(\n i18n.t(`${NS}:${K.EXCEEDED_FILE_SIZE_LIMIT}`, { limitSize, unit })\n )\n );\n } else {\n resolve(file);\n }\n });\n};\n\nexport type UploadStatus = \"uploading\" | \"done\" | \"error\";\n\nexport interface FileData {\n uid: string;\n name: string;\n file?: File & { uid?: string };\n response?: any;\n userData?: any;\n status?: UploadStatus;\n errors?: Error[];\n [symbolForAbortController]?: AbortController;\n}\n","import React, { ChangeEvent, useEffect, useRef, useState } from \"react\";\nimport \"@next-core/theme\";\nimport { http } from \"@next-core/http\";\nimport {\n getUid,\n type FileData,\n symbolForAbortController,\n acceptValidator,\n sizeValidator,\n UploadStatus,\n} from \"./utils.js\";\n\nexport interface UploadActions {\n upload: () => void;\n uploadFiles: (files: FileList | File[]) => void;\n}\n\nexport interface ItemActions {\n remove: () => void;\n}\n\nexport interface UploadProps {\n children: (\n fileDataList: FileData[],\n uploadActions: UploadActions\n ) => React.ReactElement;\n itemRender: (\n fileData: FileData,\n fileDataList: FileData[],\n actions: ItemActions,\n index: number\n ) => React.ReactElement;\n fileList?: FileData[];\n autoUpload?: boolean;\n uploadName?: string;\n action?: string;\n method?: string;\n accept?: string;\n multiple?: boolean;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n beforeUploadValidators?: ((file: File, files: File[]) => Promise<unknown>)[];\n beforeUploadUserDataProcessor?: (\n file: File,\n fileDataList: { file: File; errors: Error[] }[]\n ) => Promise<any>;\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function Upload(props: UploadProps) {\n const {\n children,\n itemRender,\n autoUpload,\n onChange,\n uploadName = \"file\",\n action,\n method,\n accept,\n maxCount,\n limitSize,\n overMaxCountMode = \"replace\",\n beforeUploadValidators = [],\n beforeUploadUserDataProcessor,\n multiple,\n } = props;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [internalFileDataList, setInternalFileDataList] = useState<FileData[]>(\n []\n );\n\n useEffect(() => {\n setInternalFileDataList(props.fileList || []);\n }, [props.fileList]);\n\n const beforeLoadFilter = (files: File[]) => {\n return files.filter((file) => acceptValidator(file, accept));\n };\n\n const beforeLoadValidator = async (files: File[]) => {\n const results = await Promise.all(\n files.map((file) =>\n Promise.allSettled([\n file,\n sizeValidator(file, limitSize),\n ...beforeUploadValidators.map((validator) => validator(file, files)),\n ])\n )\n );\n return results.map(([_file, ...validatorResult]) => {\n const file = (_file as PromiseFulfilledResult<File>).value;\n const errors: Error[] = [];\n\n validatorResult.forEach((result) => {\n result.status === \"rejected\" && errors.push(result.reason);\n });\n\n return { file, errors };\n });\n };\n\n const beforeLoadProcessor = async (\n fileDataList: { file: File; errors: Error[] }[]\n ) => {\n return Promise.all(\n fileDataList.map(\n async ({\n file,\n errors,\n }: {\n file: File & { uid?: string };\n errors: Error[];\n }) => {\n const uid = getUid();\n file.uid = uid;\n const name = file.name;\n\n const status: UploadStatus = errors.length\n ? \"error\"\n : autoUpload\n ? \"uploading\"\n : \"done\";\n\n const userData = await beforeUploadUserDataProcessor?.(\n file,\n fileDataList\n );\n return { uid, file, name, status, userData, errors };\n }\n )\n );\n };\n\n const handleUploadSuccess = (fileData: FileData, response: unknown) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n response,\n status: \"done\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleUploadError = (fileData: FileData, error: Error) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.map((_fileData) => {\n return _fileData.uid === fileData.uid\n ? {\n ..._fileData,\n errors: _fileData.errors?.concat(error),\n status: \"error\" as UploadStatus,\n }\n : _fileData;\n });\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleFileRemove = (removedFileData: FileData) => {\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = fileDataList.filter(\n (fileData) => fileData.uid !== removedFileData.uid\n );\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n };\n\n const handleRemove = (fileData: FileData) => {\n if (fileData.status === \"uploading\") {\n fileData[symbolForAbortController]?.abort();\n }\n handleFileRemove(fileData);\n };\n\n const uploadFile = (fileData: FileData) => {\n const formData = new FormData();\n const abortController = new AbortController();\n fileData[symbolForAbortController] = abortController;\n formData.append(uploadName, fileData.file!, fileData.file!.name);\n\n const req = http.request(action!, {\n method,\n body: formData,\n signal: abortController.signal,\n });\n\n req\n .then((response) => handleUploadSuccess(fileData, response))\n .catch((error) => handleUploadError(fileData, error));\n\n return req;\n };\n\n const handleFileUpload = async (files: FileList | File[]) => {\n const originFiles = [...files];\n let filteredFiles: File[] = [];\n let existsFilesSlice: [number, number] | undefined;\n\n if (maxCount && Number(maxCount) > 0) {\n const existsLength = internalFileDataList.length;\n if (existsLength + originFiles.length <= maxCount) {\n filteredFiles = beforeLoadFilter(originFiles);\n } else {\n const overCount = existsLength + originFiles.length - maxCount;\n const allowCount = originFiles.length - overCount;\n\n if (overMaxCountMode === \"ignore\") {\n filteredFiles = beforeLoadFilter(originFiles).slice(0, allowCount);\n } else {\n filteredFiles = beforeLoadFilter(originFiles).slice(\n -maxCount,\n Infinity\n );\n\n if (filteredFiles.length < maxCount) {\n existsFilesSlice = [filteredFiles.length - maxCount, Infinity];\n } else {\n existsFilesSlice = [0, 0];\n }\n }\n }\n } else {\n filteredFiles = beforeLoadFilter(originFiles);\n }\n\n const validatedFiles = await beforeLoadValidator(filteredFiles);\n const processedFileDataList = await beforeLoadProcessor(validatedFiles);\n (processedFileDataList.length || existsFilesSlice) &&\n setInternalFileDataList((fileDataList) => {\n const newFileDataList = (\n existsFilesSlice\n ? fileDataList.slice(...existsFilesSlice)\n : fileDataList\n ).concat(processedFileDataList);\n onChange?.(newFileDataList);\n return newFileDataList;\n });\n\n processedFileDataList.forEach(\n (fileData) => fileData.status === \"uploading\" && uploadFile(fileData)\n );\n };\n\n const handleInputChange = async (event: ChangeEvent<HTMLInputElement>) => {\n event.stopPropagation();\n handleFileUpload([...event.target.files!]);\n event.target.value = \"\";\n };\n\n return (\n <>\n <input\n ref={inputRef}\n type=\"file\"\n multiple={multiple}\n accept={accept}\n hidden\n onChange={handleInputChange}\n />\n <div className=\"upload-wrapper\">\n {children(internalFileDataList, {\n upload: () => inputRef.current?.click(),\n uploadFiles: (files) => handleFileUpload(files),\n })}\n <div className=\"file-list\">\n {internalFileDataList.map((fileData, index) => {\n const actions = {\n remove: () => handleRemove(fileData),\n };\n return (\n <React.Fragment key={fileData.uid}>\n {itemRender(fileData, internalFileDataList, actions, index)}\n </React.Fragment>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n","import { pipes } from \"@next-core/pipes\";\nimport { FileData } from \"../utils.js\";\n\nexport interface ImageData extends FileData {\n url?: string;\n}\n\nexport const getImage = (\n file: string | File,\n revokeUrl?: boolean\n): Promise<HTMLImageElement> => {\n return new Promise((resolve, reject) => {\n let url = \"\";\n if (typeof file === \"string\") {\n url = file;\n } else if (file instanceof Blob && file.type.startsWith(\"image/\")) {\n url = URL.createObjectURL(file);\n } else {\n reject(new Error(\"not Image\"));\n }\n const image = new Image();\n image.src = url;\n image.onload = () => {\n revokeUrl && URL.revokeObjectURL(url);\n resolve(image);\n };\n image.onerror = (error) => reject(error);\n });\n};\n\nexport const imageValidator = async (\n file: File,\n limit?: { width?: number; height?: number }\n) => {\n return new Promise((resolve, reject) => {\n if (file && limit) {\n getImage(file, true).then((image) => {\n (limit.width ? image.naturalWidth < limit.width : true) &&\n (limit.height ? image.naturalHeight < limit.height : true)\n ? resolve(file)\n : reject(new Error(\"Wrong image size!\"));\n });\n } else {\n resolve(file);\n }\n });\n};\n\nexport const userDataProcessor = async (file: File) => {\n const image = await getImage(file);\n return {\n url: image.src,\n name: file.name,\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n size: pipes.unitFormat(file.size, \"bytes\").join(\"\"),\n };\n};\n","import React, { useRef } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type { Image, ImageProps } from \"@next-bricks/basic/image\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport classNames from \"classnames\";\nimport { UploadActions, ItemActions, Upload } from \"../Upload.js\";\nimport { userDataProcessor, imageValidator, type ImageData } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedImage = wrapBrick<Image, ImageProps>(\"eo-image\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadImageProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: ImageData[];\n bucketName: string;\n maxCount?: number;\n multiple?: boolean;\n limitSize?: number;\n}\n\n/**\n * 上传图片构件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-image\", {\n styleTexts: [styleText],\n alias: [\"form.upload-image\"],\n})\nclass UploadImage extends FormItemElementBase implements UploadImageProps {\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: ImageData[] | undefined;\n\n /**\n * 对象存储桶名字\n */\n @property()\n accessor bucketName!: string;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 是否支持选定的多张图片\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<ImageData[]>;\n handleChange = (imageList: ImageData[]) => {\n this.value = imageList;\n this.#change.emit(imageList);\n };\n\n render() {\n return (\n <UploadImageComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n value={this.value}\n required={this.required}\n message={this.message}\n maxCount={this.maxCount}\n bucketName={this.bucketName}\n multiple={this.multiple}\n limitSize={this.limitSize}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst defaultUploadIcon = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\ninterface UploadImageComponentProps extends UploadImageProps, FormItemProps {\n onChange?: (imageList: ImageData[]) => void;\n}\n\nexport function UploadImageComponent(props: UploadImageComponentProps) {\n const { value, bucketName, multiple, maxCount, onChange, limitSize } = props;\n const { t } = useTranslation(NS);\n const wrapBrickImageRef = useRef<Image>(null);\n\n const handleChange = (images: ImageData[]) => {\n const processedImages = images?.map((image) => {\n const url =\n image.url ??\n (image.response\n ? `${getBasePath()}api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/${bucketName}/object/${\n image.response.data.objectName\n }`\n : undefined);\n return {\n ...image,\n url,\n };\n });\n onChange?.(processedImages);\n };\n\n const itemRender = (\n fileData: ImageData,\n fileDataList: ImageData[],\n actions: ItemActions,\n index: number\n ) => {\n const { uid, url, name, userData, status = \"done\", errors } = fileData;\n\n return (\n <div\n key={uid}\n className={classNames(\"image-item\", {\n \"image-item-done\": status === \"done\",\n \"image-item-uploading\": status === \"uploading\",\n \"image-item-error\": status === \"error\",\n })}\n >\n <div className=\"image-item-inner\">\n <img\n className=\"image\"\n src={userData?.url || url}\n onClick={() => wrapBrickImageRef.current!.open(index)}\n />\n <div className=\"infos\">\n <div className=\"file-name\">{name}</div>\n {status === \"uploading\" && <div className=\"progress\"></div>}\n <div className=\"more-info\">\n {status === \"done\" && userData && (\n <div className=\"image-size\">\n {`LeaderBoard ${userData?.naturalWidth}*${userData?.naturalHeight}`}\n </div>\n )}\n {status === \"error\" && (\n <div className=\"error-info\">\n {errors\n ?.map((v) => {\n return v instanceof Error ? v.message : v;\n })\n .join(\" \")}\n </div>\n )}\n {(status === \"done\" || status === \"error\") && userData?.size && (\n <div className=\"file-size\">{userData.size}</div>\n )}\n </div>\n </div>\n <div className=\"operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n );\n };\n\n const validator = (curValue: ImageData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem {...(props as FormItemProps)} validator={validator}>\n <Upload\n itemRender={itemRender}\n fileList={value}\n autoUpload={true}\n uploadName=\"file\"\n action={`${getBasePath()}api/gateway/object_store.object_store.PutObject/api/v1/objectStore/bucket/${bucketName}/object`}\n method=\"PUT\"\n accept=\"image/*\"\n maxCount={maxCount}\n multiple={multiple}\n limitSize={limitSize}\n beforeUploadValidators={[(file) => imageValidator(file)]}\n beforeUploadUserDataProcessor={userDataProcessor}\n onChange={handleChange}\n >\n {(fileDataList: ImageData[], uploadActions: UploadActions) => {\n return (\n <>\n <WrappedButton\n icon={defaultUploadIcon}\n onClick={uploadActions.upload}\n >\n {t(K.UPLOAD)}\n </WrappedButton>\n <WrappedImage\n ref={wrapBrickImageRef}\n onlyPreview={true}\n imgList={fileDataList.map((item) => ({\n src: item.userData?.url,\n }))}\n />\n </>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { ComponentSize } from \"../interface.js\";\nimport classNames from \"classnames\";\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\ninterface SwitchProps extends FormItemProps {\n curElement: HTMLElement;\n onSwitch: (value: boolean) => void;\n disabled?: boolean;\n size?: ComponentSize;\n value?: boolean;\n checkedText?: string;\n unCheckedText?: string;\n checkedIcon?: GeneralIconProps;\n unCheckedIcon?: GeneralIconProps;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * 开关\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-switch\", {\n styleTexts: [styleText],\n alias: [\"form.general-switch\"],\n})\nclass GeneralSwitch extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 初始值\n */\n @property({ type: Boolean })\n accessor value: boolean | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 按钮大小,目前只支持small和非small两种大小。\n */\n @property() accessor size: ComponentSize | undefined;\n\n /**\n * 选中时的文本\n */\n @property() accessor checkedText: string | undefined;\n\n /**\n * 非选中时的文本\n */\n @property() accessor unCheckedText: string | undefined;\n\n /**\n * 选中时的图标\n */\n @property({\n attribute: false,\n })\n accessor checkedIcon: GeneralIconProps | undefined;\n\n /**\n * 非选中时的文本\n */\n @property({\n attribute: false,\n })\n accessor unCheckedIcon: GeneralIconProps | undefined;\n\n /**\n * 开关改变时触发\n */\n @event({ type: \"switch\" }) accessor #switchEvent!: EventEmitter<boolean>;\n\n handleSwitch = (value: boolean) => {\n Promise.resolve().then(() => {\n this.#switchEvent.emit(value);\n });\n };\n render() {\n return (\n <GeneralSwitchComponent\n formElement={this.getFormElement()}\n curElement={this}\n disabled={this.disabled}\n size={this.size}\n value={this.value}\n onSwitch={this.handleSwitch}\n checkedText={this.checkedText}\n unCheckedText={this.unCheckedText}\n checkedIcon={this.checkedIcon}\n unCheckedIcon={this.unCheckedIcon}\n name={this.name}\n label={this.label}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleSwitch\"\n />\n );\n }\n}\n\nexport function GeneralSwitchComponent(props: SwitchProps) {\n const {\n unCheckedIcon,\n checkedIcon,\n checkedText,\n unCheckedText,\n value,\n disabled,\n size,\n } = props;\n const [checked, setChecked] = useState<boolean>();\n useEffect(() => {\n setChecked(value);\n }, [value]);\n const handleSwitchChange = () => {\n props.onSwitch(!checked);\n setChecked(!checked);\n };\n return (\n <WrappedFormItem {...props}>\n <button\n disabled={disabled}\n className={classNames(size, {\n \"switch-checked\": checked,\n \"switch-disabled\": disabled,\n })}\n onClick={handleSwitchChange}\n >\n <div className=\"switch-handle\"></div>\n <span className=\"switch-inner\">\n {checkedIcon && checked && (\n <WrappedGeneralIcon {...checkedIcon}></WrappedGeneralIcon>\n )}\n {unCheckedIcon && !checked && (\n <WrappedGeneralIcon {...unCheckedIcon}></WrappedGeneralIcon>\n )}\n\n {checked ? checkedText : unCheckedText}\n </span>\n </button>\n </WrappedFormItem>\n );\n}\n","import React, { useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type {\n EasyOpsIcon,\n EasyOpsIconProps,\n} from \"@next-bricks/icons/easyops-icon\";\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../../form-item/index.js\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { Trans } from \"react-i18next\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { ItemActions, UploadActions, Upload } from \"../Upload.js\";\nimport { FileData } from \"../utils.js\";\nimport classNames from \"classnames\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedEasyopsIcon = wrapBrick<EasyOpsIcon, EasyOpsIconProps>(\n \"eo-easyops-icon\"\n);\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface UploadFileProps {\n label?: string;\n name?: string;\n required?: boolean;\n message?: Record<string, string>;\n value?: FileData[];\n multiple?: boolean;\n accept?: string;\n maxCount?: number;\n limitSize?: number;\n overMaxCountMode?: \"ignore\" | \"replace\";\n uploadDraggable?: boolean;\n draggableUploadTip?: string;\n autoUpload?: boolean;\n url?: string;\n method?: string;\n uploadName?: string;\n buttonText?: string;\n buttonType?: ButtonProps[\"type\"];\n buttonIcon?: GeneralIconProps;\n}\n\n/**\n * 上传文件\n * @author nlicro\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-upload-file\", {\n styleTexts: [styleText],\n})\nclass EoUploadFile extends FormItemElementBase implements UploadFileProps {\n /**\n * 字段说明\n */\n @property()\n accessor label: string | undefined;\n\n /**\n * 字段名称\n */\n @property()\n accessor name: string | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 校验文本信息\n */\n @property({\n attribute: false,\n })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: FileData[] | undefined;\n\n /**\n * 是否支持多选\n */\n @property({\n type: Boolean,\n })\n accessor multiple: boolean | undefined;\n\n /**\n * 接受上传的文件类型,多个之间用 `,` 连接\n */\n @property()\n accessor accept: string | undefined;\n\n /**\n * 最大上传数量\n */\n @property({\n type: Number,\n })\n accessor maxCount: number | undefined;\n\n /**\n * 上传大小限制(单位为 MB)\n */\n @property({\n type: Number,\n })\n accessor limitSize: number | undefined;\n\n /**\n * 上传按钮文本\n * @default 上传\n */\n @property()\n accessor buttonText: string | undefined;\n\n /**\n * 上传按钮类型\n */\n @property()\n accessor buttonType: ButtonProps[\"type\"] | undefined;\n\n /**\n * 上传按钮类型\n */\n @property({\n attribute: false,\n })\n accessor buttonIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"upload\",\n theme: \"outlined\",\n };\n\n /**\n * 超出最大上传数量时文件的保留方式\n */\n @property()\n accessor overMaxCountMode: \"ignore\" | \"replace\" = \"replace\";\n\n /**\n * 是否可以拖拽上传\n */\n @property({\n type: Boolean,\n })\n accessor uploadDraggable: boolean | undefined;\n\n /**\n * 拖拽上传的提示信息\n */\n @property()\n accessor draggableUploadTip: string | undefined;\n\n /**\n * 是否自动上传\n */\n @property({\n type: Boolean,\n })\n accessor autoUpload: boolean = false;\n\n /**\n * 自动上传的地址\n */\n @property()\n accessor url: string | undefined;\n\n /**\n * 自动上传的方法\n */\n @property()\n accessor method: string = \"POST\";\n\n /**\n * 自动上传的文件参数名\n */\n @property()\n accessor uploadName: string = \"file\";\n\n /**\n * 值变化时触发\n */\n @event({ type: \"change\" })\n accessor #change!: EventEmitter<FileData[]>;\n handleChange = (fileDataList: FileData[]) => {\n this.value = fileDataList;\n this.#change.emit(fileDataList);\n };\n\n render() {\n return (\n <EoUploadFileComponent\n formElement={this.getFormElement()}\n curElement={this}\n label={this.label}\n name={this.name}\n required={this.required}\n message={this.message}\n value={this.value}\n multiple={this.multiple}\n accept={this.accept}\n maxCount={this.maxCount}\n limitSize={this.limitSize}\n buttonText={this.buttonText}\n buttonIcon={this.buttonIcon}\n buttonType={this.buttonType}\n overMaxCountMode={this.overMaxCountMode}\n uploadDraggable={this.uploadDraggable}\n draggableUploadTip={this.draggableUploadTip}\n autoUpload={this.autoUpload}\n url={this.url}\n method={this.method}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n uploadName={this.uploadName}\n trigger=\"handleChange\"\n onChange={this.handleChange}\n />\n );\n }\n}\n\nconst deleteIcon = {\n lib: \"easyops\",\n category: \"default\",\n icon: \"delete\",\n} as GeneralIconProps;\n\nconst closeIcon = {\n lib: \"antd\",\n theme: \"outlined\",\n icon: \"close\",\n} as GeneralIconProps;\n\nconst fileTextIcon = {\n lib: \"antd\",\n icon: \"file-text\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\nconst loadingIcon = {\n lib: \"antd\",\n icon: \"loading\",\n theme: \"outlined\",\n} as GeneralIconProps;\n\ninterface UploadFileComponentProps extends UploadFileProps, FormItemProps {\n onChange?: (fileDataList: FileData[]) => void;\n}\n\nexport function EoUploadFileComponent(props: UploadFileComponentProps) {\n const {\n value,\n multiple,\n accept,\n maxCount,\n limitSize,\n buttonIcon,\n buttonText,\n buttonType,\n overMaxCountMode,\n uploadDraggable,\n draggableUploadTip,\n autoUpload,\n url,\n method,\n uploadName,\n onChange,\n } = props;\n const { t } = useTranslation(NS);\n const theme = useCurrentTheme();\n\n const [isDragOver, setIsDragOver] = useState(false);\n\n const handleChange = (fileDataList: FileData[]) => {\n onChange?.(fileDataList);\n };\n\n const itemRender = (\n fileData: FileData,\n fileDataList: FileData[],\n actions: ItemActions\n ) => {\n const { uid, file, name, userData, status = \"done\", errors } = fileData;\n\n return (\n <WrappedTooltip content={errors?.map((item) => item.message).join(\", \")}>\n <div\n key={uid}\n className={classNames(\n \"upload-item-container\",\n status && `upload-item-container-${status}`\n )}\n >\n <div className=\"upload-item-inner\">\n <WrappedIcon\n className={classNames(\n \"upload-item-icon\",\n status === \"uploading\" && \"upload-icon\"\n )}\n {...(status === \"uploading\" ? loadingIcon : fileTextIcon)}\n />\n <div className=\"upload-item-infos\">\n <div className=\"upload-item-file-name\">{name}</div>\n </div>\n <div className=\"upload-item-operators\">\n <WrappedIcon\n className=\"delete-icon\"\n {...(status === \"done\" ? deleteIcon : closeIcon)}\n onClick={actions.remove}\n />\n </div>\n </div>\n </div>\n </WrappedTooltip>\n );\n };\n\n const validator = (curValue: FileData[]) => {\n if (curValue?.some((file) => file.status === \"uploading\")) {\n return t(K.FILE_UPLOADING);\n }\n return \"\";\n };\n\n return (\n <WrappedFormItem {...(props as FormItemProps)} validator={validator}>\n <Upload\n itemRender={itemRender}\n fileList={value}\n multiple={multiple}\n accept={accept}\n maxCount={maxCount}\n limitSize={limitSize}\n overMaxCountMode={overMaxCountMode}\n autoUpload={autoUpload}\n action={url}\n method={method}\n uploadName={uploadName}\n onChange={handleChange}\n >\n {(fileDataList: FileData[], uploadActions: UploadActions) => {\n const isMaxQuantity =\n maxCount !== undefined && fileDataList.length >= maxCount;\n\n return uploadDraggable ? (\n <div\n className={classNames(\n \"upload-drag-button\",\n isDragOver && \"upload-drag-button-drag-over\"\n )}\n onClick={uploadActions.upload}\n onDragEnter={(e) => {\n e.preventDefault();\n setIsDragOver(true);\n }}\n onDragOver={(e) => {\n e.preventDefault();\n }}\n onDragLeave={(e) => {\n setIsDragOver(false);\n }}\n onDrop={(e) => {\n e.preventDefault();\n setIsDragOver(false);\n e.dataTransfer.files?.length &&\n uploadActions.uploadFiles(e.dataTransfer.files);\n }}\n >\n <div className=\"upload-drag-button-inner\">\n <WrappedEasyopsIcon\n className=\"upload-drag-button-icon\"\n category=\"colored-common\"\n icon={theme == \"dark-v2\" ? \"upload-dark\" : \"upload-light\"}\n />\n <div className=\"upload-drag-text\">\n <Trans\n i18nKey={t(K.DRAG_UPLOAD_TEXT)}\n components={{\n total: <strong />,\n }}\n />\n </div>\n {draggableUploadTip && (\n <div className=\"upload-drag-tip\">{draggableUploadTip}</div>\n )}\n </div>\n </div>\n ) : (\n <WrappedButton\n disabled={isMaxQuantity}\n type={buttonType}\n icon={buttonIcon}\n onClick={uploadActions.upload}\n >\n {buttonText || t(K.UPLOAD)}\n </WrappedButton>\n );\n }}\n </Upload>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useRef, useMemo, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { formatOptions } from \"../utils/formatOptions.js\";\nimport { cloneDeep, isEqual, toLower } from \"lodash\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"../input/index.jsx\";\nimport classNames from \"classnames\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\ninterface EoAutoCompleteComponentProps extends FormItemProps {\n curElement?: HTMLElement;\n value?: any;\n options?: string[] | OptionType[];\n placeholder?: string;\n inputStyle?: React.CSSProperties;\n disabled?: boolean;\n filterByCaption?: boolean;\n onChange?: (value: any) => void;\n}\nexport interface Option {\n label: string;\n caption?: string;\n value: any;\n}\n\nexport interface OptionGroup {\n label: string;\n options: Option[];\n}\n\nexport type OptionType = Option | OptionGroup;\n\n/**\n * 带候选项的输入框\n * @author zhendonghuang\n *\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-auto-complete\", {\n styleTexts: [styleText],\n})\nclass EoAutoComplete extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 占位说明\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 字段文本\n */\n @property() accessor label: string | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: React.CSSProperties | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n @property()\n accessor value: string | undefined;\n\n /**\n * 选项列表\n * @required\n */\n @property({ attribute: false })\n accessor options: string[] | OptionType[] | undefined;\n\n /**\n * 搜索时是否根据caption过滤options\n */\n @property({ type: Boolean }) accessor filterByCaption: boolean | undefined;\n\n /**\n * 表单项校验方法\n */\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody) | undefined;\n\n /**\n * 正则校验规则\n */\n @property() accessor pattern: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false }) accessor message:\n | Record<string, string>\n | undefined;\n\n /**\n * 值改变事件\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n handleInputChange = (value: string) => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n\n render() {\n return (\n <EoAutoCompleteComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n placeholder={this.placeholder}\n disabled={this.disabled}\n inputStyle={this.inputStyle}\n required={this.required}\n message={this.message}\n value={this.value}\n options={this.options}\n validator={this.validator}\n pattern={this.pattern}\n filterByCaption={this.filterByCaption}\n trigger=\"handleInputChange\"\n onChange={this.handleInputChange}\n />\n );\n }\n}\n\nexport function EoAutoCompleteComponent(props: EoAutoCompleteComponentProps) {\n const {\n onChange,\n curElement,\n inputStyle = { width: 200 },\n disabled,\n placeholder,\n filterByCaption,\n } = props;\n const [options, setOptions] = useState(props.options || []);\n const [filteredOptions, setFilteredOptions] = useState<any[]>([]);\n const [active, setActive] = useState(false);\n const [value, setValue] = useState<string>(\"\");\n const inputRef = useRef<any>();\n\n const originalOptions: OptionType[] = useMemo(() => {\n const walkOptions = (options: (OptionType | string)[]): OptionType[] => {\n return formatOptions(options)?.map((op) => {\n if (\"options\" in op && Array.isArray(op.options)) {\n return { ...op, options: walkOptions(op.options) } as OptionGroup;\n } else {\n return op;\n }\n });\n };\n\n return walkOptions(options);\n }, [options]);\n\n const handleChange = (e: CustomEvent<string>) => {\n setValue(e.detail);\n const search = (options: OptionType[]) => {\n for (let i = options.length - 1; i >= 0; i--) {\n const option = options[i] as OptionGroup;\n if (option.options?.length) {\n search(option.options);\n }\n if (\n !option.options?.length &&\n !toLower(option.label).includes(toLower(e.detail)) &&\n (!filterByCaption ||\n !toLower((option as any).caption).includes(toLower(e.detail)))\n ) {\n options.splice(i, 1);\n }\n }\n return options;\n };\n const result = search(cloneDeep(originalOptions));\n setActive(!!result.length);\n setFilteredOptions(result);\n onChange?.(e.detail);\n };\n useEffect(() => {\n if (!isEqual(props.options, options)) {\n setOptions(props.options || []);\n }\n }, [props.options]);\n\n useEffect(() => {\n setValue(props.value || \"\");\n }, [props.value]);\n\n useEffect(() => {\n setFilteredOptions(originalOptions);\n }, [originalOptions]);\n\n useEffect(() => {\n const handleDocumentClick = (e: MouseEvent) => {\n if (!curElement?.contains(e.target as HTMLElement)) {\n setActive(false);\n inputRef.current?.blur();\n }\n };\n document.addEventListener(\"click\", handleDocumentClick);\n return () => {\n document.removeEventListener(\"click\", handleDocumentClick);\n };\n }, []);\n\n const renderLabel = (option: Option, index: number) => {\n return (\n <div\n key={`${option.label}_${index}`}\n className={classNames(\"optionContainer\", {\n selectedOption: value === option.value,\n })}\n onClick={() => {\n setValue(option.value);\n setActive(false);\n onChange?.(option.value);\n }}\n >\n <div className=\"label\">{option.label}</div>\n {option.caption && <div className=\"caption\">{option.caption}</div>}\n </div>\n );\n };\n\n return (\n <WrappedFormItem {...props}>\n <div className=\"complete-container\">\n <WrappedInput\n ref={inputRef}\n value={value}\n placeholder={placeholder}\n disabled={disabled}\n inputStyle={inputStyle}\n onFocus={() => {\n setActive(!!filteredOptions.length);\n }}\n onChange={handleChange as any}\n />\n {active && (\n <div className=\"dropDownWrapper\">\n {filteredOptions.map((f: any, index) =>\n f.options?.length ? (\n <div key={`${f.label}_${index}`} className=\"groupWrapper\">\n <div className={\"groupItem\"}>{f.label}</div>\n {f.options.map((option: any, i: number) =>\n renderLabel(option, i)\n )}\n </div>\n ) : (\n renderLabel(f, index)\n )\n )}\n </div>\n )}\n </div>\n </WrappedFormItem>\n );\n}\n","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport genPurePanel from '../_util/PurePanel';\nimport warning from '../_util/warning';\nimport DatePicker from '../date-picker';\nconst {\n TimePicker: InternalTimePicker,\n RangePicker: InternalRangePicker\n} = DatePicker;\nconst RangePicker = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InternalRangePicker, Object.assign({}, props, {\n picker: \"time\",\n mode: undefined,\n ref: ref\n})));\nconst TimePicker = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n addon,\n renderExtraFooter\n } = _a,\n restProps = __rest(_a, [\"addon\", \"renderExtraFooter\"]);\n const internalRenderExtraFooter = React.useMemo(() => {\n if (renderExtraFooter) {\n return renderExtraFooter;\n }\n if (addon) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'TimePicker', '`addon` is deprecated. Please use `renderExtraFooter` instead.') : void 0;\n return addon;\n }\n return undefined;\n }, [addon, renderExtraFooter]);\n return /*#__PURE__*/React.createElement(InternalTimePicker, Object.assign({}, restProps, {\n mode: undefined,\n ref: ref,\n renderExtraFooter: internalRenderExtraFooter\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n TimePicker.displayName = 'TimePicker';\n}\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(TimePicker, 'picker');\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nTimePicker.RangePicker = RangePicker;\nTimePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default TimePicker;","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"./fix-style.shadow.css\";\nimport { TimePicker, ConfigProvider, theme } from \"antd\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePickerProps } from \"antd/lib/time-picker\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { i18n } from \"@next-core/i18n\";\nimport { isNil, omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\ndayjs.extend(customParseFormat);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\ninterface EoTimePickerProps extends FormItemProps {\n shadowRoot: ShadowRoot | null;\n configProps?: Partial<TimePickerProps>;\n placeholder?: string;\n value?: string;\n disabled?: boolean;\n onChange?: (value: string) => void;\n onOpenChange?: (flag: boolean, value: string) => void;\n}\n\n/**\n * 时间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimePicker extends FormItemElementBase {\n /**\n * 时间选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 时间选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 透传 antd timePicker 属性 [timePickerProps](https://ant.design/components/time-picker-cn)\n */\n @property({ attribute: false })\n accessor configProps: Partial<TimePickerProps> | undefined;\n\n /**\n *时间变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *面板打开时触发, 传出当前时间值\n */\n @event({ type: \"open\" })\n accessor #openEvent!: EventEmitter<string>;\n\n /**\n *面板关闭时触发,传出当前时间值\n */\n @event({ type: \"close\" })\n accessor #closeEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOpenChange = (flag: boolean, value: string): void => {\n if (flag) {\n this.#openEvent.emit(value);\n } else {\n this.#closeEvent.emit(value);\n }\n };\n\n render() {\n return (\n <EoTimePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n configProps={this.configProps}\n name={this.name}\n label={this.label}\n onChange={this.handleChange}\n trigger=\"handleChange\"\n onOpenChange={this.#handleOpenChange}\n placeholder={this.placeholder}\n value={this.value}\n required={this.required}\n message={this.message}\n shadowRoot={this.shadowRoot}\n disabled={this.disabled}\n />\n );\n }\n}\n\nexport function EoTimePickerComponent(props: EoTimePickerProps) {\n const {\n configProps = {},\n onChange,\n onOpenChange,\n disabled,\n placeholder,\n } = props;\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const [value, setValue] = useState<Dayjs | null>(null);\n const format: string = (configProps.format as string) ?? \"HH:mm:ss\";\n useEffect(() => {\n if (!isNil(props.value)) {\n setValue(dayjs(props.value, format) as Dayjs);\n } else {\n setValue(null);\n }\n }, [props.value, format]);\n\n const handleChange = (time: Dayjs | null, timeString: string): void => {\n onChange?.(timeString);\n };\n\n const handleOpenChange = (flag: boolean): void => {\n onOpenChange?.(\n flag,\n !isNil(value) ? (dayjs(value as Dayjs).format(format) as string) : \"\"\n );\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem {...(omit(props, [\"shadowRoot\"]) as any)}>\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <TimePicker\n {...configProps}\n getPopupContainer={(trigger) => trigger}\n value={value}\n onChange={handleChange}\n onOpenChange={handleOpenChange}\n disabled={disabled}\n placeholder={placeholder}\n allowClear={configProps.allowClear}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n NEXT_DAY = \"NEXT_DAY\",\n TODAY = \"TODAY\",\n LAST_DAY = \"LAST_DAY\",\n NEXT_WEEK = \"NEXT_WEEK\",\n THIS_WEEK = \"THIS_WEEK\",\n LAST_WEEK = \"LAST_WEEK\",\n NEXT_MONTH = \"NEXT_MONTH\",\n THIS_MONTH = \"THIS_MONTH\",\n LAST_MONTH = \"LAST_MONTH\",\n NEXT_QUARTER = \"NEXT_QUARTER\",\n THIS_QUARTER = \"THIS_QUARTER\",\n LAST_QUARTER = \"LAST_QUARTER\",\n NEXT_YEAR = \"NEXT_YEAR\",\n THIS_YEAR = \"THIS_YEAR\",\n LAST_YEAR = \"LAST_YEAR\",\n FISRT_QUARTER = \"FISRT_QUARTER\",\n SECOND_QUARTER = \"SECOND_QUARTER\",\n THIRD_QUARTER = \"THIRD_QUARTER\",\n FOURTH_QUARTER = \"FOURTH_QUARTER\",\n}\n\nconst en: Locale = {\n NEXT_DAY: \"Next day\",\n TODAY: \"Today\",\n LAST_DAY: \"Previous day\",\n NEXT_WEEK: \"Next week\",\n THIS_WEEK: \"This week\",\n LAST_WEEK: \"Previous week\",\n NEXT_MONTH: \"Next month\",\n THIS_MONTH: \"This month\",\n LAST_MONTH: \"Previous month\",\n NEXT_QUARTER: \"Next quarter\",\n THIS_QUARTER: \"This quarter\",\n LAST_QUARTER: \"Previous quarter\",\n NEXT_YEAR: \"Next year\",\n THIS_YEAR: \"This year\",\n LAST_YEAR: \"Previous year\",\n FISRT_QUARTER: \"First quarter\",\n SECOND_QUARTER: \"Second quarter\",\n THIRD_QUARTER: \"Third quarter\",\n FOURTH_QUARTER: \"Fourth quarter\",\n};\n\nconst zh: Locale = {\n NEXT_DAY: \"下日\",\n TODAY: \"今日\",\n LAST_DAY: \"上日\",\n NEXT_WEEK: \"下周\",\n THIS_WEEK: \"本周\",\n LAST_WEEK: \"上周\",\n NEXT_MONTH: \"下月\",\n THIS_MONTH: \"本月\",\n LAST_MONTH: \"上月\",\n NEXT_QUARTER: \"下季度\",\n THIS_QUARTER: \"本季度\",\n LAST_QUARTER: \"上季度\",\n NEXT_YEAR: \"下年\",\n THIS_YEAR: \"今年\",\n LAST_YEAR: \"上年\",\n FISRT_QUARTER: \"第一季度\",\n SECOND_QUARTER: \"第二季度\",\n THIRD_QUARTER: \"第三季度\",\n FOURTH_QUARTER: \"第四季度\",\n};\n\nexport const NS = \"bricks/form/eo-date-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LeftOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n LeftOutlined.displayName = 'LeftOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(LeftOutlined);","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RightOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n RightOutlined.displayName = 'RightOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(RightOutlined);","import React, {\n useEffect,\n useState,\n useCallback,\n useMemo,\n CSSProperties,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { DatePicker, ConfigProvider, theme } from \"antd\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport \"dayjs/locale/zh-cn.js\";\nimport classNames from \"classnames\";\nimport { DisabledDateType, PickerMode, DisabledDate } from \"../interface.js\";\nimport { LeftOutlined, RightOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\ninterface InternalStateDatePickerProps {\n placeholder?: string;\n value?: Dayjs;\n showTime?: boolean;\n inputStyle?: React.CSSProperties;\n format?: string;\n picker?: PickerMode;\n disabledDate?: DisabledDateType;\n useFastSelectBtn?: boolean;\n futureDateDisabled?: boolean;\n disabled?: boolean;\n onChange?: (value: Dayjs | null, dateString: string) => void;\n onOk?: (date: Dayjs) => void;\n}\n\ninterface EoDatePickerProps\n extends Omit<InternalStateDatePickerProps, \"value\" | \"onChange\" | \"onOk\">,\n FormItemProps {\n shadowRoot: ShadowRoot | null;\n value?: string;\n onChange?: (value: string) => void;\n onOk?: (value: string) => void;\n}\n\ninterface FieldSetAndRanges {\n fieldSet: Set<number>;\n ranges: [number, number][];\n}\ntype PickerModeMap = {\n [K in PickerMode]: string[];\n};\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\n/**\n * 日期选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-date-picker\", {\n styleTexts: [styleText],\n})\nclass EoDatePicker extends FormItemElementBase {\n /**\n * 日期选择器字段名\n */\n @property() accessor name: string | undefined;\n /**\n * 日期选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *日期选择器的初始值\n */\n @property() accessor value: string | undefined;\n\n /**\n * 日期选择器占位说明\n */\n @property()\n accessor placeholder: string | undefined;\n\n /**\n * 校验文本信息\n */\n @property({ attribute: false })\n accessor message: Record<string, string> | undefined;\n\n /**\n * 是否禁用\n */\n @property({ type: Boolean }) accessor disabled: boolean | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 是否显示时间, 当设为 `true` 时, 请同时设置 `format` 为 `YYYY-MM-DD HH:mm:ss` 使其也显示具体时,分,秒 的时间\n */\n @property({\n type: Boolean,\n })\n accessor showTime: boolean | undefined;\n\n /**\n * 显示预览的格式,具体配置参考 [dayjs](https://day.js.org/docs/zh-CN/display/format#%E6%94%AF%E6%8C%81%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%8D%A0%E4%BD%8D%E7%AC%A6%E5%88%97%E8%A1%A8),注意,这里并非是定义给后台的数据格式,给后台的数据格式定义请参考 `general-form` 构件的 [valueTypes](developers/brick-book/brick/forms.general-form) 属性\n */\n @property()\n accessor format: string | undefined;\n\n /**\n * 设置选择器类型\n */\n @property({ attribute: false })\n accessor picker: PickerMode | undefined;\n\n /**\n * 不可选择未来日期,优先级高于disabledDate\n */\n @property({ type: Boolean })\n accessor futureDateDisabled: boolean | undefined;\n\n /**\n * 不可选择的日期\n */\n @property({ attribute: false })\n accessor disabledDate: DisabledDateType | undefined;\n\n /**\n *快速选项\n */\n @property({ type: Boolean })\n accessor useFastSelectBtn: boolean | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputStyle: CSSProperties | undefined;\n\n /**\n *日期变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string>;\n\n /**\n *点击确定按钮触发(showTime 为 true 使用)\n */\n @event({ type: \"ok\" })\n accessor #okEvent!: EventEmitter<string>;\n\n handleChange = (value: string): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n #handleOk = (value: string): void => {\n this.#okEvent.emit(value);\n };\n render() {\n return (\n <EoDatePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n shadowRoot={this.shadowRoot}\n label={this.label}\n name={this.name}\n value={this.value}\n message={this.message}\n required={this.required}\n placeholder={this.placeholder}\n inputStyle={this.inputStyle}\n disabled={this.disabled}\n disabledDate={this.disabledDate}\n futureDateDisabled={this.futureDateDisabled}\n picker={this.picker}\n format={this.format}\n showTime={this.showTime}\n onChange={this.handleChange}\n trigger={\"handleChange\"}\n onOk={this.#handleOk}\n useFastSelectBtn={this.useFastSelectBtn}\n />\n );\n }\n}\n\nconst getFieldSetAndRanges = (\n expression?: string | number\n): FieldSetAndRanges => {\n const fieldSet = new Set<number>();\n const ranges: [number, number][] = [];\n `${expression}`.split(\",\").forEach((part) => {\n if (part.includes(\"-\")) {\n const range = part.split(\"-\").map((v) => Number(v)) as [number, number];\n ranges.push(range);\n } else if (part.trim() !== \"\" && !Number.isNaN(Number(part))) {\n fieldSet.add(Number(part));\n }\n });\n return { fieldSet, ranges };\n};\n\nconst isInFieldSetOrRanges = (\n cur: number,\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0\n ? true\n : fieldSet.has(cur) ||\n ranges.some(([min, max]) => cur >= min && cur <= max);\n};\n\nconst isEmptyFieldSetOrRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): boolean => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n return fieldSet.size === 0 && ranges.length === 0;\n};\n\nconst getFieldsFromFieldSetAndRanges = (\n fieldSetAndRanges: FieldSetAndRanges\n): number[] => {\n const { fieldSet, ranges } = fieldSetAndRanges;\n let fields = [...fieldSet];\n ranges.forEach(([min, max]) => {\n fields = fields.concat([...Array(max + 1).keys()].slice(min));\n });\n return [...new Set(fields)];\n};\n\nexport function InternalStateDatePicker(\n props: InternalStateDatePickerProps\n): React.ReactElement {\n const {\n picker,\n format,\n showTime,\n inputStyle,\n disabledDate,\n futureDateDisabled,\n useFastSelectBtn,\n placeholder,\n disabled,\n onChange,\n onOk,\n } = props;\n\n const [value, setValue] = useState(props.value);\n const [confirmDisabled, setConfirmDisabled] = useState(false);\n const crontab = useMemo(() => {\n if (!disabledDate) {\n return [];\n }\n return ([] as DisabledDate[]).concat(disabledDate).map((item) => {\n const { second, minute, hour, date, month, weekday, year } = item;\n const hourFieldSetAndRanges = getFieldSetAndRanges(hour);\n const minuteFieldSetAndRanges = getFieldSetAndRanges(minute);\n const secondFieldSetAndRanges = getFieldSetAndRanges(second);\n const yearFieldSetAndRanges = getFieldSetAndRanges(year);\n const monthFieldSetAndRanges = getFieldSetAndRanges(month);\n const dateFieldSetAndRanges = getFieldSetAndRanges(date);\n const weekFieldSetAndRanges = getFieldSetAndRanges(weekday);\n return {\n fields: {\n hour: hourFieldSetAndRanges,\n minute: minuteFieldSetAndRanges,\n second: secondFieldSetAndRanges,\n year: yearFieldSetAndRanges,\n month: monthFieldSetAndRanges,\n date: dateFieldSetAndRanges,\n weekday: weekFieldSetAndRanges,\n },\n isAllDate:\n isEmptyFieldSetOrRanges(yearFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(monthFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(dateFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(weekFieldSetAndRanges),\n isAllTime:\n isEmptyFieldSetOrRanges(hourFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(minuteFieldSetAndRanges) &&\n isEmptyFieldSetOrRanges(secondFieldSetAndRanges),\n };\n });\n }, [disabledDate]);\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const handleDisabledDate = (date: Dayjs): boolean => {\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n return crontab.some((cron) => {\n const { isAllDate, isAllTime, fields } = cron;\n //没有限制日期或限制了时分秒,则该日可选\n if (isAllDate || !isAllTime) {\n return false;\n }\n const { year, month, weekday, date } = fields;\n return (\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date)\n );\n });\n };\n\n const handleDisabledFutureDate = (date: Dayjs): boolean => {\n return date && date > dayjs();\n };\n\n const handleDisabledTime = (date: Dayjs | null) => {\n if (!date) return;\n const curYear = date.year();\n const curMonth = date.month() + 1;\n const curDate = date.date();\n const curWeekday = date.isoWeekday();\n const curHour = date.hour();\n const curMinute = date.minute();\n const currentSecond = date.second();\n let disabledHours: number[] = [];\n let disabledMinutes: number[] = [];\n let disabledSeconds: number[] = [];\n let matchCurDate = false;\n crontab.forEach((cron) => {\n const { isAllTime, fields } = cron;\n //时分秒都没输入,则所有时间都可选\n if (isAllTime) return;\n const { hour, minute, second, year, month, weekday, date } = fields;\n const isMatchDate =\n isInFieldSetOrRanges(curYear, year) &&\n isInFieldSetOrRanges(curMonth, month) &&\n isInFieldSetOrRanges(curWeekday, weekday) &&\n isInFieldSetOrRanges(curDate, date);\n matchCurDate =\n matchCurDate ||\n (isMatchDate &&\n isInFieldSetOrRanges(curHour, hour) &&\n isInFieldSetOrRanges(curMinute, minute) &&\n isInFieldSetOrRanges(currentSecond, second));\n if (isMatchDate) {\n const hourFields = isEmptyFieldSetOrRanges(hour)\n ? [...Array(24).keys()]\n : getFieldsFromFieldSetAndRanges(hour);\n const minuteFields = isEmptyFieldSetOrRanges(minute)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(minute);\n const secondFields = isEmptyFieldSetOrRanges(second)\n ? [...Array(60).keys()]\n : getFieldsFromFieldSetAndRanges(second);\n // 当前在禁止小时里\n if (isInFieldSetOrRanges(curHour, hour)) {\n // 当前在禁止分钟里\n if (isInFieldSetOrRanges(curMinute, minute)) {\n disabledSeconds = disabledSeconds.concat([...secondFields]);\n }\n // 秒全禁用则对应分钟也禁用\n if (secondFields.length === 60) {\n disabledMinutes = disabledMinutes.concat([...minuteFields]);\n }\n }\n // 分全禁用则对应小时也禁用\n if (minuteFields.length === 60 && secondFields.length === 60) {\n disabledHours = disabledHours.concat([...hourFields]);\n }\n }\n });\n setConfirmDisabled(matchCurDate);\n return {\n disabledHours: () => disabledHours,\n disabledMinutes: () => disabledMinutes,\n disabledSeconds: () => disabledSeconds,\n };\n };\n\n const isDatePicker = picker === \"date\";\n const isQuarterPicker = picker === \"quarter\";\n\n const PickerBtn = useCallback(() => {\n const strMap: PickerModeMap = {\n date: [\n i18n.t(`${NS}:${K.LAST_DAY}`),\n i18n.t(`${NS}:${K.TODAY}`),\n i18n.t(`${NS}:${K.NEXT_DAY}`),\n ],\n week: [\n i18n.t(`${NS}:${K.LAST_WEEK}`),\n i18n.t(`${NS}:${K.THIS_WEEK}`),\n i18n.t(`${NS}:${K.NEXT_WEEK}`),\n ],\n month: [\n i18n.t(`${NS}:${K.LAST_MONTH}`),\n i18n.t(`${NS}:${K.THIS_MONTH}`),\n i18n.t(`${NS}:${K.NEXT_MONTH}`),\n ],\n quarter: [\n i18n.t(`${NS}:${K.LAST_QUARTER}`),\n i18n.t(`${NS}:${K.THIS_QUARTER}`),\n i18n.t(`${NS}:${K.NEXT_QUARTER}`),\n ],\n year: [\n i18n.t(`${NS}:${K.LAST_YEAR}`),\n i18n.t(`${NS}:${K.THIS_YEAR}`),\n i18n.t(`${NS}:${K.NEXT_YEAR}`),\n ],\n };\n const strs = strMap[picker as PickerMode];\n const currentDate = value || dayjs();\n const handlePreTime = () => {\n let preDate: Dayjs;\n switch (picker) {\n case \"date\":\n preDate = currentDate.clone().subtract(1, \"days\");\n break;\n case \"week\":\n preDate = currentDate.clone().subtract(1, \"weeks\");\n break;\n case \"month\":\n preDate = currentDate.clone().subtract(1, \"months\");\n break;\n case \"quarter\":\n preDate = currentDate.clone().subtract(1, \"quarters\");\n break;\n case \"year\":\n preDate = currentDate.clone().subtract(1, \"years\");\n break;\n default:\n preDate = currentDate;\n break;\n }\n onChange?.(preDate, dayjs(preDate).format(format));\n setValue(preDate);\n };\n const handleCurTime = () => {\n let curDate: Dayjs;\n switch (picker) {\n case \"date\":\n curDate = dayjs();\n break;\n case \"week\":\n curDate = dayjs().startOf(\"week\");\n break;\n case \"month\":\n curDate = dayjs();\n break;\n case \"quarter\":\n curDate = dayjs().startOf(\"quarter\");\n break;\n case \"year\":\n curDate = dayjs();\n break;\n default:\n curDate = currentDate;\n break;\n }\n onChange?.(curDate, dayjs(curDate).format(format));\n setValue(curDate);\n };\n const handleNextTime = () => {\n let nextDate: Dayjs;\n switch (picker) {\n case \"date\":\n nextDate = currentDate.clone().add(1, \"days\");\n break;\n case \"week\":\n nextDate = currentDate.clone().add(1, \"weeks\");\n break;\n case \"month\":\n nextDate = currentDate.clone().add(1, \"months\");\n break;\n case \"quarter\":\n nextDate = currentDate.clone().add(1, \"quarters\");\n break;\n case \"year\":\n nextDate = currentDate.clone().add(1, \"years\");\n break;\n default:\n nextDate = currentDate;\n break;\n }\n onChange?.(nextDate, dayjs(nextDate).format(format));\n setValue(nextDate);\n };\n\n return (\n <div\n className={classNames(\"pickerBtnWrap\", {\n disabledFastSelect: disabled,\n })}\n >\n <div className={classNames(\"pre\")} onClick={() => handlePreTime()}>\n <LeftOutlined rev=\"\" />\n <span>{strs[0]}</span>\n </div>\n <div className=\"current\" onClick={() => handleCurTime()}>\n {strs[1]}\n </div>\n <div\n className={classNames({\n next: true,\n nextDisabled:\n futureDateDisabled &&\n handleDisabledFutureDate(\n currentDate\n .clone()\n .add(1, picker === \"date\" ? \"days\" : (picker as any))\n ),\n })}\n onClick={() => handleNextTime()}\n >\n <span>{strs[2]}</span>\n <RightOutlined rev=\"\" />\n </div>\n </div>\n );\n }, [value, picker, futureDateDisabled]);\n\n const cellRender = useCallback(\n (current: Dayjs, info: { originNode: React.ReactElement }) => {\n const quarterMap = {\n 1: i18n.t(`${NS}:${K.FISRT_QUARTER}`),\n 2: i18n.t(`${NS}:${K.SECOND_QUARTER}`),\n 3: i18n.t(`${NS}:${K.THIRD_QUARTER}`),\n 4: i18n.t(`${NS}:${K.FOURTH_QUARTER}`),\n };\n const selectedQuarter: number = dayjs(value).quarter();\n const currentQuarter: number = dayjs(current).quarter();\n return picker === \"quarter\" ? (\n <div\n className={classNames(\"quarterContent\", {\n selectedQuarter: selectedQuarter === currentQuarter,\n })}\n >\n {quarterMap[currentQuarter as keyof typeof quarterMap]}\n </div>\n ) : (\n info.originNode\n );\n },\n [value, picker]\n );\n\n return (\n <div\n className=\"pickerWrap\"\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <DatePicker\n cellRender={(\n current: Dayjs,\n info: { originNode: React.ReactElement }\n ) => {\n return cellRender(current, info);\n }}\n value={value}\n getPopupContainer={(trigger) => trigger}\n popupClassName={classNames({\n quarterPicker: isQuarterPicker,\n confirmDisabled: confirmDisabled,\n })}\n format={format}\n showTime={isDatePicker ? showTime : undefined}\n onChange={onChange}\n style={inputStyle}\n placeholder={placeholder}\n onOk={onOk}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n picker={picker}\n disabledDate={\n (futureDateDisabled && handleDisabledFutureDate) ||\n (disabledDate && handleDisabledDate)\n }\n disabledTime={disabledDate && (handleDisabledTime as any)}\n disabled={disabled}\n />\n {useFastSelectBtn && <PickerBtn />}\n </div>\n );\n}\n\nexport function EoDatePickerComponent(\n props: EoDatePickerProps\n): React.ReactElement {\n const { picker = \"date\", ...restProps } = props;\n\n const PickerFormatMap = {\n date: \"YYYY-MM-DD\",\n week: \"gggg-ww周\",\n month: \"YYYY-MM月\",\n quarter: \"YYYY-第Q季度\",\n year: \"YYYY\",\n };\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n const isDatePicker = picker === \"date\";\n const format = props.format || PickerFormatMap[picker];\n\n const handleChange = (date: Dayjs | null, dateString: string): void => {\n props.onChange?.(dateString);\n };\n\n const handleOk = (date: Dayjs): void => {\n props.onOk?.(date?.format(props.format));\n };\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n const value: Dayjs | undefined = useMemo(() => {\n const parseValue = props.value;\n if (parseValue) {\n if (!props.format && (picker === \"week\" || picker === \"quarter\")) {\n //dayjs目前不支持解析gggg-ww周、YYYY-第Q季度格式的输入\n return dayjs(moment(parseValue, format).format());\n } else {\n return dayjs(parseValue, format);\n }\n }\n }, [props.value, format]);\n\n return (\n <WrappedFormItem {...(omit(props, [\"shadowRoot\"]) as any)}>\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <InternalStateDatePicker\n {...restProps}\n value={value}\n format={format}\n onChange={handleChange}\n onOk={isDatePicker ? handleOk : undefined}\n picker={picker}\n />\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","export enum K {\n TODAY = \"TODAY\",\n THIS_WEEK = \"THIS_WEEK\",\n THIS_MONTH = \"THIS_MONTH\",\n THIS_QUARTER = \"THIS_QUARTER\",\n THIS_YEAR = \"THIS_YEAR\",\n START_TIME_END_TIME_CANNOT_EQUAL = \"START_TIME_END_TIME_CANNOT_EQUAL\",\n START_TIME_REQUIRED = \"START_TIME_REQUIRED\",\n END_TIME_REQUIRED = \"END_TIME_REQUIRED\",\n}\n// HELLO = \"HELLO\",\n\nconst en: Locale = {\n TODAY: \"Today\",\n THIS_WEEK: \"This Week\",\n THIS_MONTH: \"This Month\",\n THIS_QUARTER: \"This Quarter\",\n THIS_YEAR: \"This Year\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"Start Time and End Time can NOT be equal\",\n START_TIME_REQUIRED: \"Start Time is required\",\n END_TIME_REQUIRED: \"End Time is required\",\n};\n\nconst zh: Locale = {\n TODAY: \"今天\",\n THIS_WEEK: \"本周\",\n THIS_MONTH: \"本月\",\n THIS_QUARTER: \"本季度\",\n THIS_YEAR: \"今年\",\n START_TIME_END_TIME_CANNOT_EQUAL: \"开始时间和结束时间不能相等\",\n START_TIME_REQUIRED: \"开始时间必填\",\n END_TIME_REQUIRED: \"结束时间必填\",\n};\n\nexport const NS = \"bricks/form/eo-time-range-picker\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useEffect, useMemo, useState, useRef } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase, MessageBody } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"../form-item/index.jsx\";\nimport { TimePicker, DatePicker, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport styleText from \"./styles.shadow.css\";\nimport fixStyleText from \"../time-picker/fix-style.shadow.css\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { omit, isEmpty, uniqueId, difference } from \"lodash\";\nimport dayjs from \"dayjs\";\nimport type { Dayjs } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isoWeek from \"dayjs/plugin/isoWeek.js\";\nimport advancedFormat from \"dayjs/plugin/advancedFormat.js\";\nimport quarterOfYear from \"dayjs/plugin/quarterOfYear.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\nimport \"dayjs/locale/zh-cn.js\";\n\ninitializeI18n(NS, locales);\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(isoWeek);\ndayjs.extend(quarterOfYear);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst INIT_TIME_RANGE: TimeRange = {\n startTime: \"00:00:00\",\n endTime: \"23:59:59\",\n};\n\nexport enum presetRangeType {\n Today = \"今天\",\n ThisWeek = \"本周\",\n ThisMonth = \"本月\",\n ThisQuarter = \"本季度\",\n ThisYear = \"今年\",\n}\nexport interface TimeRange {\n startTime: string;\n endTime: string;\n}\n\ntype PickerType = \"date\" | \"week\" | \"month\" | \"quarter\" | \"year\";\ntype OtherPickerType = \"dateTime\" | \"hmTime\" | \"time\";\nexport type RangeType = PickerType & OtherPickerType;\n\nexport interface EoTimeRangePickerProps extends FormItemProps {\n shadowRoot?: ShadowRoot | null;\n value?: TimeRange;\n format: string;\n rangeType?: RangeType;\n onChange?: (range: TimeRange) => void;\n emitChangeOnInit?: boolean;\n selectNearDays?: number;\n presetRanges?: presetRangeType[];\n}\ntype RealTimeRangePickerProps = Omit<\n EoTimeRangePickerProps,\n keyof FormItemProps\n>;\n/**\n * 时间区间选择器\n * @author zhendonghuang\n * @category form-input-basic\n */\nexport\n@defineElement(\"eo-time-range-picker\", {\n styleTexts: [styleText, fixStyleText],\n})\nclass EoTimeRangePicker extends FormItemElementBase {\n /**\n * 时间段选择器字段名\n */\n @property() accessor name: string | undefined;\n\n /**\n * 时间段选择器说明\n */\n @property() accessor label: string | undefined;\n\n /**\n *时间段选择器的初始值\n * @default { \"startTime\": \"00:00:00\", \"endTime\": \"23:59:59\" }\n */\n @property({ attribute: false }) accessor value: TimeRange | undefined;\n\n /**\n * 是否必填\n */\n @property({ type: Boolean }) accessor required: boolean | undefined;\n\n /**\n * 时间段类型\n */\n @property({ attribute: false })\n accessor rangeType: RangeType | undefined;\n\n /**\n * 只有rangeType在`date` 和 `dateTime`下, 才支持只选择最近n天(当前时间向前n天)\n */\n @property({ type: Number })\n accessor selectNearDays: number | undefined;\n\n /**\n * @default true\n * 是否在初始化完成后额外触发一次`time.range.change`, 这里因为历史原因之前默认行为就是在初始化后会触发该事件,这里为了兼容之前的行为,默认值只能设置为 true。\n */\n @property({ type: Boolean })\n accessor emitChangeOnInit: boolean | undefined;\n\n /**\n * @default []\n * 预设时间范围快捷选择;设置了属性selectNearDays时,属性presetRanges不生效;属性rangeType为week时,presetRanges的值只能为本周、本月、本季度、今年,属性rangeType为month、quarter、year时,以此类推\n */\n @property({ attribute: false })\n accessor presetRanges: presetRangeType[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor validator: ((value: any) => MessageBody | string) | undefined;\n\n /**\n *时间段变化时触发\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<TimeRange>;\n\n handleChange = (value: TimeRange): void => {\n this.value = value;\n this.#changeEvent.emit(value);\n };\n // istanbul ignore next;\n unequal = (value: TimeRange): string => {\n if (value.startTime && value.endTime && value.startTime === value.endTime) {\n return i18n.t(`${NS}:${K.START_TIME_END_TIME_CANNOT_EQUAL}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n startTimeRequired = (value: TimeRange): string => {\n if (!value.startTime && this.required) {\n return i18n.t(`${NS}:${K.START_TIME_REQUIRED}`);\n }\n return \"\";\n };\n // istanbul ignore next;\n endTimeRequired = (value: TimeRange): string => {\n if (!value.endTime && this.required) {\n return i18n.t(`${NS}:${K.END_TIME_REQUIRED}`);\n }\n return \"\";\n };\n\n #builtInvalidator: ((value: any) => MessageBody | string)[] = [\n this.unequal,\n this.startTimeRequired,\n this.endTimeRequired,\n ];\n\n #defaultFormat = \"HH:mm:ss\";\n render() {\n let format = this.#defaultFormat;\n switch (this.rangeType as RangeType) {\n case \"date\":\n format = \"YYYY-MM-DD\";\n break;\n case \"dateTime\":\n format = `YYYY-MM-DD ${this.#defaultFormat}`;\n break;\n case \"hmTime\":\n format = `HH:mm`;\n break;\n case \"week\": //week,month,quarter,year 不设置format,使用ant.design RangePicker的默认format\n format = \"\";\n break;\n case \"month\":\n format = \"\";\n break;\n case \"quarter\":\n format = \"\";\n break;\n case \"year\":\n format = \"\";\n break;\n }\n\n return (\n <EoTimeRangePickerComponent\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n value={this.value}\n selectNearDays={this.selectNearDays}\n emitChangeOnInit={this.emitChangeOnInit}\n rangeType={this.rangeType}\n required={this.required}\n format={format}\n validator={\n (this.validator\n ? this.#builtInvalidator.concat(this.validator)\n : this.#builtInvalidator) as any\n }\n presetRanges={this.presetRanges}\n onChange={this.handleChange}\n shadowRoot={this.shadowRoot}\n needValidate={true}\n trigger=\"handleChange\"\n />\n );\n }\n}\n\nconst rangeRules = {\n date: [] as presetRangeType[],\n dateTime: [] as presetRangeType[],\n week: [presetRangeType.Today],\n month: [presetRangeType.Today, presetRangeType.ThisWeek],\n quarter: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n ],\n year: [\n presetRangeType.Today,\n presetRangeType.ThisWeek,\n presetRangeType.ThisMonth,\n presetRangeType.ThisQuarter,\n ],\n};\n\nexport function RealTimeRangePicker(\n props: RealTimeRangePickerProps\n): React.ReactElement {\n const {\n value,\n selectNearDays,\n format,\n emitChangeOnInit = true,\n presetRanges,\n onChange,\n } = props;\n const times = [\"time\", \"hmTime\"];\n const rangeType = props.rangeType ?? \"time\";\n const today = times.includes(rangeType) ? \"\" : dayjs().format(\"YYYY-MM-DD\");\n const initRange = {\n startTime: today + INIT_TIME_RANGE.startTime,\n endTime: today + INIT_TIME_RANGE.endTime,\n };\n\n const initValue: TimeRange =\n !isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? (value as TimeRange)\n : initRange;\n\n const [startTime, setStartTime] = useState(\n dayjs(initValue.startTime, format)\n );\n const [prevStartTime, setPrevStartTime] = useState(startTime?.clone());\n const [endTime, setEndTime] = useState(dayjs(initValue.endTime, format));\n const [prevEndTime, setPrevEndTime] = useState(endTime?.clone());\n\n const onStartTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setStartTime(time);\n onChange?.({\n startTime: timeString,\n endTime: endTime?.format(format),\n });\n };\n\n const onEndTimeChange = (time: Dayjs | null, timeString: string) => {\n time && setEndTime(time);\n onChange?.({\n endTime: timeString,\n startTime: startTime?.format(format),\n });\n };\n\n useEffect(() => {\n if (emitChangeOnInit && onChange) {\n onChange(times.includes(rangeType) ? INIT_TIME_RANGE : initRange);\n }\n }, [onChange]);\n\n useEffect(() => {\n if (value?.startTime) {\n const start = dayjs(value.startTime, format || \"YYYY-MM-DD\");\n setStartTime(start);\n setPrevStartTime(start);\n }\n if (value?.endTime) {\n const end = dayjs(value.endTime, format || \"YYYY-MM-DD\");\n setEndTime(end);\n setPrevEndTime(end);\n }\n }, [value]);\n\n const timeRange = (\n <div className=\"timeRange\">\n <TimePicker\n {...{ id: uniqueId(\"start-time-\") }}\n onChange={onStartTimeChange}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.startTime) ? startTime : undefined}\n format={format}\n />\n <span className=\"timeRangeSplit\">~</span>\n <TimePicker\n {...{ id: uniqueId(\"end-time-\") }}\n onChange={onEndTimeChange}\n getPopupContainer={(trigger) => trigger}\n value={!isEmpty(value?.endTime) ? endTime : undefined}\n format={format}\n />\n </div>\n );\n const presetRangeMap = {\n [presetRangeType.Today]: {\n [i18n.t(`${NS}:${K.TODAY}`)]: [dayjs().startOf(\"day\"), dayjs()],\n },\n [presetRangeType.ThisWeek]: {\n [i18n.t(`${NS}:${K.THIS_WEEK}`)]: [\n dayjs().startOf(\"week\"),\n dayjs().endOf(\"week\"),\n ],\n },\n [presetRangeType.ThisMonth]: {\n [i18n.t(`${NS}:${K.THIS_MONTH}`)]: [\n dayjs().startOf(\"month\"),\n dayjs().endOf(\"month\"),\n ],\n },\n [presetRangeType.ThisQuarter]: {\n [i18n.t(`${NS}:${K.THIS_QUARTER}`)]: [\n dayjs().startOf(\"quarter\"),\n dayjs().endOf(\"quarter\"),\n ],\n },\n [presetRangeType.ThisYear]: {\n [i18n.t(`${NS}:${K.THIS_YEAR}`)]: [\n dayjs().startOf(\"year\"),\n dayjs().endOf(\"year\"),\n ],\n },\n };\n\n const presetRange = useMemo(() => {\n const rangeResult = [];\n if (!selectNearDays && !times.includes(rangeType)) {\n const compliantRanges = difference(\n presetRanges,\n (rangeRules as any)[rangeType]\n );\n for (const i of compliantRanges) {\n const list = Object.entries(presetRangeMap[i])[0];\n rangeResult.push({ label: list[0], value: list[1] });\n }\n }\n return rangeResult;\n }, [rangeType, selectNearDays, presetRanges]);\n const rangeChange = (dates: any) => {\n setStartTime(dates?.[0]);\n setEndTime(dates?.[1]);\n onChange?.({\n startTime: dates?.[0].format(format || \"YYYY-MM-DD\"), //week,month,quarter,year 的format为\"\",比如rangeType为quarter,直接返回2022-Q3的这种格式的数据,目前看起来还不是平台通用的,还是先默认转换成\"YYYY-MM-DD\"\n endTime: dates?.[1].format(format || \"YYYY-MM-DD\"),\n });\n };\n\n const needConfirm = useRef(false);\n const onOpenChange = (open: boolean) => {\n if (!open && needConfirm.current) {\n setStartTime(prevStartTime);\n setEndTime(prevEndTime);\n } else {\n needConfirm.current = true;\n }\n };\n\n const rangeOk = (selectedTime: any) => {\n needConfirm.current = false;\n const dates = selectedTime as [Dayjs, Dayjs];\n setPrevStartTime(dates?.[0]?.clone());\n setPrevEndTime(dates?.[1]?.clone());\n };\n\n const disabledDate = (current: Dayjs) => {\n if (!selectNearDays) {\n return false;\n }\n const tooSelectNearDays =\n current <= dayjs().subtract(selectNearDays, \"days\") ||\n current > dayjs().endOf(\"day\");\n return !!tooSelectNearDays;\n };\n\n const dateRange = (\n <DatePicker.RangePicker\n style={{ width: 400 }}\n showTime={(rangeType as RangeType) === \"dateTime\"}\n picker={(rangeType as RangeType) === \"dateTime\" ? \"date\" : rangeType}\n value={\n (!isEmpty(value?.startTime) || !isEmpty(value?.endTime)\n ? [startTime, endTime]\n : []) as any\n }\n presets={presetRange as any}\n format={format}\n onChange={rangeChange}\n onOpenChange={onOpenChange}\n onOk={rangeOk}\n disabledDate={disabledDate}\n separator={\"~\"}\n getPopupContainer={(trigger) => trigger}\n suffixIcon={<WrappedIcon icon=\"calendar\" lib=\"easyops\" />}\n />\n );\n const range = times.includes(rangeType) ? timeRange : dateRange;\n\n return <div>{range}</div>;\n}\n\nexport function EoTimeRangePickerComponent(props: EoTimeRangePickerProps) {\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem {...(omit(props, [\"shadowRoot\"]) as any)}>\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n <div\n onChange={(e) => {\n e.stopPropagation();\n }}\n >\n <RealTimeRangePicker\n format={props.format}\n value={props.value}\n rangeType={props.rangeType}\n onChange={props.onChange}\n emitChangeOnInit={props.emitChangeOnInit}\n selectNearDays={props.selectNearDays}\n presetRanges={props.presetRanges}\n />\n </div>\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root{--radio-dashboard-selected-bg:#ffffff;--radio-dashboard-disabled-bg:#e8e8e8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--radio-dashboard-selected-bg:#414145;--radio-dashboard-disabled-bg:#3d3d43}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.complete-container{position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.optionContainer{display:flex;flex-direction:column;margin:2px 4px;padding:5px 12px;cursor:pointer;border-radius:var(--medius-border-radius)}.optionContainer .label{line-height:22px}.optionContainer .caption{font-size:var(--auxiliary-font-size-small);color:var(--color-secondary-text);line-height:20px}.optionContainer:hover{background-color:var(--antd-select-item-active-bg)}.groupWrapper .optionContainer{padding-left:24px}.groupItem{color:var(--antd-text-color-secondary);font-size:12px;margin:2px 4px;padding:5px 12px}.selectedOption{background-color:var(--color-info-icon-bg)}.dropDownWrapper{position:absolute;box-sizing:border-box;width:100%;max-height:256px;overflow:scroll;background-color:var(--antd-select-dropdown-bg);box-shadow:var(--antd-box-shadow-base);z-index:1050;margin-top:5px;padding:4px 2px;border-radius:var(--small-border-radius)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.checkboxWrapper{display:flex;flex-wrap:wrap;gap:12px 16px}.checkboxLabel{font-size:14px;line-height:1.57;display:inline-flex;align-items:baseline;cursor:pointer;line-height:22px;text-align:center;box-sizing:22px;padding:1px 4px;border-radius:var(--medius-border-radius)}.checkboxLabelDisabled{cursor:not-allowed;color:var(--text-color-disabled)}.checkboxInputWrapper{position:relative;top:0.2em}.checkboxInputWrapperDisabled{cursor:not-allowed}.checkboxLabel .checkboxInput{height:16px;width:16px;z-index:1;cursor:pointer;margin:0px;position:absolute;opacity:0}.checkboxLabel .checkboxInput[type=\"checkbox\"]:checked{color:black;background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInner{border-radius:3px;position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);box-sizing:border-box;border-collapse:separate;transition:all 0.3s}.checkboxLabel:hover .checkboxInner{background-color:var(--color-fill-bg-base-1)}.checkboxLabel:active .checkboxInner{background-color:var(--color-info-icon-bg)}.checkboxLabel .checkboxInputCheck .checkboxInner,\n.checkboxLabel .checkboxInputPartCheck .checkboxInner{background-color:var(--antd-checkbox-color);border-color:var(--antd-checkbox-color)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabelDisabled .checkboxInputCheck .checkboxInner::after{background-color:inherit;border-color:var(--color-disabled-text)}.checkboxLabel .checkboxInner::after{position:absolute;top:45%;left:3px;display:table;width:0.2em;height:0.5em;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all 0.1s cubic-bezier(0.71,-0.46,0.88,0.6),opacity 0.1s;content:\" \"}.checkboxLabel .checkboxInputCheck .checkboxInner::after{transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all 0.2s cubic-bezier(0.12,0.4,0.29,1.46) 0.1s}.checkboxLabelCheck{background:var(--checkbox-bg-active)}.checkboxLabel .checkboxInputPartCheck .checkboxInner::after{height:2px;background-color:#fff;width:8px;border:0;left:50%;opacity:1;transform:translate(-50%,-50%) scale(1)}.checkboxLabel .checkboxInputDisabled{cursor:not-allowed}.checkboxLabel:hover{background:var(--checkbox-bg-hover)}.checkboxLabel .checkboxText{padding:0 8px}.iconCheckbox,\n.disabledIconCheckbox{position:relative;display:inline-block;width:104px;height:104px;margin-right:12px;text-align:center;cursor:pointer}.iconCustomCheckbox,\n.disabledIconCustomCheckbox{width:186px;height:114px;margin:0 15px 20px 0}.disabledIconCheckbox,\n.disabledIconCustomCheckbox{background-color:var(--input-outline-disabled)}.disabledIconCheckbox input[type=\"checkbox\"]::before, .disabledIconCustomCheckbox input[type=\"checkbox\"]::before{cursor:not-allowed}.disabledIconCheckbox .content .text, .disabledIconCustomCheckbox .content .text{color:var(--antd-checkbox-custom-type-disabled-color)}.iconCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox:hover input[type=\"checkbox\"]::before{border:1px solid var(--color-brand-hover)}.iconCustomCheckbox input[type=\"checkbox\"]:checked::before{border:1px solid var(--color-brand-hover)}.iconCheckbox.content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.inputBox{padding:5px;text-align:right;line-height:15px}.inputBox input[type=\"checkbox\"]::before{content:\"\";position:absolute;width:100%;height:100%;border-radius:6px;border:1px solid var(--color-border-divider-line);cursor:pointer;top:0;left:0}.collapse-wrapper{margin-top:4px}.collapse-header{padding:0px 16px 12px 40px;position:relative;margin-left:0px;margin-top:-4px}.collapse-content{padding:0px 16px 12px 40px;margin-top:-4px;display:none}.collapse-content-visible{display:block}.collapse-header .collapse-icon{position:absolute;left:16px}.collapse-header .checkboxLabel{margin-left:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.confirmDisabled .ant-picker-ok .ant-btn{color:var(--text-color-disabled);background:\"red\";border-color:var(--antd-border-color-base);text-shadow:none;box-shadow:none;pointer-events:none}.quarterPicker .quarterContent{left:auto;display:flex;align-items:center;justify-content:center;width:60%;padding:4px}.quarterPicker .quarterContent:hover{background:var(--antd-picker-basic-cell-hover-bg)}.quarterPicker .selectedQuarter{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-quarter-panel .ant-picker-content tr{display:flex;flex-wrap:wrap}.quarterPicker .ant-picker-quarter-panel .ant-picker-content td{display:flex;align-items:center;justify-content:center;width:50%;height:50%;padding:20px}.quarterPicker .ant-picker-cell-selected::before{color:var(--antd-picker-panel-cell-selected-color);background:var(--antd-picker-panel-cell-selected-bg)}.quarterPicker .ant-picker-cell::before{right:auto;left:auto;display:flex;align-items:center;justify-content:center;width:60%;display:none}.quarterPicker .ant-picker-cell:hover::before{background:var(--antd-picker-basic-cell-hover-bg);cursor:not-allowed}.pickerBtnWrap{box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:\"tnum\";padding:0 8px;position:relative;display:inline-flex;align-items:center;background:var(--antd-component-background);border:1px solid var(--antd-border-color-base);border-radius:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pre,\n.current,\n.next{position:relative;display:flex;align-items:center;line-height:1;padding:4px;cursor:pointer}.pre:hover,\n.current:hover,\n.next:hover{color:var(--antd-link-color)}.pre:hover .anticon-left,\n.pre:hover .anticon-right,\n.current:hover .anticon-left,\n.current:hover .anticon-right,\n.next:hover .anticon-left,\n.next:hover .anticon-right{color:var(--antd-link-color)}.nextDisabled{color:var(--text-color-disabled);background:var(--antd-background-color-base);pointer-events:none}.pickerWrap{display:flex;gap:10px}.pickerWrap .current{padding:4px 20px}.pickerWrap .current::after,\n.pickerWrap .current::before{content:\"\";position:absolute;top:50%;width:1px;height:70%;transform:translateY(-50%);background:var(--antd-border-color-base)}.pickerWrap .current::after{right:10px}.pickerWrap .current::before{left:10px}.pickerWrap .anticon-left,\n.pickerWrap .anticon-right{color:var(--antd-border-color-base);font-size:\" 11px\"}.pickerWrap .disabledFastSelect{pointer-events:none;color:var(--text-color-disabled);background:var(--antd-background-color-base)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dynamic-form-wrapper{border-radius:6px;padding:16px;background:var(--color-fill-bg-base-1)}.remove-btn{cursor:pointer;justify-content:center;display:flex;align-items:center;width:16px;height:16px;border:1px solid;border-radius:50%;line-height:12px;padding:2px;margin-left:8px;color:var(--color-secondary-text)}.remove-btn:hover{color:var(--color-auxiliary-text)}.remove-btn:active{color:var(--color-strong-text)}.remove-btn-wrapper{padding-top:4px}.dynamic-form > *:not(.remove-btn-wrapper){flex:1;margin-right:8px}.add-btn{width:calc(100% - 38px)}.add-btn-wrapper-disabled{cursor:not-allowed}.add-btn-disabled{pointer-events:none}.dynamic-form-item:first-child .dynamic-form:has(*[label]) .remove-btn-wrapper{margin-top:22px}.remove-btn-disabled-wrapper{cursor:not-allowed}.remove-btn-disabled{pointer-events:none;cursor:not-allowed;color:var(--text-color-disabled)}.add-btn-hide{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host([hidden]){display:none}button{line-height:22px;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\";position:relative;display:inline-block;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;vertical-align:middle;background-color:var(--text-color-disabled);border:0;border-radius:100px;cursor:pointer;transition:all 0.2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch-checked{background-color:var(--antd-switch-color)}.switch-handle{position:absolute;top:2px;left:2px;width:18px;height:18px;transition:all 0.2s ease-in-out}.switch-checked .switch-handle{left:calc(100% - 18px - 2px)}.switch-checked .switch-inner{margin:0 25px 0 7px}.switch-handle::before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--antd-switch-bg);border-radius:9px;box-shadow:0 2px 4px 0 rgba(0,35,11,0.2);transition:all 0.2s ease-in-out;content:\"\"}.switch-inner{display:flex;align-items:center;margin:0 7px 0 25px;transition:margin 0.2s;color:#fff}.switch-disabled{cursor:not-allowed;opacity:0.4}.small{min-width:28px;height:16px;line-height:16px}.small .switch-handle{width:12px;height:12px}.small.switch-checked .switch-handle{left:calc(100% - 12px - 2px)}.small .switch-inner{margin:0 7px 0 18px}.small.switch-checked .switch-inner{margin:0 18px 0 7px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.show-icon{display:grid;justify-items:center;align-items:center;width:54px;height:54px;font-size:27px;line-height:54px;border-radius:50%;cursor:pointer}.show-icon.disabled{cursor:not-allowed}.preview-container{display:grid;justify-items:center;margin-bottom:20px}.show-area{display:grid;justify-items:center;align-items:center;position:relative;font-size:35px;height:70px;width:70px;border-radius:50%}.delete-wrapper{display:grid;justify-items:center;align-items:center;position:absolute;top:0;cursor:pointer;width:100%;height:100%;border-radius:50%;background-color:rgba(0,0,0,0.15);opacity:0;transition:opacity 0.3s}.show-area:hover .delete-wrapper{opacity:1}.delete-icon{display:grid;justify-items:center;align-items:center;font-size:14px;background:#ffffff;width:36px;height:36px;border-radius:50%;border:1px solid rgba(238,239,243,1)}.delete-icon:focus{background-color:#f2f2f2}.preview-icon-name{text-align:center}.select-icon-container{display:grid;grid-template-columns:80px auto;grid-row-gap:20px;row-gap:20px}.label{text-align:right;line-height:32px;font-size:14px;font-weight:400;color:rgba(102,102,102,1)}.select-color-area{display:flex}.color-box{width:38px;height:38px;border-radius:var(--larger-border-radius);cursor:pointer}.empty-color{border:var(--border-width-double-base) solid var(--color-border-divider-line);background-color:var(--color-info-white);position:relative;overflow:hidden}.empty-line{background:var(--palette-red-6);position:absolute;transform:translateX(-10px) rotate(-45deg);width:50px;margin:19px 0;height:var(--border-width-double-base)}.color-box:not(:last-child){margin-right:30px}.color-box:first-child{margin-left:22px}.select-icon-area{margin-left:22px}.select-icon-search-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.icon-area{padding-top:20px;display:grid;grid-template-columns:repeat(8,12.5%);overflow:auto;width:616px;height:218px;font-size:20px;background:var(--color-fill-bg-base-4);border-radius:var(--larger-border-radius)}.icon-container{display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;color:var(--color-normal-text);height:50px}.icon-container:hover{cursor:pointer;color:var(--color-brand)}.icon-container .icon-name{width:100%;text-align:center;font-size:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;visibility:hidden}.icon-container:hover .icon-name{visibility:visible}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.input-addon-wrapper{display:table;width:100%;line-height:22px;--input-affix-wrapper-padding:4px 10px}.input-addon-wrapper-size-large{--input-affix-wrapper-padding:8px 10px}.input-addon-wrapper-size-small{--input-affix-wrapper-padding:0 10px}.input-before-addon,\n.input-after-addon{display:table-cell;position:relative;padding:0 11px;font-size:14px;line-height:1;text-align:center;width:0;color:var(--text-color-default);background-color:var(--theme-gray-background);border:1px solid var(--color-border-divider-line);border-radius:var(--small-border-radius);transition:all 0.3s}.input-before-addon{right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.input-after-addon{left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}:host(:not([has-addon-before])) .input-before-addon{display:none}:host(:not([has-addon-after])) .input-after-addon{display:none}.input-affix-wrapper{display:inline-flex;position:relative;padding:var(--input-affix-wrapper-padding);border-radius:var(--small-border-radius);width:100%;color:var(--text-color-default);background-color:var(--antd-input-bg);border:1px solid var(--color-border-divider-line);transition:border-color 0.3s,box-shadow 0.3s;overflow:visible}:host([has-addon-before]) .input-affix-wrapper{border-top-left-radius:0;border-bottom-left-radius:0}:host([has-addon-after]) .input-affix-wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-input-hover-border-color);z-index:1}.input-affix-wrapper:focus,\n.input-affix-wrapper-focused{border-color:var(--antd-input-focus-border-color);box-shadow:0 0 0 2px rgba(0,113,235,0.2);z-index:1}.input-affix-wrapper-disabled{cursor:not-allowed;color:var(--text-color-disabled);background-color:var(--theme-gray-background)}.input{flex:1;padding:0;margin:0;border:none;outline:none;font-size:14px;line-height:20px;color:inherit;background-color:transparent;cursor:inherit;width:100%}.input::placeholder{color:var(--text-color-disabled);-webkit-user-select:none;-moz-user-select:none;user-select:none}.input:placeholder-shown{text-overflow:ellipsis}.input-prefix,\n.input-suffix{display:flex;flex:none;align-items:center}.input-prefix{margin-right:4px}.input-suffix{margin-left:4px}:host(:not([has-prefix])) .input-prefix{display:none}:host(:not([has-suffix])) .input-suffix:not(:has(:not(slot))){display:none}.input-clear-icon{margin-left:4px;font-size:12px;color:var(--text-color-disabled);cursor:pointer}:host([has-suffix]) .input-clear-icon{margin-right:4px}.input-clear-icon:hover{color:var(--antd-text-color-secondary)}.input-clear-icon-hidden{visibility:hidden}.input-addon-wrapper-status-error .input-affix-wrapper{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error\n .input-affix-wrapper:not(.input-affix-wrapper-disabled):hover{border-color:var(--antd-error-color)}.input-addon-wrapper-status-error .input-affix-wrapper:focus,\n.input-addon-wrapper-status-error .input-affix-wrapper-focused{border-color:var(--antd-error-color);box-shadow:0 0 0 2px var(--antd-error-color-fade-20)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radio-group{display:flex;flex-wrap:wrap;gap:12px 16px}:host([type=\"default\"]) .radio-item{position:relative;display:inline-flex;align-items:center;text-align:center;cursor:pointer;gap:8px}:host([type=\"default\"]) .radio-item .raido{box-sizing:border-box;margin:0;padding:0;color:var(--ant-color-text);font-size:var(--ant-font-size);line-height:var(--ant-line-height);list-style:none;position:relative;display:inline-block;outline:none;cursor:pointer;align-self:center;border-radius:50%}:host([type=\"default\"]) .radio-item .raido input[type=\"radio\"]{position:absolute;inset:0;z-index:1;cursor:pointer;opacity:0}:host([type=\"default\"]) .radio-item .raido::after{position:absolute;inset-block-start:0;inset-inline-start:0;width:100%;height:100%;border:1px solid var(--color-brand);border-radius:50%;visibility:hidden;content:\"\"}:host([type=\"default\"]) .radio-item .raido .radio-inner{box-sizing:border-box;position:relative;inset-block-start:0;inset-inline-start:0;display:block;width:16px;height:16px;background-color:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);border-radius:50%;transition:all 0.3s}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked{border-color:var(--color-brand);background-color:var(--color-brand)}:host([type=\"default\"]) .radio-item .raido .radio-inner.checked::after{transform:scale(0.375);opacity:1}:host([type=\"default\"]) .radio-item .raido .radio-inner::after{box-sizing:border-box;position:absolute;inset-block-start:50%;inset-inline-start:50%;display:block;width:16px;height:16px;-webkit-margin-before:-8px;margin-block-start:-8px;-webkit-margin-start:-8px;margin-inline-start:-8px;background-color:var(--color-fill-bg-container-1);-webkit-border-before:0;border-block-start:0;-webkit-border-start:0;border-inline-start:0;border-radius:16px;transform:scale(0);opacity:0;transition:all 0.3s cubic-bezier(0.78,0.14,0.15,0.86);content:\"\"}:host([type=\"default\"]) .radio-item input[type=\"radio\"]{width:16px;height:16px;vertical-align:middle;margin-top:0px}:host([type=\"default\"]) .radio-item .content{display:flex;align-items:center}:host([type=\"default\"]) .radio-item.disabled .radio-inner{background-color:var(--input-outline-disabled)}:host([type=\"default\"]) .radio-item.disabled .radio-inner.checked{background-color:var(--color-disabled-text);border-color:var(--color-disabled-text)}:host([type=\"default\"]) .radio-item:not(.disabled):hover .radio-inner{border:1px solid var(--color-brand)}:host([type=\"icon\"]) .radio-item{position:relative;display:inline-block;width:104px;height:104px;text-align:center;cursor:pointer}:host([type=\"icon\"]) .radio-item input[type=\"radio\"]{width:0px;height:0px}:host([type=\"icon\"]) .radio-item.checked .content{border-color:var(--color-brand);color:var(--color-brand)}:host([type=\"icon\"]) .radio-item .content{position:absolute;width:100%;height:100%;top:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--color-fill-bg-container-1);color:var(--color-normal-text);border-radius:var(--medius-border-radius);border:var(--border-width-base) solid var(--color-border-divider-line)}:host([type=\"icon\"]) .radio-item:not(.disabled):hover .content{border-color:var(--color-brand-hover)}:host([type=\"icon\"]) .radio-item.disabled .content{background-color:var(--input-outline-disabled)}:host([type=\"button\"]){width:-webkit-max-content;width:-moz-max-content;width:max-content}:host([type=\"button\"]) .radio-group{gap:0}:host([type=\"button\"]) .radio-item{position:relative;display:inline-block;margin:0;margin-left:-1px;padding:0;color:var(--antd-btn-default-color);font-size:14px;background:var(--antd-btn-default-bg);border:1px solid var(--antd-border-color-base);cursor:pointer;transition:color 0.3s,box-shadow 0.3s}:host([type=\"button\"]) .radio-item:first-child{border-radius:var(--small-border-radius) 0 0 var(--small-border-radius);margin-left:0px}:host([type=\"button\"]) .radio-item:last-child{border-radius:0 var(--small-border-radius) var(--small-border-radius) 0}:host([type=\"button\"]) .radio-item.checked.disabled{background-color:var(--color-border-divider-line)}:host([type=\"button\"]) .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .radio-item.checked:not(.disabled){border-color:var(--antd-radio-dot-color);background-color:var(--antd-radio-dot-color);color:#fff;margin-right:-1px;z-index:1}:host([type=\"button\"]) .radio-item.checked:not(.disabled) .button-content:not(.disabled):hover{color:inherit}:host([type=\"button\"]) .radio-item input[type=\"radio\"]{width:0;height:0;position:absolute}:host([type=\"button\"]) .radio-item .button-content{padding:0 15px}:host([type=\"button\"]) .radio-item .button-content:not(.disabled):hover{color:var(--antd-radio-dot-color)}:host([type=\"button\"]) .dashboard{border-radius:var(--small-border-radius);border:none;background-color:var(--antd-dashboard-radio-bg)}:host([type=\"button\"]) .dashboard .radio-item{background:var(--antd-dashboard-radio-item-bg);font-size:14px;color:var(--antd-dashboard-radio-item-color);border:none;margin:3px 0;border-radius:var(--medius-border-radius)}:host([type=\"button\"]) .dashboard .radio-item:first-child{margin-left:3px}:host([type=\"button\"]) .dashboard .radio-item:last-child{margin-right:3px}:host([type=\"button\"]) .dashboard .radio-item .button-content:not(.disabled):hover{color:var(--antd-dashboard-radio-item-checked-color)}:host([type=\"button\"]) .dashboard .radio-item.disabled{color:var(--color-disabled-text)}:host([type=\"button\"]) .dashboard .radio-item.checked.disabled{background-color:var(--radio-dashboard-disabled-bg)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(.disabled){color:var(--antd-dashboard-radio-item-checked-color);background-color:var(--radio-dashboard-selected-bg);border-radius:var(--small-border-radius);font-weight:var(--font-weight-500)}:host([type=\"button\"]) .dashboard .radio-item.checked:not(:first-child){margin-left:-1px}:host([type=\"button\"]) .dashboard .radio-item:not(:last-child)::after{position:absolute;top:50%;right:0px;display:block;box-sizing:content-box;width:1px;height:calc(100% - 14px);background-color:var(--antd-border-color-base);transition:background-color 0.3s;content:\"\";transform:translateY(-50%)}:host([type=\"button\"]) .dashboard .radio-item.checked::after{width:0}:host([type=\"icon-circle\"]) .radio-item, :host([type=\"icon-square\"]) .radio-item{position:relative;display:inline-block;width:auto;text-align:center;cursor:pointer;line-height:1}:host([type=\"icon-circle\"]) .radio-item input[type=\"radio\"], :host([type=\"icon-square\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item:not(.disabled):hover .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item:not(.disabled):hover .icon-content .square-icon{border-color:var(--color-brand-hover)}:host([type=\"icon-circle\"]) .radio-item .icon-content, :host([type=\"icon-square\"]) .radio-item .icon-content{color:var(--color-normal-text)}:host([type=\"icon-circle\"]) .radio-item .icon-content > span, :host([type=\"icon-square\"]) .radio-item .icon-content > span{width:93px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon, :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon{border-radius:50%}:host([type=\"icon-circle\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item .icon-content .square-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:auto auto 6px;background:var(--color-fill-bg-container-1);border:1px solid var(--color-border-divider-line);width:94px;height:94px;font-size:46px;box-sizing:border-box}:host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.disabled .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.disabled .icon-content .square-icon{background-color:var(--input-outline-disabled)}:host([type=\"icon-circle\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .circle-icon,\n :host([type=\"icon-circle\"]) .radio-item.checked .icon-content .square-icon,\n :host([type=\"icon-square\"]) .radio-item.checked .icon-content .square-icon{border-color:1px solid var(--color-brand);color:var(--color-brand);border-width:var(--border-width-double-base)}:host([type=\"custom\"]) .radio-item{position:relative;display:inline-block;width:212px;height:271px;text-align:center;cursor:pointer}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]{width:0;height:0}:host([type=\"custom\"]) .radio-item input[type=\"radio\"]:checked ~ .custom-content{box-shadow:var(--hover-shadow)}:host([type=\"custom\"]) .radio-item .custom-content{position:absolute;width:100%;height:100%;top:0;color:var(--color-normal-text);border-radius:var(--small-border-radius)}:host([type=\"custom\"]) .radio-item:not(.disabled):hover .custom-content{box-shadow:var(--hover-shadow)}.radio-item.small{height:24px;font-size:13px;line-height:24px}.radio-item.medium{height:32px;font-size:14px}.radio-item.large{height:40px;font-size:18px;line-height:40px}.disabled,\n.disabled .content,\n.disabled .icon-content{cursor:not-allowed}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-input{display:block}.search-button{width:16px;font-size:16px;color:var(--color-secondary-text);cursor:pointer}.search-button:hover{color:var(--color-normal-text)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.select{width:100%;margin:0;padding:0;color:var(--antd-text-color);font-size:14px;position:relative;cursor:text;min-width:100px}.select-selector{position:relative;border:1px solid var(--antd-border-color-base);border-radius:var(--small-border-radius);box-sizing:border-box;background-color:var(--antd-component-background);transition:all 0.3s cubic-bezier(0.645,0.045,0.355,1);padding-right:24px}.select:not(.select-disabled):hover .select-selector{border-color:var(--antd-input-hover-border-color);z-index:1}.select:not(.select-disabled):hover .close-btn{display:block}.select-multiple .select-selector{min-height:30px;height:auto}.select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%;padding-left:10px}.select-multiple .select-selection-overflow{padding-left:4px}.selected-item{flex:none;align-self:center;max-width:100%;line-height:1;margin-top:2px}.selected-item .label{display:inline-block;margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.selector-focused{border-color:var(--antd-input-focus-border-color);border-width:1px;outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}.select-single-item{line-height:1}.selector-focused .selected-single-item{color:var(--antd-input-placeholder-color)}.select-single .select-selection-search{position:absolute;top:-2px;right:25px;bottom:0;left:10px}.select-multiple .select-selection-search{left:4px}.select-single-item .label .text{margin-right:4px}.select-multiple .select-selection-search{padding-right:22px}.select-selection-search-input{margin:0;padding:0;background:transparent;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:30px;cursor:pointer;color:var(--antd-text-color)}.select-disabled .select-selector{color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);cursor:not-allowed}.select-disabled .select-selection-search-input{cursor:not-allowed}.select-selector.is-error{border-color:var(--antd-error-color)}.close-btn{display:none}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.select-arrow{display:inline-block;color:inherit;cursor:pointer;font-style:normal;line-height:0;text-transform:none;vertical-align:-0.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:53%;right:11px;width:12px;height:12px;margin-top:-6px;color:var(--text-color-disabled);font-size:12px;line-height:1;text-align:center}.anticon{vertical-align:top;transition:0.4s rotate ease}.anticon.focus{rotate:-180deg}.select-dropdown{margin:0;padding:0;margin-top:5px;color:var(--antd-text-color);font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:\"tnum\",;position:absolute;top:100%;left:0px;width:100%;z-index:1050;box-sizing:border-box;padding:2px;overflow:hidden;font-size:14px;font-variant:initial;background-color:var(--color-fill-bg-container-4);border-radius:var(--medius-border-radius);outline:none;box-shadow:var(--feedback-container-shadow)}.dropdown-list{max-height:256px;overflow-y:scroll;overflow-anchor:none}.dropdown-inner{display:flex;flex-direction:column}.select-item{position:relative;display:block;padding:5px 12px;color:var(--antd-text-color);font-weight:normal;font-size:14px;line-height:22px;cursor:pointer;transition:background 0.3s ease;margin:2px}.select-item-option{display:flex;border-radius:var(--medius-border-radius);margin:2px}.select-item-option.disabled{cursor:not-allowed;color:var(--color-disabled-text);background:var(--antd-input-disabled-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.select-item-option-content{position:relative;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.select-item-option-content .option{display:flex;align-items:center;justify-content:space-between;margin-right:22px}.dropdown-list .option .label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:8px}.select-option-selected{background-color:var(--color-info-icon-bg)}.select-option-hover{background-color:var(--antd-select-item-active-bg)}.is-checked{display:none;position:absolute;right:0px;top:0;color:var(--color-brand)}.select-option-selected .is-checked{display:block}.input-item{min-height:28px;display:flex;align-items:center}.empty-tips{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:14px;color:var(--palette-gray-8);padding:20px}.empty-tips > span{margin-left:-4px;margin-top:8px;color:var(--color-secondary-text)}.select-group-wrapper .select-group-label{padding-left:12px;color:var(--antd-text-color-secondary);font-size:12px;cursor:default}.select-group-wrapper .select-item-option{padding-left:24px}.dropdown-list-loading-container{height:40px;display:flex;align-items:center;justify-content:center;background:rgba(var(--antd-component-background),0.7);font-size:24px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.submitBtn{margin-right:8px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `textarea{width:100%;padding:4px 11px;color:var(--antd-input-color);background:var(--antd-input-bg);box-sizing:border-box;border-radius:var(--antd-button-border-radius);border:1px solid var(--antd-input-border-color);line-height:1.5715}textarea:not(:disabled):hover{border:1px solid var(--antd-input-hover-border-color)}textarea:not(:disabled):focus{border:1px solid var(--antd-input-focus-border-color);outline:0;box-shadow:0 0 0 2px rgb(0 113 235/20%)}textarea:disabled{cursor:not-allowed;color:var(--text-color-disabled);background:var(--antd-input-disabled-bg);resize:none}textarea::placeholder{color:var(--antd-input-placeholder-color)}textarea.error{border-color:var(--antd-error-color)}textarea.error:hover{border-color:var(--antd-error-color)}textarea.error:focus{border-color:var(--antd-error-color)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.ant-picker{border-radius:var(--small-border-radius);height:30px}.ant-picker-dropdown .ant-picker-panel-container{border:var(--medius-border-radius)}.ant-picker-dropdown .ant-picker-panel > .ant-picker-time-panel{padding-top:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell{margin-inline:0}.ant-picker-dropdown\n .ant-picker-time-panel-column\n > li.ant-picker-time-panel-cell\n .ant-picker-time-panel-cell-inner{width:auto;border-radius:0}.ant-picker-dropdown .ant-picker-time-panel-column{margin:0}.ant-picker-dropdown .ant-picker-ranges{margin-top:0px;padding:3px 10px;background-color:var(--color-fill-bg-base-3)}.ant-btn{box-shadow:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.timeRange{display:flex;align-items:center}.timeRange .timeRangeSplit{width:32px!important;height:30px;background:var(--input-fill-bg);pointer-events:none;border-left:0;border-right:0;display:inline-flex;justify-content:center;pointer-events:none;border-color:var(--antd-border-color-base);border-style:solid;border-top-width:1px;border-bottom-width:1px;align-items:center;color:var(--text-color-disabled);box-sizing:border-box}.timeRange .ant-picker:first-child{margin-right:0;border-top-right-radius:0px;border-bottom-right-radius:0px}.timeRange .ant-picker:last-child{margin-right:0;border-top-left-radius:0px;border-bottom-left-radius:0px}.timeRange\n .ant-picker-dropdown\n .ant-picker-panel-container\n .ant-picker-footer\n .ant-picker-ranges{margin-top:0px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}@keyframes loadingCircle{100%{transform:rotate(360deg)}}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.upload-drag-button{padding:36px 0 24px 0;border-radius:var(--larger-border-radius);background:var(--antd-upload-drag-bg);border:1px dashed var(--antd-upload-drag-border-color);cursor:pointer}.upload-drag-button:hover,\n.upload-drag-button-drag-over{background:var(--antd-upload-drag-hover-bg);border-color:var(--antd-upload-drag-hover-border-color)}.upload-drag-button-inner{display:flex;flex-direction:column;align-items:center;pointer-events:none}.upload-drag-button-icon{height:42px;font-size:153.6px}.upload-drag-text{margin-top:15px;font-size:14px;color:var(--text-color-title);line-height:20px}.upload-drag-text strong{color:var(--color-brand)}.upload-drag-tip{margin-top:8px;font-size:12px;color:var(--text-color-secondary);line-height:17px}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.upload-item-container{padding:2px 8px;border-radius:var(--larger-border-radius);overflow:hidden;cursor:pointer}.upload-item-inner{position:relative;display:flex;align-items:center;gap:5px}.upload-item-icon{font-size:14px}.upload-icon{animation:loadingCircle 1s infinite linear}.upload-item-infos{flex:1;display:flex;flex-direction:column;padding-right:16px;gap:5px}.upload-item-file-name{font-size:12px;line-height:17px}.upload-item-operators{position:absolute;top:1px;right:0}.delete-icon{opacity:0;font-size:14px}.upload-item-container-uploading .upload-item-icon{color:var(--text-color-secondary)}.upload-item-container-uploading .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-uploading .delete-icon{color:var(--text-color-disabled)}.upload-item-container-uploading:hover{background:var(--antd-upload-list-type-picture-bg)}.upload-item-container-uploading:hover .delete-icon{opacity:1}.upload-item-container-uploading .delete-icon:hover{color:var(--text-color-default)}.upload-item-container-done .upload-item-icon,\n.upload-item-container-done .upload-item-file-name{color:var(--text-color-default)}.upload-item-container-done .delete-icon{color:var(--text-color-disabled)}.upload-item-container-done:hover{background:var(--antd-upload-list-type-picture-hover-bg)}.upload-item-container-done:hover .upload-item-icon,\n.upload-item-container-done:hover .upload-item-file-name{color:var(--color-brand)}.upload-item-container-done:hover .delete-icon{opacity:1}.upload-item-container-done .delete-icon:hover{color:var(--color-error)}.upload-item-container-error .upload-item-icon,\n.upload-item-container-error .upload-item-file-name{color:var(--color-error)}.upload-item-container-error .delete-icon{opacity:1;color:var(--color-error)}.upload-item-container-error:hover{background:var(--palette-red-1)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}eo-icon{line-height:0.25em}.upload-wrapper{line-height:initial}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:7px}.image-item{padding:12px 20px;border-radius:var(--larger-border-radius);cursor:pointer}.image-item-inner{position:relative;display:flex;gap:12px}.image{width:38px;height:38px}.infos{flex:1;display:flex;flex-direction:column}.file-name{font-size:14px;font-weight:var(--font-weight-500);color:var(--text-color-default);line-height:20px;margin-bottom:4px}.progress{width:100%;height:4px;background:#ffffff;border-radius:var(--small-border-radius);margin:8px 0}.more-info{display:flex;align-items:center;gap:10px}.image-size{font-size:12px;color:var(--text-color-default);line-height:18px}.file-size{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.progress-info{font-size:12px;font-weight:var(--font-weight-500);color:var(--text-color-disabled);line-height:18px}.error-info{font-size:12px;color:var(--color-error);line-height:18px}.operators{position:absolute;top:0;right:0}.delete-icon{opacity:0;font-size:16px}.image-item-done{background:var(--antd-upload-list-type-picture-bg);border:1px solid var(--antd-upload-list-type-picture-border-color)}.image-item-done:hover{background:var(--palette-blue-1);border-color:var(--palette-blue-1)}.image-item-done:hover .delete-icon{opacity:1}.image-item-done .delete-icon{color:var(--text-color-disabled)}.image-item-done .delete-icon:hover{color:var(--color-error)}.image-item-uploading{background:var(--antd-upload-list-type-picture-bg);border:1px dashed var(--antd-upload-list-type-picture-border-color)}.image-item-uploading:hover{background:var(--antd-upload-list-type-picture-hover-bg);border-color:var(--antd-upload-list-type-picture-hover-bg)}.image-item-uploading:hover .delete-icon{opacity:1}.image-item-uploading .delete-icon{color:var(--text-color-disabled)}.image-item-uploading .delete-icon:hover{color:var(--text-color-default)}.image-item-error{background:var(--palette-red-1);border:1px solid var(--theme-orangered-border-color)}.image-item-error .delete-icon{opacity:1;color:var(--color-error)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","!function(e,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],_):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){\"use strict\";function _(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=_(e),d={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(e,_){return\"W\"===_?e+\"周\":e+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(e,_){var t=100*e+_;return t<600?\"凌晨\":t<900?\"早上\":t<1100?\"上午\":t<1300?\"中午\":t<1800?\"下午\":\"晚上\"}};return t.default.locale(d,null,!0),d}));","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isoWeek=t()}(this,(function(){\"use strict\";var e=\"day\";return function(t,i,s){var a=function(t){return t.add(4-t.isoWeekday(),e)},d=i.prototype;d.isoWeekYear=function(){return a(this).year()},d.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var i,d,n,o,r=a(this),u=(i=this.isoWeekYear(),d=this.$u,n=(d?s.utc:s)().year(i).startOf(\"year\"),o=4-n.isoWeekday(),n.isoWeekday()>4&&(o+=7),n.add(o,e));return r.diff(u,\"week\")+1},d.isoWeekday=function(e){return this.$utils().u(e)?this.day()||7:this.day(this.day()%7?e:e-7)};var n=d.startOf;d.startOf=function(e,t){var i=this.$utils(),s=!!i.u(t)||t;return\"isoweek\"===i.p(e)?s?this.date(this.date()-(this.isoWeekday()-1)).startOf(\"day\"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf(\"day\"):n.bind(this)(e,t)}}}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return fn;\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}"],"names":["_Input","defineElement","property","event","method","createDecorators","WrappedIcon","wrapBrick","WrappedFormItem","_dec","styleTexts","styleText","alias","_dec2","_dec3","_dec4","type","Boolean","_dec5","_dec6","Number","_dec7","_dec8","attribute","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_dec21","_dec22","_dec23","_dec24","_dec25","_dec26","_dec27","_RCInputRef","WeakMap","_A","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_changeEvent","_T","_U","_V","_W","_X","_getSlotByName","WeakSet","Input","FormItemElementBase","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","get","_get_changeEvent2","set","_set_changeEvent2","writable","value","createRef","_initProto","_init_name","_init_label","_init_required","_init_pattern","_init_max","_init_min","_init_message","_init_value","_init_placeholder","_init_disabled","_init_readonly","_init_clearable","_init_autoFocus","_init_type","_init_size","_init_minLength","_init_maxLength","_init_inputStyle","_init_changeEvent","_defineProperty","this","_classPrivateFieldGet","emit","_init_hasAddonBefore","_init_hasAddonAfter","_init_hasPrefix","_init_hasSuffix","_init_validator","ref","current","addonBefore","_classPrivateMethodGet","_getSlotByName2","call","addonAfter","prefix","suffix","addEventListener","hasAddonBefore","assignedElements","length","hasAddonAfter","hasSuffix","hasPrefix","name","v","_classPrivateFieldSet","label","required","pattern","max","min","message","placeholder","disabled","readonly","clearable","autoFocus","size","minLength","maxLength","inputStyle","focusInput","_classPrivateFieldGet2","focus","blurInput","_classPrivateFieldGet3","blur","validator","render","React","RCInput","formElement","getFormElement","curElement","renderCallback","notRender","helpBrick","validateState","readOnly","trigger","onInputChange","handleInputChange","_set_changeEvent","_get_changeEvent","_this$shadowRoot","shadowRoot","querySelector","concat","_class","e","c","_initClass","_applyDecs","o","_","has","_checkInRHS","forwardRef","props","inputRef","useRef","inputAffixWrapperRef","setValue","useState","focused","setFocused","useEffect","useImperativeHandle","options","_inputRef$current","_inputRef$current2","handleClear","part","className","classNames","style","onClick","_inputAffixWrapperRef","_inputRef$current3","contains","target","fixValue","onChange","onFocus","onBlur","getClearIcon","hidden","lib","icon","theme","onMouseDown","preventDefault","isNil","String","hiddenTextarea","_Textarea","SIZING_STYLE","_InputChangeEvent","Textarea","_get_InputChangeEvent2","_set_InputChangeEvent2","_init_autoSize","_init_textareaStyle","_init_InputChangeEvent","autoSize","textareaStyle","TextareaComponent","_set_InputChangeEvent","_get_InputChangeEvent","autoSizeStyle","setAutoSizeStyle","textareaRef","minRows","maxRows","setAutoSize","useCallback","textareaElement","textareaStyles","uiTextNode","undefined","document","createElement","setAttribute","body","appendChild","uiTextNodeStyle","window","getComputedStyle","sizingStyle","map","getPropertyValue","join","overflowY","minHeight","maxHeight","height","scrollHeight","singleRowHeight","Math","resize","calculateAutoSizeStyle","error","_objectSpread","_topics","_subUid","PubSub","publish","topic","subscribers","len","func","subscribe","fn","_this$subUid","token","toString","push","unsubscribe","m","remove","item","uid","Field","detail","field","_fields","_options","_formData","_initData","_getAllFields","FormStore","static","instance","super","Map","setField","getAllValues","setInitValue","values","isEmitValuseChange","setFieldsValue","setFieldsValueByInitData","_classPrivateFieldGet4","allFields","_getAllFields2","newFormData","Object","entries","forEach","_ref","k","includes","onValuesChanged","changedValues","allValues","resetFields","getFieldsValue","removeField","delete","validateFields","callback","results","validateField","some","result","_classPrivateFieldGet5","fieldDetail","validate","validateValue","messageBody","getName","valid","isEmpty","RegExp","test","_result","parsedValidator","_v","Array","isArray","getValueFromEvent","checked","resetValidateState","onWatch","_options$needValidate","_value","realValue","needValidate","apply","_options$needValidate2","keys","_Form","_values","_setInitValue","_valuesChangeEvent","_successEvent","_errorEvent","Form","ReactNextElement","_get_errorEvent2","_set_errorEvent2","_get_successEvent2","_set_successEvent2","_get_valuesChangeEvent2","_set_valuesChangeEvent2","_init_layout","_init_labelCol","sm","span","md","lg","xl","xxl","_init_wrapperCol","_init_valuesChangeEvent","_init_successEvent","_init_errorEvent","_init_formStyle","formStore","getInstance","handleValuesChange","isFormElement","_setInitValue2","layout","labelCol","wrapperCol","err","formStyle","FormComponent","defaultEmitValuesChange","_set_valuesChangeEvent","_get_valuesChangeEvent","_set_successEvent","_get_successEvent","_set_errorEvent","_get_errorEvent","computedStyle","useMemo","display","flexDirection","gap","_FormItem","FormItem","_init_formElement","_init_curElement","_init_valuePropsName","_init_trim","_init_trigger","_init_needValidate","valuePropsName","trim","_this$formElement","_this$formElement2","FormItemComponent","labelBrick","_props$labelCol","_props$wrapperCol","formInstance","finalWrapperCol","calcWrapperColOffsetWithoutLabel","defaultValidateState","setValidateState","$bindFormItem","originTrigger","_len","args","_key","convertToItemColName","useBrick","ReactUseMultipleBricks","formatOptions","fields","op","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_Radio","WrappedGeneralIcon","_optionsChange","_handleOptionsChange","Radio","_get_optionsChange2","_set_optionsChange2","_init_options","_init_ui","_init_customStyle","_init_useBrick","_init_optionsChange","ui","customStyle","RadioComponent","handleChange","optionsChange","_set_optionsChange","_get_optionsChange","setOptions","isEqual","option","_props$onChange","stopPropagation","dashboard","_item$icon","_item$icon2","_item$icon3","_item$icon4","iconStyle","key","isBoolean","isDisabled","htmlFor","_extends","fontSize","ReactUseBrick","data","title","marginRight","verticalAlign","xmlns","xmlnsXlink","width","id","x1","x2","y1","y2","offset","stopColor","x","y","filterUnits","dx","dy","in","stdDeviation","in2","operator","d","fill","fillRule","xlinkHref","filter","stroke","strokeLinejoin","transform","opacity","_Select","WrappedTag","onCheck","onClose","applyArgs","query","arg","_searchEvent","_focusEvent","Select","_get_focusEvent2","_set_focusEvent2","_get_searchEvent2","_set_searchEvent2","_init_mode","_init_tokenSeparators","_init_maxTagCount","_init_groupBy","_init_suffix","_init_fields","_init_useBackend","_init_debounceSearchDelay","_init_searchEvent","_init_focusEvent","Promise","resolve","then","mode","tokenSeparators","maxTagCount","groupBy","useBackend","debounceSearchDelay","SelectComponent","onSearch","handleSearch","handleFocus","_set_searchEvent","_get_searchEvent","_set_focusEvent","_get_focusEvent","_formatOptions","_props$useBackend2","onValueChange","multiple","selectRef","inputSpanRef","shouldTriggerOnValueChangeArgs","inputValue","setInputValue","inputWidth","setInputWidth","requestStatus","setRequestStatus","isDropHidden","setIsDropHidden","isFocused","setIsFocused","selectedOptions","setSelectedOptions","renderOptions","setRenderOptions","focusOptionItem","setFocusOptionItem","handleSelectorClick","newValue","newOptions","find","handleMultipleItemClose","closeValue","handleSearchQuery","_asyncToGenerator","provider","isSearchable","onValueChangeArgs","actualArgs","fetchByProvider","actualData","handleHttpError","handleDebounceBackendSearch","debounce","computedOptions","selected","_props$useBackend","matchToken","customValue","substring","handleKeydown","code","pop","index","findIndex","isEmptyValue","useLayoutEffect","_inputSpanRef$current","_inputSpanRef$current2","toLocaleUpperCase","offsetWidth","handleDocumentClick","path","composedPath","removeEventListener","renderSelector","tagList","ellipsisInfo","closable","slice","allOptions","reduce","pre","cur","renderLabel","_option$closable","color","checkable","_allOptions$find","closeable","Options","getSelectOption","_item$value","onMouseOver","onMouseLeave","_ref3","group","Empty","position","spinning","_SubmitButtons","WrappedButton","_submitEvent","_cancelEvent","SubmitButtons","_get_cancelEvent2","_set_cancelEvent2","_get_submitEvent2","_set_submitEvent2","_init_submitText","_init_cancelText","_init_disableAfterClick","_init_submitDisabled","_init_submitType","_init_cancelType","_init_submitEvent","_init_cancelEvent","disableAfterClick","submitDisabled","submitText","cancelText","submitType","cancelType","ButtonsComponent","onCancelClick","_handleCancelClick","onSubmitClick","_handleSubmitClick","_set_submitEvent","_get_submitEvent","_set_cancelEvent","_get_cancelEvent","AntdIcon","_Checkbox","_checkboxChangeEvent","_optionsChangeEvent","Checkbox","_get_optionsChangeEvent2","_set_optionsChangeEvent2","_get_checkboxChangeEvent2","_set_checkboxChangeEvent2","_init_isCustom","_init_isGroup","_init_optionGroups","_init_checkboxChangeEvent","currentSelectOption","optionGroups","before","after","_init_optionsChangeEvent","isCustom","isGroup","CheckboxComponent","handleCheckboxChange","_set_checkboxChangeEvent","_get_checkboxChangeEvent","_set_optionsChangeEvent","_get_optionsChangeEvent","_props$value","setValues","collapseKeys","setCollapseKeys","setOptionGroups","_props$optionsChange","_props$options","handleInputClick","i","splice","IconCheckbox","disabledIconCheckbox","disabledIconCustomCheckbox","iconCheckbox","iconCustomCheckbox","inputBox","defaultChecked","content","text","CheckboxItem","_props$options2","alignItems","checkboxLabel","checkboxLabelDisabled","checkboxLabelCheck","checkboxColor","checkboxInputWrapper","checkboxInputWrapperDisabled","checkboxInputCheck","checkboxInput","checkboxInputDisabled","checkboxInner","background","borderColor","checkboxText","iconNode","mergedIcon","imgSrc","imgStyle","getIcon","CheckGroupItem","_optionGroups","newOptionsKeys","n","checkOptions","intersection","checkType","newKeys","CaretRightOutlined","rotate","rev","checkboxInputPartCheck","_props$onChange2","_props$onChange3","uniq","K","NS","initializeReactI18n","en","UNIQUE","zh","WrappedForm","onValuesChange","onValidateSuccess","onValidateError","uniqueValidatorFN","properties","t","_props$curElement","_unique","_properties$message","_properties$label","fieldValue","Set","unique","_DynamicFormItem","getRealValue","_addEvent","_removeEvent","_handleAdd","_handleRemove","DynamicFormItem","_get_removeEvent2","_set_removeEvent2","_get_addEvent2","_set_addEvent2","_init_hideRemoveButton","_init_disabledRemoveButton","_init_hideAddButton","_init_disabledAddButton","_init_addEvent","_init_removeEvent","_this$getFormElement","hideRemoveButton","disabledRemoveButton","hideAddButton","disabledAddButton","DynamicFormItemComponent","handleDynamicFormChange","onAdd","onRemove","_set_addEvent","_get_addEvent","_set_removeEvent","_get_removeEvent","useTranslation","formWrapperRef","bricks","setBricks","bricksOfNoLabel","brick","omit","parsedUseBrick","flatten","handleRemoveItem","_props$onRemove","newValues","addButtonDisabled","addButtonHide","formWrapper","forms","querySelectorAll","every","hideRemoveBtn","removeBtnDisabled","category","buttonStyle","handleAddItem","_props$onAdd","_GeneralSearch","WrappedInput","_change","_handleChange","_handleDebouncedChange","_search","_handleSearch","GeneralSearch","_get_search2","_set_search2","_get_change2","_set_change2","_init_debounceTime","_init_change","_init_search","debounceTime","GeneralSearchComponent","onDebouncedChange","_set_change","_get_change","_set_search","_get_search","_onDebouncedChange","onKeyDown","slot","Colors","COLORS_MAP","green","red","blue","orange","cyan","purple","geekblue","gray","getColor","_COLORS_MAP","ICON","COLOR","SELECT_ICON","SEARCH_PLACEHOLDER","_IconSelect","getLibs","unwrapProvider","searchIcons","WrappedGeneralRadio","onOptionsChange","WrappedModal","onConfirm","onCancel","onOpen","WrappedSearch","IconSelect","IconSelectComponent","emptyIcon","modalRef","iconLibs","setIconLibs","searchParams","setSearchParams","iconList","setIconList","libs","handleSearchIcons","params","q","page","pageSize","list","previewIcon","setPreviewIcon","previewColor","setPreviewColor","_props$value2","selectedIcon","setSelectedIcon","selectedColor","setSelectedColor","clearSelect","handleColorSelect","_modalRef$current2","open","backgroundColor","modalTitle","maskClosable","closeWhenConfirm","handleModalConfirm","_modalRef$current","close","handleModalClose","handleModalOpen","newSearchParams","iconInfo","JSON","stringify","locales","UPLOAD","FILE_UPLOADING","DRAG_UPLOAD_TEXT","EXCEEDED_FILE_SIZE_LIMIT","symbolForAbortController","Symbol","for","getUid","Date","FileSizeUnit","acceptValidator","file","accepts","validAccepts","split","lowerFileName","toLowerCase","mimeType","baseMimeType","accept","startsWith","lowerType","affixList","affix","endsWith","sizeValidator","limitSize","unit","MB","reject","sizeConst","KB","GB","Error","i18n","Upload","children","itemRender","autoUpload","uploadName","action","maxCount","overMaxCountMode","beforeUploadValidators","beforeUploadUserDataProcessor","internalFileDataList","setInternalFileDataList","fileList","beforeLoadFilter","files","beforeLoadValidator","all","allSettled","_ref2","_file","validatorResult","errors","status","reason","_x","beforeLoadProcessor","fileDataList","_ref5","_ref4","userData","_x3","_x2","handleFileUpload","_ref6","existsFilesSlice","originFiles","filteredFiles","existsLength","allowCount","Infinity","validatedFiles","processedFileDataList","newFileDataList","fileData","formData","FormData","abortController","AbortController","append","req","http","request","signal","response","handleUploadSuccess","_fileData","catch","handleUploadError","_fileData$errors","uploadFile","_x4","_ref7","_x5","upload","click","uploadFiles","actions","_fileData$symbolForAb","removedFileData","abort","handleRemove","getImage","revokeUrl","url","Blob","URL","createObjectURL","image","Image","src","onload","revokeObjectURL","onerror","imageValidator","limit","naturalWidth","naturalHeight","userDataProcessor","pipes","unitFormat","_UploadImage","WrappedImage","UploadImage","_init_bucketName","_init_maxCount","_init_multiple","_init_limitSize","imageList","bucketName","UploadImageComponent","defaultUploadIcon","deleteIcon","closeIcon","wrapBrickImageRef","curValue","getBasePath","images","processedImages","_image$url","objectName","uploadActions","onlyPreview","imgList","_item$userData","_GeneralSwitch","_switchEvent","GeneralSwitch","_get_switchEvent2","_set_switchEvent2","_init_checkedText","_init_unCheckedText","_init_checkedIcon","_init_unCheckedIcon","_init_switchEvent","checkedText","unCheckedText","checkedIcon","unCheckedIcon","GeneralSwitchComponent","onSwitch","handleSwitch","_set_switchEvent","_get_switchEvent","setChecked","handleSwitchChange","_EoUploadFile","WrappedEasyopsIcon","WrappedTooltip","EoUploadFile","_init_accept","_init_buttonText","_init_buttonType","_init_buttonIcon","_init_overMaxCountMode","_init_uploadDraggable","_init_draggableUploadTip","_init_autoUpload","_init_url","_init_method","_init_uploadName","buttonText","buttonType","buttonIcon","uploadDraggable","draggableUploadTip","EoUploadFileComponent","fileTextIcon","loadingIcon","useCurrentTheme","isDragOver","setIsDragOver","isMaxQuantity","onDragEnter","onDragOver","onDragLeave","onDrop","_e$dataTransfer$files","dataTransfer","Trans","i18nKey","components","total","_EoAutoComplete","EoAutoComplete","_init_filterByCaption","filterByCaption","EoAutoCompleteComponent","filteredOptions","setFilteredOptions","active","setActive","originalOptions","walkOptions","selectedOption","caption","search","_option$options","_option$options2","toLower","cloneDeep","f","_f$options","TimePicker","InternalTimePicker","RangePicker","InternalRangePicker","assign","picker","_a","addon","renderExtraFooter","restProps","s","p","prototype","hasOwnProperty","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__rest","internalRenderExtraFooter","_InternalPanelDoNotUseOrYouWillBeFired","dayjs","customParseFormat","_EoTimePicker","fixStyleText","_openEvent","_closeEvent","_handleOpenChange","EoTimePicker","_get_closeEvent2","_set_closeEvent2","_get_openEvent2","_set_openEvent2","_init_configProps","_init_openEvent","_init_closeEvent","flag","configProps","EoTimePickerComponent","onOpenChange","_set_openEvent","_get_openEvent","_set_closeEvent","_get_closeEvent","currentTheme","locale","language","enUS","zhCN","format","cahce","createCache","ConfigProvider","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","cache","getPopupContainer","time","timeString","allowClear","initializeI18n","NEXT_DAY","TODAY","LAST_DAY","NEXT_WEEK","THIS_WEEK","LAST_WEEK","NEXT_MONTH","THIS_MONTH","LAST_MONTH","NEXT_QUARTER","THIS_QUARTER","LAST_QUARTER","NEXT_YEAR","THIS_YEAR","LAST_YEAR","FISRT_QUARTER","SECOND_QUARTER","THIRD_QUARTER","FOURTH_QUARTER","advancedFormat","isoWeek","quarterOfYear","_EoDatePicker","_okEvent","_handleOk","EoDatePicker","_get_okEvent2","_set_okEvent2","_init_showTime","_init_format","_init_picker","_init_futureDateDisabled","_init_disabledDate","_init_useFastSelectBtn","_init_okEvent","showTime","futureDateDisabled","disabledDate","useFastSelectBtn","EoDatePickerComponent","onOk","_set_okEvent","_get_okEvent","getFieldSetAndRanges","expression","fieldSet","ranges","range","isNaN","add","isInFieldSetOrRanges","fieldSetAndRanges","isEmptyFieldSetOrRanges","getFieldsFromFieldSetAndRanges","InternalStateDatePicker","confirmDisabled","setConfirmDisabled","crontab","second","minute","hour","date","month","weekday","year","hourFieldSetAndRanges","minuteFieldSetAndRanges","secondFieldSetAndRanges","yearFieldSetAndRanges","monthFieldSetAndRanges","dateFieldSetAndRanges","weekFieldSetAndRanges","isAllDate","isAllTime","handleDisabledFutureDate","isDatePicker","isQuarterPicker","PickerBtn","strs","week","quarter","currentDate","disabledFastSelect","handlePreTime","preDate","clone","subtract","LeftOutlined","handleCurTime","curDate","startOf","next","nextDisabled","handleNextTime","nextDate","RightOutlined","cellRender","info","quarterMap","selectedQuarter","currentQuarter","originNode","DatePicker","popupClassName","quarterPicker","suffixIcon","curYear","curMonth","curWeekday","isoWeekday","cron","disabledTime","curHour","curMinute","currentSecond","disabledHours","disabledMinutes","disabledSeconds","matchCurDate","isMatchDate","hourFields","minuteFields","secondFields","_objectWithoutProperties","_excluded","parseValue","moment","dateString","_props$onOk","START_TIME_END_TIME_CANNOT_EQUAL","START_TIME_REQUIRED","END_TIME_REQUIRED","_EoTimeRangePicker","INIT_TIME_RANGE","startTime","endTime","presetRangeType","_builtInvalidator","_defaultFormat","EoTimeRangePicker","_init_rangeType","_init_selectNearDays","_init_emitChangeOnInit","_init_presetRanges","unequal","startTimeRequired","endTimeRequired","rangeType","selectNearDays","emitChangeOnInit","presetRanges","EoTimeRangePickerComponent","rangeRules","dateTime","Today","ThisWeek","ThisMonth","ThisQuarter","RealTimeRangePicker","_props$rangeType","times","today","initRange","initValue","setStartTime","prevStartTime","setPrevStartTime","setEndTime","prevEndTime","setPrevEndTime","start","end","timeRange","uniqueId","onStartTimeChange","onEndTimeChange","presetRangeMap","endOf","ThisYear","presetRange","rangeResult","compliantRanges","difference","needConfirm","dateRange","presets","dates","selectedTime","_dates$","_dates$2","separator","___CSS_LOADER_EXPORT___","module","exports","default","weekdays","weekdaysShort","weekdaysMin","months","monthsShort","ordinal","weekStart","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","l","ll","lll","llll","relativeTime","future","past","mm","h","hh","dd","M","MM","yy","meridiem","a","isoWeekYear","$utils","u","r","$u","utc","diff","day","bind","ceil","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","api","update","newObj","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","HTMLIFrameElement","contentDocument","head","getTarget","element","attributes","styleElement","nonce","needLayer","btoa","unescape","encodeURIComponent","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","receiver","privateSet","TypeError"],"sourceRoot":""}
|