@ibiz-template/vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.13

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.
Files changed (114) hide show
  1. package/dist/ibiz-markdown-editor-0VHzFa2l.js +1 -0
  2. package/dist/index-LzKAcXeH.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-TYKjfyR5.js → wang-editor-Iw-hqw1q.js} +1 -1
  6. package/dist/{xlsx-util-Q9msA8ef.js → xlsx-util-FnTIZeKq.js} +1 -1
  7. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  8. package/es/control/calendar/components/calendar-user/calendar-user.mjs +76 -2
  9. package/es/control/data-view/data-view.d.ts +1 -1
  10. package/es/control/data-view/index.d.ts +1 -1
  11. package/es/control/form/form/index.mjs +2 -0
  12. package/es/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  13. package/es/control/form/form-detail/form-iframe/form-iframe.d.ts +29 -0
  14. package/es/control/form/form-detail/form-iframe/form-iframe.mjs +53 -0
  15. package/es/control/form/form-detail/form-iframe/form-iframe.provider.d.ts +13 -0
  16. package/es/control/form/form-detail/form-iframe/form-iframe.provider.mjs +21 -0
  17. package/es/control/form/form-detail/form-iframe/index.d.ts +25 -0
  18. package/es/control/form/form-detail/form-iframe/index.mjs +12 -0
  19. package/es/control/form/form-detail/form-item/form-item.css +1 -1
  20. package/es/control/form/form-detail/form-item/form-item.mjs +6 -4
  21. package/es/control/form/form-detail/index.d.ts +1 -0
  22. package/es/control/form/form-detail/index.mjs +1 -0
  23. package/es/control/form/index.mjs +1 -0
  24. package/es/control/gantt/gantt.d.ts +1 -1
  25. package/es/control/gantt/index.d.ts +1 -1
  26. package/es/control/grid/grid/grid.d.ts +1 -1
  27. package/es/control/grid/grid/index.d.ts +1 -1
  28. package/es/control/grid/grid/index.mjs +2 -0
  29. package/es/control/grid/grid-column/grid-field-column/grid-field-column.d.ts +4 -4
  30. package/es/control/grid/grid-column/grid-field-column/grid-field-column.mjs +5 -8
  31. package/es/control/grid/virtualized-table/index.d.ts +136 -0
  32. package/es/control/grid/virtualized-table/index.mjs +18 -0
  33. package/es/control/grid/virtualized-table/virtualized-table.css +1 -0
  34. package/es/control/grid/virtualized-table/virtualized-table.d.ts +200 -0
  35. package/es/control/grid/virtualized-table/virtualized-table.mjs +325 -0
  36. package/es/control/grid/virtualized-table/virtualized-table.provider.d.ts +10 -0
  37. package/es/control/grid/virtualized-table/virtualized-table.provider.mjs +14 -0
  38. package/es/control/grid/virtualized-table/virtualized-table.util.d.ts +95 -0
  39. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +191 -0
  40. package/es/control/index.mjs +1 -0
  41. package/es/control/kanban/index.d.ts +44 -1
  42. package/es/control/kanban/kanban.d.ts +56 -1
  43. package/es/control/kanban/kanban.mjs +36 -2
  44. package/es/control/list/index.d.ts +1 -1
  45. package/es/control/list/list.d.ts +1 -1
  46. package/es/control/list/list.mjs +1 -1
  47. package/es/control/search-bar/search-bar.mjs +3 -0
  48. package/es/control/tree/index.d.ts +1 -1
  49. package/es/control/tree/tree.d.ts +1 -1
  50. package/es/control/tree-grid/index.d.ts +1 -1
  51. package/es/control/tree-grid/tree-grid.d.ts +1 -1
  52. package/es/editor/array/ibiz-array/ibiz-array.css +1 -1
  53. package/es/editor/array/ibiz-array/ibiz-array.mjs +4 -1
  54. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  55. package/es/editor/data-picker/ibiz-transfer-picker/components/transfer/transfer.d.ts +1 -1
  56. package/es/editor/data-picker/ibiz-transfer-picker/ibiz-transfer-picker.d.ts +3 -2
  57. package/es/editor/date-range-select/date-range-select-picker/date-range-select.d.ts +5 -5
  58. package/es/editor/date-range-select/date-range-select.controller.mjs +9 -0
  59. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -0
  60. package/es/editor/dropdown-list/ibiz-tree-picker/ibiz-tree-picker.d.ts +4 -3
  61. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  62. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.d.ts +10 -7
  63. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +5 -5
  64. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +1 -1
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +3 -3
  66. package/es/editor/span/span/span.d.ts +1 -1
  67. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  68. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.d.ts +3 -77
  69. package/es/editor/text-box/ibiz-input-ip/ibiz-input-ip.mjs +167 -108
  70. package/es/editor/text-box/input/input.d.ts +4 -4
  71. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.mjs +1 -1
  72. package/es/index.mjs +1 -0
  73. package/es/panel-component/panel-button/panel-button.controller.mjs +2 -1
  74. package/es/panel-component/panel-button/panel-button.mjs +1 -1
  75. package/es/util/app-util/app-util.d.ts +54 -2
  76. package/es/util/app-util/app-util.mjs +48 -1
  77. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +76 -2
  78. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  79. package/lib/control/form/form/index.cjs +2 -0
  80. package/lib/control/form/form-detail/form-iframe/form-iframe.cjs +58 -0
  81. package/lib/control/form/form-detail/form-iframe/form-iframe.css +1 -0
  82. package/lib/control/form/form-detail/form-iframe/form-iframe.provider.cjs +23 -0
  83. package/lib/control/form/form-detail/form-iframe/index.cjs +17 -0
  84. package/lib/control/form/form-detail/form-item/form-item.cjs +5 -3
  85. package/lib/control/form/form-detail/form-item/form-item.css +1 -1
  86. package/lib/control/form/form-detail/index.cjs +2 -0
  87. package/lib/control/form/index.cjs +6 -4
  88. package/lib/control/grid/grid/index.cjs +2 -0
  89. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.cjs +3 -6
  90. package/lib/control/grid/virtualized-table/index.cjs +23 -0
  91. package/lib/control/grid/virtualized-table/virtualized-table.cjs +327 -0
  92. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -0
  93. package/lib/control/grid/virtualized-table/virtualized-table.provider.cjs +16 -0
  94. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +193 -0
  95. package/lib/control/index.cjs +82 -80
  96. package/lib/control/kanban/kanban.cjs +34 -0
  97. package/lib/control/list/list.cjs +1 -1
  98. package/lib/control/search-bar/search-bar.cjs +3 -0
  99. package/lib/editor/array/ibiz-array/ibiz-array.cjs +4 -1
  100. package/lib/editor/array/ibiz-array/ibiz-array.css +1 -1
  101. package/lib/editor/date-range-select/date-range-select.controller.cjs +9 -0
  102. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +5 -5
  103. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.css +1 -1
  104. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +1 -1
  105. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.cjs +166 -107
  106. package/lib/editor/text-box/ibiz-input-ip/ibiz-input-ip.css +1 -1
  107. package/lib/editor/upload/ibiz-file-upload/ibiz-file-upload.cjs +1 -1
  108. package/lib/index.cjs +112 -110
  109. package/lib/panel-component/panel-button/panel-button.cjs +1 -1
  110. package/lib/panel-component/panel-button/panel-button.controller.cjs +2 -1
  111. package/lib/util/app-util/app-util.cjs +47 -0
  112. package/package.json +4 -4
  113. package/dist/ibiz-markdown-editor-KyK5mBTS.js +0 -1
  114. package/dist/index-pyv7Wdpx.js +0 -4
@@ -1 +1 @@
1
- .ibiz-dropdown{width:var(--ibiz-dropdown-width);--ibiz-dropdown-width:100%;--ibiz-dropdown-readonly-text-item-color:var(--ibiz-form-item-text-color)}.ibiz-dropdown__branch-node>.el-tree-node__content{--ibiz-color-disabled-text:var(--ibiz-color-text-0)}.ibiz-dropdown .el-select{width:100%}.ibiz-dropdown .el-select-v2{width:100%}.ibiz-dropdown .el-input__wrapper{width:100%}.ibiz-dropdown .el-input__wrapper .el-input__prefix{max-width:calc(100% - 22px);overflow:hidden}.ibiz-dropdown-readonly-text-item{margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-dropdown-readonly-text-item-color)}.ibiz-dropdown-readonly-text-item .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-content-item{color:var(--ibiz-dropdown-select-option-item-color)}.el-select-dropdown__item{width:100%;background-color:var(--ibiz-dropdown-select-option-item-bkcolor)}.el-select-dropdown__option-item{width:100%;font-size:var(--ibiz-font-size-regular)}.el-select-dropdown__option-item.hover{background-color:var(--ibiz-color-fill-0)!important}.ibiz-dropdown-select-option-content{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown-select-option-content__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-dropdown-select-option-content .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content{display:flex;align-items:center;width:100%;padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--ibiz-editor-default-line-height)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select .el-input__prefix-inner>:last-child{margin-right:var(--ibiz-spacing-none)}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content{display:flex;align-items:center;width:100%;height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:auto;padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base);margin:var(--ibiz-spacing-none);margin-right:var(--ibiz-spacing-extra-tight);font-size:inherit;line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border:none;border-radius:var(--ibiz-spacing-base)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-content-item{flex:0 0 auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item{display:inline-flex;align-items:center;margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item:first-child{margin-left:calc(var(--ibiz-spacing-base-tight) - var(--ibiz-spacing-super-tight)/ 2)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item .ibiz-dropdown-readonly-text-item__label{padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__prefix-inner>:last-child{gap:var(--ibiz-spacing-extra-tight);margin:0}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner{flex:1 1 0;color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner[aria-expanded=true]::-moz-placeholder{color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner[aria-expanded=true]::placeholder{color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select-option-text{display:inline-flex;align-items:center;padding:var(--ibiz-dropdown-select-option-item-padding);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown-popper--round .el-select-dropdown__item{display:flex;align-items:center;height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));line-height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));background-color:transparent}.ibiz-dropdown-popper--round .ibiz-dropdown-select-option-content{flex:0 0 auto;width:auto;min-width:0;height:auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown-popper.is-allow-create .el-tree__empty-block{display:none}.ibiz-dropdown-popper.is-allow-create .el-select-dropdown__item{padding-left:var(--ibiz-spacing-base-tight)}
1
+ .ibiz-dropdown{width:var(--ibiz-dropdown-width);--ibiz-dropdown-width:100%;--ibiz-dropdown-readonly-text-item-color:var(--ibiz-form-item-text-color)}.ibiz-dropdown__branch-node>.el-tree-node__content{--ibiz-color-disabled-text:var(--ibiz-color-text-0)}.ibiz-dropdown .el-select{width:100%}.ibiz-dropdown .el-select-v2{width:100%}.ibiz-dropdown .el-input__wrapper{width:100%}.ibiz-dropdown .el-input__wrapper .el-input__prefix{max-width:calc(100% - 22px);overflow:hidden}.ibiz-dropdown-readonly-text-item{margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-dropdown-readonly-text-item-color)}.ibiz-dropdown-readonly-text-item .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-content-item{color:var(--ibiz-dropdown-select-option-item-color)}.el-select-dropdown__item{width:100%;background-color:var(--ibiz-dropdown-select-option-item-bkcolor)}.el-select-dropdown__option-item{width:100%;font-size:var(--ibiz-font-size-regular)}.el-select-dropdown__option-item.hover{background-color:var(--ibiz-color-fill-0)!important}.ibiz-dropdown-select-option-content{display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%;color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown-select-option-content__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-dropdown-select-option-content .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);margin-right:var(--ibiz-spacing-extra-tight);font-size:var(--ibiz-font-size-regular)}.ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default:hover .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content{display:flex;align-items:center;width:100%;padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--ibiz-editor-default-line-height)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));padding:0 var(--ibiz-spacing-tight);margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:calc(var(--ibiz-editor-default-line-height) - var(--ibiz-spacing-tight));color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default .ibiz-dropdown-select .el-input__prefix-inner>:last-child{margin-right:var(--ibiz-spacing-none)}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-form-default-content{display:none}.ibiz-form-item .ibiz-dropdown.is-show-default.is-editable .ibiz-dropdown-select{display:block}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content{display:flex;align-items:center;width:100%;height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple{height:var(--el-component-size)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-form-default-content.is-multiple .ibiz-dropdown-content-item{height:auto;padding:var(--ibiz-spacing-none) var(--ibiz-spacing-base);margin:var(--ibiz-spacing-none);margin-right:var(--ibiz-spacing-extra-tight);font-size:inherit;line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border:none;border-radius:var(--ibiz-spacing-base)}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-form-item .ibiz-dropdown--round.is-show-default .ibiz-dropdown-content-item{flex:0 0 auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round.ibiz-dropdown-virtualized-list.is-has-value .el-select-v2__placeholder{display:none}.ibiz-dropdown--round.ibiz-dropdown-virtualized-list .ibiz-dropdown-select .el-select-v2__wrapper{line-height:28px}.ibiz-dropdown--round.ibiz-dropdown-virtualized-list .ibiz-dropdown-select .el-select-v2__selected-item{display:none}.ibiz-dropdown--round.ibiz-dropdown-virtualized-list .ibiz-dropdown-select-option-text{margin:2px 0 2px 6px}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item{display:inline-flex;align-items:center;margin-right:var(--ibiz-spacing-extra-tight);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item:first-child{margin-left:calc(var(--ibiz-spacing-base-tight) - var(--ibiz-spacing-super-tight)/ 2)}.ibiz-dropdown--round .ibiz-dropdown-readonly-text-item .ibiz-dropdown-readonly-text-item__label{padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown--round .ibiz-dropdown-select .el-select__tags{display:none}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__prefix-inner>:last-child{gap:var(--ibiz-spacing-extra-tight);margin:0}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner{flex:1 1 0;color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner[aria-expanded=true]::-moz-placeholder{color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select .el-input__inner[aria-expanded=true]::placeholder{color:transparent}.ibiz-dropdown--round .ibiz-dropdown-select-option-text{display:inline-flex;align-items:center;padding:var(--ibiz-dropdown-select-option-item-padding);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown-popper--round.ibiz-dropdown-virtualized-list-popper .ibiz-dropdown-select-option-content{flex:0 1 auto}.ibiz-dropdown-popper--round.ibiz-dropdown-virtualized-list-popper .ibiz-dropdown-select-option-content>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-dropdown-popper--round.ibiz-dropdown-virtualized-list-popper .el-select-dropdown__option-item{display:flex;align-items:center}.ibiz-dropdown-popper--round.ibiz-dropdown-virtualized-list-popper .select-v2-option-item{display:flex;align-items:center;width:100%}.ibiz-dropdown-popper--round .el-select-dropdown__item{display:flex;align-items:center;height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));line-height:calc(var(--ibiz-spacing-extra-loose) + var(--ibiz-spacing-extra-tight));background-color:transparent}.ibiz-dropdown-popper--round .ibiz-dropdown-select-option-content{flex:0 0 auto;width:auto;min-width:0;height:auto;padding-right:var(--ibiz-spacing-base);padding-left:var(--ibiz-spacing-base);line-height:var(--ibiz-spacing-loose);color:var(--ibiz-dropdown-select-option-item-color);background-color:var(--ibiz-dropdown-select-option-item-bkcolor);border-radius:var(--ibiz-spacing-base)}.ibiz-dropdown-popper.is-allow-create .el-tree__empty-block{display:none}.ibiz-dropdown-popper.is-allow-create .el-select-dropdown__item{padding-left:var(--ibiz-spacing-base-tight)}
@@ -4,15 +4,18 @@ import './ibiz-virtualized-list.scss';
4
4
  /**
5
5
  * 虚拟化选择器(扩展)
6
6
  *
7
- * @description 使用el-select-v2组件,在下拉数据较多的情况下,避免渲染至 DOM 中时造成性能问题。基于`下拉列表框`、`下拉列表框(多选)`编辑器进行扩展,编辑器样式代码名称为:VIRTUALIZED_LIST
7
+ * @description 使用el-select-v2组件,在下拉数据较多的情况下,避免渲染至 DOM 中时造成性能问题。基于`下拉列表框`、`下拉列表框(多选)`编辑器进行扩展,编辑器样式代码名称为:VIRTUALIZED_LIST
8
8
  * @primary
9
- * @editorparams {name:forceSelection,parameterType:boolean,defaultvalue:true,description:是否允许用户创建选择项。当参数为false时,可在输入框输入内容,使其显示在下拉选项中呈现,并且可选择}
10
- * @editorparams {name:defaultFirstOption,parameterType:boolean,defaultvalue:false,description:默认选中第一个,在该属性为 true 的情况下,按下回车就可以选中当前选项列表中的第一个选项,无需使用鼠标或键盘方向键进行定位}
11
- * @editorparams {name:blankItemName,parameterType:string,description:在单选模式下,用于在下拉展示数据首项添加一条空白项数据,其文本内容为配置的该参数值}
12
- * @editorparams {name:alwaysLoad,parameterType:boolean,defaultvalue:false,description:当前值改变、下拉框出现时,是否重新加载代码表数据。设置为 true 时每次相关事件触发都会重新加载数据}
9
+ * @editorparams {name:forceselection,parameterType:boolean,defaultvalue:true,description:是否禁止用户创建选择项。当参数为false时,可在输入框输入内容,使其显示在下拉选项中呈现,并且可选择}
10
+ * @editorparams {name:blankitemname,parameterType:string,description:在单选模式下,用于在下拉展示数据顶部添加一条空白项数据,其文本内容为配置的该参数值}
11
+ * @editorparams {name:alwaysload,parameterType:boolean,defaultvalue:false,description:当值改变、下拉框出现时,是否重新加载代码表数据。设置为 true 时每次相关事件触发都会重新加载数据}
13
12
  * @editorparams {name:type,parameterType:'round' | 'other',defaultvalue:'other',description:下拉框的样式类型,可取值为 'round'(圆角类型)或 'other'(其他类型)}
14
- * @editorparams {name:overflowMode,parameterType:'auto' | 'ellipsis',defaultvalue:'auto',description:用于控制该编辑器下拉区域的宽度显示方式。当参数值为 'ellipsis' 时,下拉区域宽度将与输入框保持一致,若内容超出宽度则会显示省略号,鼠标悬浮在内容上时会出现提示信息}
15
- * @ignoreprops overflowMode | controlParams
13
+ * @editorparams {name:overflowmode,parameterType:'auto' | 'ellipsis',defaultvalue:'auto',description:用于控制该编辑器下拉区域的宽度显示方式。当参数值为 'auto' 时,下拉区域宽度会根据内容自动展开;当参数值为 'ellipsis' 时,下拉区域宽度将与输入框保持一致,若内容超出宽度则会显示省略号,鼠标悬浮在内容上时会出现提示信息}
14
+ * @editorparams {name:allitems,parameterType:boolean,defaultvalue:false,description:下拉列表框是否启用全部项}
15
+ * @editorparams {name:itemstext,parameterType:string,defaultvalue:'全部',description:下拉列表框全部项文本}
16
+ * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"}
17
+ * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
18
+ * @ignoreprops overflowMode
16
19
  */
17
20
  export declare const IBizVirtualizedList: import("vue").DefineComponent<{
18
21
  value: (StringConstructor | NumberConstructor)[];
@@ -184,7 +184,7 @@ const IBizVirtualizedList = /* @__PURE__ */ defineComponent({
184
184
  emitVal = Number(select);
185
185
  emit("change", emitVal);
186
186
  }
187
- if (c.editorParams.alwaysLoad === "true") {
187
+ if (c.editorParams.alwaysLoad === "true" || c.editorParams.alwaysload === "true") {
188
188
  loadCodeList();
189
189
  }
190
190
  if (props.autoFocus) {
@@ -240,7 +240,7 @@ const IBizVirtualizedList = /* @__PURE__ */ defineComponent({
240
240
  return list.find((item) => item.text === text);
241
241
  };
242
242
  const onVisibleChange = async (visible) => {
243
- if (visible && (!isLoadedCodeList.value || c.editorParams.alwaysLoad === "true")) {
243
+ if (visible && (!isLoadedCodeList.value || c.editorParams.alwaysLoad === "true" || c.editorParams.alwaysload === "true")) {
244
244
  await loadCodeList();
245
245
  if (hasChildren.value && editorRef.value && editorState !== "outside") {
246
246
  nextTick(() => {
@@ -319,7 +319,7 @@ const IBizVirtualizedList = /* @__PURE__ */ defineComponent({
319
319
  };
320
320
  },
321
321
  render() {
322
- const overflowMode = this.c.editorParams.overflowMode || ibiz.config.pickerEditor.overflowMode;
322
+ const overflowMode = this.c.editorParams.overflowMode || this.c.editorParams.overflowmode || ibiz.config.pickerEditor.overflowMode;
323
323
  const isEllipsis = overflowMode === "ellipsis";
324
324
  const editContent = createVNode(resolveComponent("el-select-v2"), mergeProps({
325
325
  "ref": "editorRef",
@@ -334,7 +334,7 @@ const IBizVirtualizedList = /* @__PURE__ */ defineComponent({
334
334
  "disabled": this.disabled,
335
335
  "loading": this.isLoading,
336
336
  "fit-input-width": isEllipsis,
337
- "popper-class": "".concat(this.ns.b("popper"), " ").concat(this.c.editorParams.type === "round" ? this.ns.bm("popper", "round") : "", " ").concat(this.ns.bm("popper", "".concat(this.c.model.id))),
337
+ "popper-class": "".concat(this.ns.b("popper"), " ").concat(this.c.editorParams.type === "round" ? this.ns.bm("popper", "round") : "", " ").concat(this.ns.bm("popper", "".concat(this.c.model.id)), " ").concat(this.ns.b("virtualized-list-popper")),
338
338
  "onFocus": this.onFocus,
339
339
  "onClear": this.handleClear,
340
340
  "onKeyup": this.handleKeyUp,
@@ -384,7 +384,7 @@ const IBizVirtualizedList = /* @__PURE__ */ defineComponent({
384
384
  }, [text])]);
385
385
  });
386
386
  return createVNode("div", {
387
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.c.editorParams.type === "round" && this.ns.m("round")]
387
+ "class": [this.ns.b(), this.ns.b("virtualized-list"), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.c.editorParams.type === "round" && this.ns.m("round"), this.ns.is("has-value", this.value != null && this.value !== "")]
388
388
  }, [this.readonly ? readonlyContent : editContent]);
389
389
  }
390
390
  });
@@ -173,7 +173,7 @@ const IBizMarkDown = /* @__PURE__ */ defineComponent({
173
173
  }
174
174
  };
175
175
  const editorInit = () => {
176
- if (props.disabled) {
176
+ if (props.disabled || props.readonly) {
177
177
  defaultModel.value = "previewOnly";
178
178
  }
179
179
  nextTick(() => {
@@ -12,9 +12,9 @@ import './ibiz-slider.scss';
12
12
  * @editorparams {name:showstops,parameterType:boolean,defaultvalue:false,description:当 `type` 为 'line' 时,是否显示间断点,el-slider组件的show-stops属性}
13
13
  * @editorparams {name:range,parameterType:boolean,defaultvalue:false,description:当 `type` 为 'line' 时,是否开启选择范围,el-slider组件的range属性}
14
14
  * @editorparams {name:showinput,parameterType:boolean,defaultvalue:false,description:当 `type` 为 'line' 时,是否显示输入框,仅在非范围选择时有效,el-slider组件的show-input属性}
15
- * @editorparams {name:showtext,parameterType:boolean,defaultvalue:false,description:当 `type` 为 'line' 或为 'circle' 时,是否显示文本}
16
- * @editorparams {name:format,parameterType:string,defaultvalue:'0%',description:当 `type` 为 'line' 或为 'circle' 时,设置显示文本的格式}
17
- * @editorparams {name:textitem,parameterType:string,description:当 `type` 为 'line' 或为 'circle' 时,设置显示文本属性。设置后,环形进度条的显示文本将优先获取主数据内对应属性的数据进行展示}
15
+ * @editorparams {name:showtext,parameterType:boolean,defaultvalue:false,description:当 `type` 为 'line' 'circle' 时,是否显示文本}
16
+ * @editorparams {name:format,parameterType:string,defaultvalue:'0%',description:当 `type` 为 'line' 'circle' 时,设置显示文本的格式}
17
+ * @editorparams {name:textitem,parameterType:string,description:当 `type` 为 'line' 'circle' 时,设置显示文本属性。设置后,环形进度条的显示文本将优先获取主数据内对应属性的数据进行展示}
18
18
  * @editorparams {name:piebg,parameterType:string,description:当 `type` 为 'pie' 时,设置饼图进度条背景色,可配置十六进制颜色、rgb颜色}
19
19
  * @editorparams {name:piepercentbg,parameterType:string,description:当 `type` 为 'pie' 时,设置饼图进度条占比背景色,可配置十六进制颜色、rgb颜色}
20
20
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
@@ -7,7 +7,7 @@ import { SpanEditorController } from '../span-editor.controller';
7
7
  * @description 直接呈现文本内容,可配置单位,无值时显示全局配置的emptyText,支持编辑器类型包含:`标签`
8
8
  * @primary
9
9
  * @editorparams {"name":"textseparator","parameterType":"string","defaultvalue":"','","description":"文本分隔符。如果是数组数据,在呈现时会使用文本分隔符拼接为字符串显示"}
10
- * @editorparams {name:overflowmode,parameterType:'auto' | 'ellipsis',defaultvalue:'auto',description:文本换行模式。当参数为 'auto' 时,若内容超出宽度则会换行显示;当参数为 'ellipsis' 时,若内容超出宽度则会显示省略号}
10
+ * @editorparams {name:overflowmode,parameterType:'auto' | 'ellipsis',description:文本换行模式。当参数为 'auto' 时,若内容超出宽度则会换行显示;当参数为 'ellipsis' 时,若内容超出宽度则会显示省略号}
11
11
  * @editorparams {"name":"valuetype","parameterType":"string","description":"编辑器的值类型"}
12
12
  * @editorparams {"name":"objectnamefield","parameterType":"string","defaultvalue":"'srfmajortext'","description":"值类型为OBJECT、OBJECTS时显示的对象属性"}
13
13
  * @ignoreprops autoFocus | overflowMode
@@ -1 +1 @@
1
- .ibiz-input-ip{display:flex;flex-wrap:nowrap;height:100%;line-height:var(--ibiz-form-item-line-height)}.ibiz-form-item .ibiz-input-ip.is-show-default{padding:var(--ibiz-form-item-hover-edit-padding)}
1
+ .ibiz-input-ip{display:flex;flex-wrap:nowrap;height:100%;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-form-item-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-input-ip .el-input .el-input__wrapper{background-color:transparent;box-shadow:none}.ibiz-input-ip .el-input.is-disabled .el-input__wrapper{background-color:transparent}.ibiz-input-ip:hover:not(.ibiz-input-ip--disabled) .ibiz-input-ip-content{box-shadow:0 0 0 1px var(--ibiz-editor-hover-border-color) inset}.ibiz-input-ip--disabled .ibiz-input-ip-content{color:var(--el-disabled-text-color);cursor:not-allowed;background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.ibiz-input-ip--readonly{color:var(--ibiz-form-item-readonly-color)}.ibiz-input-ip.is-focus .ibiz-input-ip-content{box-shadow:0 0 0 1px var(--ibiz-color-primary) inset}.ibiz-input-ip-content{display:flex;flex-wrap:nowrap;align-items:center;width:100%;height:100%;color:var(--ibiz-editor-default-text-color);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 0 1px var(--ibiz-editor-default-border-color) inset}.ibiz-form-item .ibiz-input-ip.is-show-default .ibiz-input-ip-form-default-content{display:block;padding:var(--ibiz-form-item-hover-edit-padding)}.ibiz-form-item .ibiz-input-ip.is-show-default .ibiz-input-ip-content{display:none}.ibiz-form-item .ibiz-input-ip.is-show-default:hover .ibiz-input-ip-form-default-content{display:none}.ibiz-form-item .ibiz-input-ip.is-show-default:hover .ibiz-input-ip-content{display:flex}.ibiz-form-item .ibiz-input-ip.is-show-default.is-focus .ibiz-input-ip-form-default-content{display:none}.ibiz-form-item .ibiz-input-ip.is-show-default.is-focus .ibiz-input-ip-content{display:flex}
@@ -1,86 +1,12 @@
1
- import { Ref } from 'vue';
1
+ import { defineComponent } from 'vue';
2
2
  import './ibiz-input-ip.scss';
3
- import { TextBoxEditorController } from '../text-box-editor.controller';
4
3
  /**
5
4
  * IP地址输入框
6
5
  *
7
- * @description 使用多个el-input组件用于 IP 地址数据的录入,呈现样式为 4 个输入框。支持编辑器类型包含:`IP地址输入框`
6
+ * @description 由多个el-input组件组合而成,用于IP地址数据的录入。支持编辑器类型包含:`IP地址输入框`
8
7
  * @primary
9
8
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
10
9
  * @ignoreprops overflowMode
11
10
  * @ignoreemits infoTextChange
12
11
  */
13
- export declare const IBizInputIP: import("vue").DefineComponent<{
14
- value: StringConstructor;
15
- controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<TextBoxEditorController>, undefined, undefined>;
16
- data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<import("@ibiz-template/core").IApiData>, undefined, undefined>;
17
- disabled: {
18
- type: BooleanConstructor;
19
- };
20
- readonly: {
21
- type: BooleanConstructor;
22
- default: boolean;
23
- };
24
- autoFocus: {
25
- type: BooleanConstructor;
26
- default: boolean;
27
- };
28
- overflowMode: {
29
- type: StringConstructor;
30
- };
31
- controlParams: {
32
- type: ObjectConstructor;
33
- required: boolean;
34
- };
35
- }, {
36
- ns: import("@ibiz-template/core").Namespace;
37
- c: TextBoxEditorController;
38
- editorRef: Ref<any>;
39
- currentVal: Ref<string[]>;
40
- getFocus: () => void;
41
- blur: () => void;
42
- firstIp: Ref<string>;
43
- secIp: Ref<string>;
44
- thirdIp: Ref<string>;
45
- forIp: Ref<string>;
46
- showFormDefaultContent: import("vue").ComputedRef<boolean>;
47
- handleKeyUp: (e: KeyboardEvent) => void;
48
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
49
- change: (_value: unknown, _name?: string | undefined, _ignore?: boolean | undefined) => boolean;
50
- blur: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
51
- focus: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
52
- enter: (_event?: import("@ibiz-template/core").IApiData | undefined) => boolean;
53
- infoTextChange: (_text: string) => boolean;
54
- }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
55
- value: StringConstructor;
56
- controller: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<TextBoxEditorController>, undefined, undefined>;
57
- data: import("@ibiz-template/vue3-util").RequiredProp<import("vue").PropType<import("@ibiz-template/core").IApiData>, undefined, undefined>;
58
- disabled: {
59
- type: BooleanConstructor;
60
- };
61
- readonly: {
62
- type: BooleanConstructor;
63
- default: boolean;
64
- };
65
- autoFocus: {
66
- type: BooleanConstructor;
67
- default: boolean;
68
- };
69
- overflowMode: {
70
- type: StringConstructor;
71
- };
72
- controlParams: {
73
- type: ObjectConstructor;
74
- required: boolean;
75
- };
76
- }>> & {
77
- onFocus?: ((_event?: import("@ibiz-template/core").IApiData | undefined) => any) | undefined;
78
- onBlur?: ((_event?: import("@ibiz-template/core").IApiData | undefined) => any) | undefined;
79
- onChange?: ((_value: unknown, _name?: string | undefined, _ignore?: boolean | undefined) => any) | undefined;
80
- onInfoTextChange?: ((_text: string) => any) | undefined;
81
- onEnter?: ((_event?: import("@ibiz-template/core").IApiData | undefined) => any) | undefined;
82
- }, {
83
- disabled: boolean;
84
- readonly: boolean;
85
- autoFocus: boolean;
86
- }, {}>;
12
+ export declare const IBizInputIP: ReturnType<typeof defineComponent>;
@@ -1,4 +1,4 @@
1
- import { ref, computed, watch, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
1
+ import { computed, ref, watch, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
2
  import { getInputIpProps, getEditorEmits, useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './ibiz-input-ip.css';
4
4
 
@@ -12,71 +12,139 @@ const IBizInputIP = /* @__PURE__ */ defineComponent({
12
12
  }) {
13
13
  const ns = useNamespace("input-ip");
14
14
  const c = props.controller;
15
- const editorRef = ref();
16
15
  const showFormDefaultContent = computed(() => {
17
16
  if (props.controlParams && props.controlParams.editmode === "hover" && !props.readonly) {
18
17
  return true;
19
18
  }
20
19
  return false;
21
20
  });
22
- const currentVal = ref([]);
23
21
  const activeElement = ref(false);
24
22
  const isAllBlur = ref(false);
25
- const firstIp = ref("");
26
- const secIp = ref("");
27
- const thirdIp = ref("");
28
- const forIp = ref("");
29
- if (props.value) {
30
- const ipArr = props.value.split(".");
31
- currentVal.value = ipArr;
32
- firstIp.value = currentVal.value[0];
33
- secIp.value = currentVal.value[1];
34
- thirdIp.value = currentVal.value[2];
35
- forIp.value = currentVal.value[3];
36
- }
37
- const checkIpVal = (newVal, oldVal, ip, index) => {
38
- if (newVal === "")
39
- return;
40
- const reg = /^(([0-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5]))))$/g;
41
- if (reg.test(newVal)) {
42
- currentVal.value[index] = newVal;
43
- } else if (ip) {
44
- ibiz.message.warning(ibiz.i18n.t("editor.textBox.warningMessage", {
45
- num: index + 1
46
- }));
47
- ip.value = oldVal;
48
- currentVal.value[index] = oldVal;
23
+ const splitIp = (ip) => {
24
+ const parts = ip.split(".");
25
+ return [parts[0] || "", parts[1] || "", parts[2] || "", parts[3] || ""];
26
+ };
27
+ const joinIp = (parts) => {
28
+ return parts.join(".");
29
+ };
30
+ const isValidIp = (parts) => {
31
+ return parts.every((part) => {
32
+ if (!part) {
33
+ return false;
34
+ }
35
+ return /^(0|[1-9]\d?|1\d\d|2[0-4]\d|25[0-5])$/.test(part);
36
+ });
37
+ };
38
+ const ipSegments = ref(splitIp(props.value || ""));
39
+ const ipInputs = ref([]);
40
+ const handleInput = (value, index) => {
41
+ var _a;
42
+ value = value.replace(/[^0-9]/g, "").slice(0, 3);
43
+ if (value) {
44
+ const num = parseInt(value, 10);
45
+ if (num > 255) {
46
+ value = "255";
47
+ } else {
48
+ value = "".concat(num);
49
+ }
50
+ }
51
+ ipSegments.value[index] = value;
52
+ const target = ipInputs.value[index];
53
+ const input = target == null ? void 0 : target.input;
54
+ if (ipSegments.value[index].length === 3 && index < 3 && input && input.selectionStart === ipSegments.value[index].length && input.selectionEnd === ipSegments.value[index].length) {
55
+ const ipInput = ipInputs.value[index + 1];
56
+ if (ipInput) {
57
+ ipInput.focus();
58
+ (_a = ipInput.input) == null ? void 0 : _a.setSelectionRange(0, ipSegments.value[index + 1].length);
59
+ }
49
60
  }
50
- if (firstIp.value && secIp.value && thirdIp.value && forIp.value) {
51
- emit("change", "".concat(firstIp.value, ".").concat(secIp.value, ".").concat(thirdIp.value, ".").concat(forIp.value));
61
+ if (isValidIp(ipSegments.value)) {
62
+ emit("change", joinIp(ipSegments.value));
52
63
  }
53
64
  };
54
- watch(firstIp, (newVal, oldVal) => {
55
- checkIpVal(newVal, oldVal, firstIp, 0);
56
- });
57
- watch(secIp, (newVal, oldVal) => {
58
- checkIpVal(newVal, oldVal, secIp, 1);
59
- });
60
- watch(thirdIp, (newVal, oldVal) => {
61
- checkIpVal(newVal, oldVal, thirdIp, 2);
62
- });
63
- watch(forIp, (newVal, oldVal) => {
64
- checkIpVal(newVal, oldVal, forIp, 3);
65
- });
66
- watch(editorRef, (newVal) => {
67
- if (props.autoFocus && newVal) {
68
- const input = newVal.$el.getElementsByTagName("input")[0];
69
- input.focus();
65
+ const handleKeydown = (event, index) => {
66
+ var _a, _b, _c, _d, _e;
67
+ if (event.key === "Enter") {
68
+ emit("enter", event);
69
+ return;
70
70
  }
71
- });
72
- const getFocus = () => {
71
+ if (/^[0-9]$/.test(event.key)) {
72
+ const input = event.target;
73
+ if (input && ipSegments.value[index].length === 3 && input.selectionStart === input.selectionEnd) {
74
+ event.preventDefault();
75
+ if (index < 3 && input.selectionEnd === ipSegments.value[index].length) {
76
+ const nextIndex = index + 1;
77
+ const nextInput = ipInputs.value[nextIndex];
78
+ if (nextInput) {
79
+ nextInput.focus();
80
+ (_a = nextInput.input) == null ? void 0 : _a.setSelectionRange(0, ipSegments.value[nextIndex].length);
81
+ }
82
+ }
83
+ }
84
+ return;
85
+ }
86
+ if (event.key === ".") {
87
+ event.preventDefault();
88
+ const input = event.target;
89
+ if (input && index < 3 && input.selectionStart === input.selectionEnd && input.selectionEnd !== 0 && ipSegments.value[index].length) {
90
+ const nextIndex = index + 1;
91
+ const nextInput = ipInputs.value[nextIndex];
92
+ if (nextInput) {
93
+ nextInput.focus();
94
+ (_b = nextInput.input) == null ? void 0 : _b.setSelectionRange(0, ipSegments.value[nextIndex].length);
95
+ }
96
+ }
97
+ return;
98
+ }
99
+ if (event.key === "Backspace") {
100
+ const input = event.target;
101
+ if (input && index > 0 && input.selectionStart === 0 && input.selectionEnd === 0) {
102
+ event.preventDefault();
103
+ const prevIndex = index - 1;
104
+ const prevValue = ipSegments.value[prevIndex];
105
+ const prevInput = ipInputs.value[prevIndex];
106
+ if (prevValue.length > 0) {
107
+ ipSegments.value[prevIndex] = prevValue.slice(0, -1);
108
+ }
109
+ if (prevInput) {
110
+ prevInput.focus();
111
+ (_c = prevInput.input) == null ? void 0 : _c.setSelectionRange(ipSegments.value[prevIndex].length, ipSegments.value[prevIndex].length);
112
+ }
113
+ }
114
+ }
115
+ if (event.key === "ArrowLeft") {
116
+ const input = event.target;
117
+ if (input && index > 0 && input.selectionStart === 0 && input.selectionEnd === 0) {
118
+ event.preventDefault();
119
+ const prevIndex = index - 1;
120
+ const prevInput = ipInputs.value[prevIndex];
121
+ if (prevInput) {
122
+ prevInput.focus();
123
+ (_d = prevInput.input) == null ? void 0 : _d.setSelectionRange(ipSegments.value[prevIndex].length, ipSegments.value[prevIndex].length);
124
+ }
125
+ }
126
+ }
127
+ if (event.key === "ArrowRight") {
128
+ const input = event.target;
129
+ if (input && index < 3 && input.selectionStart === ipSegments.value[index].length && input.selectionEnd === ipSegments.value[index].length) {
130
+ event.preventDefault();
131
+ const nextIndex = index + 1;
132
+ const nextInput = ipInputs.value[nextIndex];
133
+ if (nextInput) {
134
+ nextInput.focus();
135
+ (_e = nextInput.input) == null ? void 0 : _e.setSelectionRange(0, 0);
136
+ }
137
+ }
138
+ }
139
+ };
140
+ const handleFocus = () => {
73
141
  activeElement.value = true;
74
142
  if (isAllBlur.value) {
75
143
  isAllBlur.value = false;
76
144
  emit("focus");
77
145
  }
78
146
  };
79
- const blur = () => {
147
+ const handleBlur = () => {
80
148
  activeElement.value = false;
81
149
  setTimeout(() => {
82
150
  if (!activeElement.value) {
@@ -85,75 +153,66 @@ const IBizInputIP = /* @__PURE__ */ defineComponent({
85
153
  }
86
154
  }, 0);
87
155
  };
88
- const handleKeyUp = (e) => {
89
- if (e && e.code === "Enter") {
90
- emit("enter", e);
156
+ watch(() => props.value, (newVal) => {
157
+ ipSegments.value = splitIp(newVal || "");
158
+ });
159
+ watch(() => ipInputs.value[0], (input) => {
160
+ if (props.autoFocus && input) {
161
+ input.focus();
91
162
  }
92
- };
163
+ });
93
164
  return {
94
165
  ns,
95
166
  c,
96
- editorRef,
97
- currentVal,
98
- getFocus,
99
- blur,
100
- firstIp,
101
- secIp,
102
- thirdIp,
103
- forIp,
104
167
  showFormDefaultContent,
105
- handleKeyUp
168
+ activeElement,
169
+ ipSegments,
170
+ ipInputs,
171
+ joinIp,
172
+ handleInput,
173
+ handleKeydown,
174
+ handleFocus,
175
+ handleBlur
106
176
  };
107
177
  },
108
178
  render() {
109
- return createVNode("div", {
110
- "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("show-default", this.showFormDefaultContent)]
111
- }, [createVNode(resolveComponent("el-input"), {
112
- "ref": "editorRef",
113
- "type": "text",
114
- "size": "small",
115
- "disabled": this.disabled,
116
- "readonly": this.readonly,
117
- "onFocus": this.getFocus,
118
- "onBlur": this.blur,
119
- "onKeyup": this.handleKeyUp,
120
- "maxlength": 3,
121
- "modelValue": this.firstIp,
122
- "onUpdate:modelValue": ($event) => this.firstIp = $event
123
- }, null), createTextVNode("."), createVNode(resolveComponent("el-input"), {
124
- "type": "text",
125
- "size": "small",
126
- "disabled": this.disabled,
127
- "readonly": this.readonly,
128
- "onFocus": this.getFocus,
129
- "onBlur": this.blur,
130
- "onKeyup": this.handleKeyUp,
131
- "maxlength": 3,
132
- "modelValue": this.secIp,
133
- "onUpdate:modelValue": ($event) => this.secIp = $event
134
- }, null), createTextVNode("."), createVNode(resolveComponent("el-input"), {
135
- "type": "text",
136
- "size": "small",
137
- "disabled": this.disabled,
138
- "readonly": this.readonly,
139
- "onFocus": this.getFocus,
140
- "onBlur": this.blur,
141
- "onKeyup": this.handleKeyUp,
142
- "maxlength": 3,
143
- "modelValue": this.thirdIp,
144
- "onUpdate:modelValue": ($event) => this.thirdIp = $event
145
- }, null), createTextVNode("."), createVNode(resolveComponent("el-input"), {
146
- "type": "text",
147
- "size": "small",
148
- "disabled": this.disabled,
149
- "readonly": this.readonly,
150
- "onFocus": this.getFocus,
151
- "onBlur": this.blur,
152
- "onKeyup": this.handleKeyUp,
153
- "maxlength": 3,
154
- "modelValue": this.forIp,
155
- "onUpdate:modelValue": ($event) => this.forIp = $event
179
+ let content = null;
180
+ if (this.readonly) {
181
+ content = this.value;
182
+ } else {
183
+ content = createVNode("div", {
184
+ "class": this.ns.b("content")
185
+ }, [this.ipSegments.map((segment, index) => {
186
+ return [createVNode(resolveComponent("el-input"), {
187
+ "model-value": segment,
188
+ "maxlength": 4,
189
+ "disabled": this.disabled,
190
+ "readonly": this.readonly,
191
+ "ref": (el) => {
192
+ if (el) {
193
+ this.ipInputs[index] = el;
194
+ } else {
195
+ this.ipInputs[index] = void 0;
196
+ }
197
+ },
198
+ "onInput": (value) => this.handleInput(value, index),
199
+ "onKeydown": (e) => this.handleKeydown(e, index),
200
+ "onFocus": this.handleFocus,
201
+ "onBlur": this.handleBlur
202
+ }, null), index < 3 && createVNode("span", {
203
+ "class": this.ns.b("dot")
204
+ }, [createTextVNode(".")])];
205
+ })]);
206
+ }
207
+ const formDefaultContent = createVNode("div", {
208
+ "class": this.ns.b("form-default-content")
209
+ }, [this.ipSegments.some((segment) => segment) ? this.joinIp(this.ipSegments) : createVNode(resolveComponent("iBizEditorEmptyText"), {
210
+ "showPlaceholder": this.c.emptyShowPlaceholder,
211
+ "placeHolder": this.c.placeHolder
156
212
  }, null)]);
213
+ return createVNode("div", {
214
+ "class": [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : "", this.ns.is("show-default", this.showFormDefaultContent), this.ns.is("focus", this.activeElement && !this.disabled && !this.readonly)]
215
+ }, [this.showFormDefaultContent && formDefaultContent, content]);
157
216
  }
158
217
  });
159
218
 
@@ -3,13 +3,13 @@ import './input.scss';
3
3
  /**
4
4
  * 文本框
5
5
  *
6
- * @description 使用el-input组件,用于数据录入,通过鼠标或键盘输入字符。支持编辑器类型包含:`文本框`、`多行输入框`、`多行输入(10行)`、`密码框`
6
+ * @description 使用el-input组件,用于数据录入,通过鼠标或键盘输入字符。支持编辑器类型包含:`文本框`、`多行输入框`、`多行输入框(10行)`、`密码框`
7
7
  * @primary
8
- * @editorparams {name:showlimit,parameterType:boolean,defaultvalue:true,description:el-input组件的show-word-limit属性,控制文本域是否显示字数限制,当编辑器类型为多行输入框、多行输入(10行)时生效}
9
- * @editorparams {name:isauto,parameterType:boolean,defaultvalue:false,description:el-input组件的autosize属性,控制文本域高度是否自适应,当编辑器类型为多行输入框、多行输入(10行)时生效}
8
+ * @editorparams {name:showlimit,parameterType:boolean,defaultvalue:true,description:el-input组件的show-word-limit属性,控制文本域是否显示字数限制,当编辑器类型为多行输入框、多行输入框(10行)时生效}
9
+ * @editorparams {name:isauto,parameterType:boolean,defaultvalue:false,description:el-input组件的autosize属性,控制文本域高度是否自适应,当编辑器类型为多行输入框、多行输入框(10行)时生效}
10
10
  * @editorparams {name:autocomplete,parameterType:boolean,defaultvalue:false,description:el-input组件的autocomplete属性,是否允许自动填充}
11
11
  * @editorparams {name:ac,parameterType:boolean,defaultvalue:false,description:是否启用ac自填模式}
12
- * @editorparams {name:srfaiappendcurdata,parameterType:boolean,defaultvalue:false,description:在打开AI功能时,该参数用于判断是否传入对象参数,主要用于在请求历史记录时,附加当前参数}
12
+ * @editorparams {name:srfaiappendcurdata,parameterType:boolean,defaultvalue:false,description:在打开AI功能时,该参数用于判断是否传入对象参数,主要用于在请求历史记录时,附加当前数据对象}
13
13
  * @editorparams {name:srfaiappendcurcontent,parameterType:string,description:在打开AI功能时,如果该参数存在值,会将其传入编辑内容作为用户消息,主要用于在请求历史记录后,附加当前编辑内容作为用户消息}
14
14
  * @editorparams {"name":"triggermode","parameterType":"'blur' | 'input'","defaultvalue":"'blur'","description":"指定编辑器触发 `change` 值变更事件的模式,input: 输入框输入时触发事件,blur:输入框blur时触发事件"}
15
15
  * @editorparams {name:minlength,parameterType:number,description:指定编辑器输入内容的最小字数}
@@ -78,7 +78,7 @@ const IBizFileUpload = /* @__PURE__ */ defineComponent({
78
78
  "file-list": this.files,
79
79
  "action": this.uploadUrl,
80
80
  "headers": this.headers,
81
- "disabled": this.disabled,
81
+ "disabled": this.disabled || this.readonly,
82
82
  "multiple": this.c.multiple,
83
83
  "limit": this.limit,
84
84
  "drag": !!this.c.isDrag,
package/es/index.mjs CHANGED
@@ -40,6 +40,7 @@ export { IBizFormRawItem } from './control/form/form-detail/form-rawitem/index.m
40
40
  export { IBizFormTabPanel } from './control/form/form-detail/form-tab-panel/index.mjs';
41
41
  export { IBizFormTabPage } from './control/form/form-detail/form-tab-page/index.mjs';
42
42
  export { IBizFormButtonList } from './control/form/form-detail/form-button-list/index.mjs';
43
+ export { IBizFormIFrame } from './control/form/form-detail/form-iframe/index.mjs';
43
44
  export { IBizEditFormControl } from './control/form/edit-form/index.mjs';
44
45
  export { IBizFormControl } from './control/form/form/index.mjs';
45
46
  export { IBizToolbarControl } from './control/toolbar/index.mjs';
@@ -109,7 +109,8 @@ class PanelButtonController extends PanelItemController {
109
109
  data: [this.data],
110
110
  view: this.panel.view,
111
111
  event,
112
- noWaitRoute: true
112
+ noWaitRoute: true,
113
+ ctrl: this.panel
113
114
  },
114
115
  this.model.appId
115
116
  );
@@ -66,7 +66,7 @@ const PanelButton = /* @__PURE__ */ defineComponent({
66
66
  try {
67
67
  state.loading = true;
68
68
  await props.controller.onActionClick(event);
69
- props.controller.onClick();
69
+ props.controller.onClick(event);
70
70
  } finally {
71
71
  state.loading = false;
72
72
  }