@globalpayments/vega 2.39.0 → 2.41.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/cjs/{app-globals-dd3e7925.js → app-globals-7fecd3ff.js} +21 -10
- package/dist/cjs/check-box-required-rule-1ee54b9a.js +70 -0
- package/dist/cjs/{child-nodes-event-prevent-slimmer-af2addec.js → child-nodes-event-prevent-slimmer-4beb1fde.js} +2 -2
- package/dist/cjs/{child-nodes-notify-observer-slimmer-4e60a929.js → child-nodes-notify-observer-slimmer-be92f366.js} +2 -2
- package/dist/cjs/{content-state-c5b47ca1.js → content-state-582d8961.js} +2 -3
- package/dist/cjs/date-required-rule-4e1f84fd.js +92 -0
- package/dist/cjs/{design-token-36eb5def.js → design-token-4d94a23c.js} +1 -1
- package/dist/cjs/{dom-node-subject-factory-ce1777a9.js → dom-node-subject-factory-3ec114b8.js} +30 -0
- package/dist/cjs/{dom-node-subject-observer-factory-80b3ac6c.js → dom-node-subject-observer-factory-5f0eae19.js} +2 -3
- package/dist/cjs/{element-appender-slimmer-c6e0f4ca.js → element-appender-slimmer-88edb0d1.js} +19 -14
- package/dist/cjs/{event-emit-slimmer-208a19e4.js → event-emit-slimmer-9c223f73.js} +3 -3
- package/dist/cjs/{feature-flag-controller-7b22e598.js → feature-flag-controller-3c6666df.js} +6 -0
- package/dist/cjs/file-uploader-required-rule-313ec9e3.js +21 -0
- package/dist/cjs/{form-field-controller-slimmer-48c0ad0b.js → form-field-controller-slimmer-9f4d1fc3.js} +36 -10
- package/dist/cjs/{image-annotation-action-75b9c0d3.js → image-annotation-action-3247409b.js} +3 -3
- package/dist/cjs/index-453b89b9.js +42 -0
- package/dist/cjs/index.cjs.js +37 -18
- package/dist/cjs/input-phone-number-required-rule-2668fdf1.js +65 -0
- package/dist/cjs/input-range-required-rule-5b9c2a95.js +63 -0
- package/dist/cjs/internal-form-field-validation-rule.abstract-07cdff46.js +15 -0
- package/dist/cjs/{internal-vega-event-manager-981dfd1c.js → internal-vega-event-manager-e5e4bcf4.js} +1 -1
- package/dist/cjs/loader.cjs.js +12 -14
- package/dist/cjs/{min-number-rule-115c5a3b.js → min-number-rule-5bcccc8f.js} +7 -4
- package/dist/cjs/{min-string-length-rule-75f24a48.js → min-string-length-rule-af215976.js} +8 -4
- package/dist/cjs/{page-resize-observer-slimmer-bb1eaebe.js → page-resize-observer-slimmer-bceeaabf.js} +53 -2
- package/dist/cjs/public-rules-ec626913.js +41 -0
- package/dist/cjs/{remote-invocation-registry-32aaf6c2.js → remote-invocation-registry-ff9af278.js} +3 -3
- package/dist/cjs/{required-field-rule-7f9945fa.js → required-field-rule-d73c1d8c.js} +6 -3
- package/dist/cjs/{responsive-format-facade-a1983026.js → responsive-format-facade-ad8ca2ab.js} +212 -9
- package/dist/cjs/rich-text-editor-required-rule-15d9dea1.js +64 -0
- package/dist/cjs/{string-input-formatter-slimmer-f45931fd.js → string-input-formatter-slimmer-83aa7e61.js} +2 -2
- package/dist/cjs/{style-formatter-d446562b.js → style-formatter-c1c9c121.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-b1f1e61a.js → sub-state-notify-slimmer-1a52271c.js} +2 -3
- package/dist/cjs/{sub-state-observer-slimmer-02634647.js → sub-state-observer-slimmer-91b89d4d.js} +2 -3
- package/dist/cjs/time-required-rule-ccf178e7.js +141 -0
- package/dist/cjs/toggle-switch-required-rule-88a51b36.js +66 -0
- package/dist/cjs/{valid-credit-card-number-rule-4a9ae5d9.js → valid-credit-card-number-rule-4a1b00b8.js} +3 -2
- package/dist/cjs/vega-accordion.cjs.entry.js +21 -12
- package/dist/cjs/vega-app-header-button.cjs.entry.js +19 -14
- package/dist/cjs/vega-banner.cjs.entry.js +5 -6
- package/dist/cjs/vega-box.cjs.entry.js +135 -18
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +6 -7
- package/dist/cjs/vega-button-circle.cjs.entry.js +19 -12
- package/dist/cjs/vega-button-group_2.cjs.entry.js +8 -9
- package/dist/cjs/vega-button-link.cjs.entry.js +6 -7
- package/dist/cjs/vega-button.cjs.entry.js +18 -12
- package/dist/cjs/vega-calendar_3.cjs.entry.js +9 -11
- package/dist/cjs/vega-card.cjs.entry.js +20 -3
- package/dist/cjs/vega-carousel.cjs.entry.js +20 -9
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +21 -91
- package/dist/cjs/vega-chip.cjs.entry.js +22 -15
- package/dist/cjs/vega-color-picker.cjs.entry.js +8 -9
- package/dist/cjs/vega-combo-box.cjs.entry.js +10 -11
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +26 -111
- package/dist/cjs/vega-dialog_2.cjs.entry.js +62 -29
- package/dist/cjs/vega-divider.cjs.entry.js +22 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +28 -24
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +4 -5
- package/dist/cjs/vega-file-uploader.cjs.entry.js +10 -26
- package/dist/cjs/vega-flex.cjs.entry.js +19 -6
- package/dist/cjs/vega-font.cjs.entry.js +21 -5
- package/dist/cjs/vega-form.cjs.entry.js +14 -15
- package/dist/cjs/vega-grid.cjs.entry.js +20 -3
- package/dist/cjs/vega-icon.cjs.entry.js +18 -4
- package/dist/cjs/vega-image-uploader.cjs.entry.js +22 -20
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +11 -12
- package/dist/cjs/vega-input-numeric.cjs.entry.js +11 -12
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +15 -73
- package/dist/cjs/vega-input-range.cjs.entry.js +13 -70
- package/dist/cjs/vega-input-select.cjs.entry.js +19 -17
- package/dist/cjs/vega-input.cjs.entry.js +16 -16
- package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -5
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +25 -22
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +22 -7
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -3
- package/dist/cjs/vega-pagination.cjs.entry.js +6 -7
- package/dist/cjs/vega-popover_2.cjs.entry.js +20 -12
- package/dist/cjs/vega-progress-tracker.cjs.entry.js +4 -5
- package/dist/cjs/vega-radio_2.cjs.entry.js +13 -14
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +7 -7
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +22 -81
- package/dist/cjs/vega-segment-control.cjs.entry.js +5 -7
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +22 -19
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +14 -15
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +24 -19
- package/dist/cjs/vega-signature-capture.cjs.entry.js +21 -15
- package/dist/cjs/{vega-skeleton-loader-controller-00dbdf29.js → vega-skeleton-loader-controller-381e90fe.js} +262 -11
- package/dist/cjs/vega-stepper.cjs.entry.js +10 -11
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +8 -10
- package/dist/cjs/vega-table_8.cjs.entry.js +40 -40
- package/dist/cjs/vega-text.cjs.entry.js +1 -2
- package/dist/cjs/vega-textarea.cjs.entry.js +11 -12
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +27 -155
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +9 -70
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +70 -18
- package/dist/cjs/vega.cjs.js +12 -14
- package/dist/cjs/{index-0546e2ea.js → wait-for-vega-handler-46280dcf.js} +1 -39
- package/dist/collection/components/vega-box/slimmers/controllers/vega-box-responsive-style-controller.js +89 -0
- package/dist/collection/components/vega-box/vega-box.css +55 -7196
- package/dist/collection/components/vega-box/vega-box.js +23 -0
- package/dist/collection/components/vega-checkbox/vega-checkbox.css +82 -33
- package/dist/collection/components/vega-checkbox/vega-checkbox.js +8 -13
- package/dist/collection/components/vega-dialog/vega-dialog.js +4 -4
- package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +2 -2
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +9 -0
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-scroll-controller.js +16 -0
- package/dist/collection/components/vega-modal/vega-modal.js +6 -0
- package/dist/collection/components/vega-time-picker/vega-time-picker-dropdown/vega-time-picker-dropdown.css +1 -1
- package/dist/collection/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.js +45 -11
- package/dist/collection/components/vega-tooltip/vega-tooltip.js +12 -0
- package/dist/collection/components/vega-virtual-scroll/slimmers/controllers/vega-virtual-scroll-scrollable-controller.js +8 -5
- package/dist/collection/global/scripts/before-vega-load.js +11 -0
- package/dist/collection/helpers/dialog/test/vega-dialog-controller.test.js +19 -1
- package/dist/collection/helpers/dialog/vega-dialog-controller.js +2 -2
- package/dist/collection/helpers/feature-control/feature-flags-map.js +6 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsiv-border-radius-formatter.js +1 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-border-radius-style-formatter.js +63 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-css-text-formatter.js +45 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-format-facade.js +9 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-margin-formatter.js +1 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-margin-style-formatter.js +44 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-padding-formatter.js +1 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-padding-style-formatter.js +44 -0
- package/dist/collection/helpers/formatter/test/responsive-map-formatter/responsive-border-radius-style-formatter.test.js +32 -0
- package/dist/collection/helpers/formatter/test/responsive-map-formatter/responsive-margin-style-formatter.test.js +28 -0
- package/dist/collection/helpers/formatter/test/responsive-map-formatter/responsive-padding-style-formatter.test.js +28 -0
- package/dist/collection/helpers/slimmers/element-appender-slimmer.js +9 -6
- package/dist/collection/helpers/slimmers/test/element-appender-slimmer.test.js +2 -0
- package/dist/collection/helpers/ui/element-appender.js +2 -0
- package/dist/collection/helpers/ui/test/element-appender.test.js +13 -12
- package/dist/collection/helpers/validator/form-field-controller.js +28 -1
- package/dist/collection/helpers/validator/public-rules.js +10 -0
- package/dist/collection/helpers/validator/rules/check-box-required-rule.js +4 -3
- package/dist/collection/helpers/validator/rules/date-range-rule.js +2 -1
- package/dist/collection/helpers/validator/rules/date-required-rule.js +5 -3
- package/dist/collection/helpers/validator/rules/email-field-rule.js +3 -2
- package/dist/collection/helpers/validator/rules/{object-array-required-rule.js → file-uploader-required-rule.js} +1 -1
- package/dist/collection/helpers/validator/rules/input-phone-number-required-rule.js +5 -3
- package/dist/collection/helpers/validator/rules/input-range-min-and-max-rule.js +3 -1
- package/dist/collection/helpers/validator/rules/input-range-required-rule.js +5 -4
- package/dist/collection/helpers/validator/rules/internal-form-field-validation-rule.abstract.js +11 -0
- package/dist/collection/helpers/validator/rules/max-number-rule.js +4 -2
- package/dist/collection/helpers/validator/rules/max-string-length-rule.js +4 -2
- package/dist/collection/helpers/validator/rules/min-and-max-date-rule.js +3 -1
- package/dist/collection/helpers/validator/rules/min-number-rule.js +4 -2
- package/dist/collection/helpers/validator/rules/min-string-length-rule.js +4 -2
- package/dist/collection/helpers/validator/rules/required-field-rule.js +5 -3
- package/dist/collection/helpers/validator/rules/rich-text-editor-required-rule.js +4 -3
- package/dist/collection/helpers/validator/rules/time-range-required-rule.js +5 -3
- package/dist/collection/helpers/validator/rules/time-range-rule.js +3 -1
- package/dist/collection/helpers/validator/rules/time-required-rule.js +5 -3
- package/dist/collection/helpers/validator/rules/toggle-switch-required-rule.js +4 -3
- package/dist/collection/helpers/validator/rules/valid-credit-card-number-rule.js +3 -2
- package/dist/collection/helpers/validator/rules/valid-phone-number-rule.js +4 -2
- package/dist/collection/helpers/validator/test/rules/file-uploader-required-rule.test.js +7 -0
- package/dist/collection/helpers/validator/test/rules/public-rules.test.js +80 -0
- package/dist/collection/index.js +1 -0
- package/dist/esm/{app-globals-c954167a.js → app-globals-9ad844bb.js} +18 -7
- package/dist/esm/check-box-required-rule-cb0aa339.js +68 -0
- package/dist/esm/{child-nodes-event-prevent-slimmer-3220fa5b.js → child-nodes-event-prevent-slimmer-851ad927.js} +2 -2
- package/dist/esm/{child-nodes-notify-observer-slimmer-36024b11.js → child-nodes-notify-observer-slimmer-289caacc.js} +1 -1
- package/dist/esm/{content-state-2edba4ec.js → content-state-5646be9f.js} +1 -2
- package/dist/esm/{date-732bc749.js → date-c55b97f0.js} +1 -1
- package/dist/esm/date-required-rule-8944f3bf.js +90 -0
- package/dist/esm/{design-token-e14b622b.js → design-token-a1bb9a99.js} +1 -1
- package/dist/esm/{dom-node-subject-factory-97deb349.js → dom-node-subject-factory-5831cdd4.js} +30 -1
- package/dist/esm/{dom-node-subject-observer-factory-857c65fa.js → dom-node-subject-observer-factory-dc486a8b.js} +1 -2
- package/dist/esm/{element-appender-slimmer-f5e703f3.js → element-appender-slimmer-dbe9f79e.js} +15 -10
- package/dist/esm/{event-emit-slimmer-36cf4e39.js → event-emit-slimmer-f285e3ac.js} +3 -3
- package/dist/esm/{feature-flag-controller-4b3fe6f8.js → feature-flag-controller-91e7eaa1.js} +6 -0
- package/dist/esm/file-uploader-required-rule-ad886d01.js +19 -0
- package/dist/esm/{form-field-controller-slimmer-7a9f2b2e.js → form-field-controller-slimmer-0da8c510.js} +31 -5
- package/dist/esm/{image-annotation-action-b6668f48.js → image-annotation-action-af91eb87.js} +3 -3
- package/dist/esm/index-88cfdf1a.js +39 -0
- package/dist/esm/index.js +23 -14
- package/dist/esm/input-phone-number-required-rule-be6a5572.js +63 -0
- package/dist/esm/input-range-required-rule-3ad74776.js +61 -0
- package/dist/esm/internal-form-field-validation-rule.abstract-f5b6bdbf.js +13 -0
- package/dist/esm/{internal-vega-event-manager-0a01ba12.js → internal-vega-event-manager-07e1b3d9.js} +1 -1
- package/dist/esm/loader.js +12 -14
- package/dist/esm/{min-number-rule-31d48b22.js → min-number-rule-a6082418.js} +7 -4
- package/dist/esm/{min-string-length-rule-c6a69eeb.js → min-string-length-rule-c31c89f4.js} +8 -4
- package/dist/esm/{page-resize-observer-slimmer-beb7b0bd.js → page-resize-observer-slimmer-bf715d05.js} +51 -2
- package/dist/esm/public-rules-4a519276.js +26 -0
- package/dist/esm/{remote-invocation-registry-1682b34e.js → remote-invocation-registry-d97fa3bc.js} +1 -1
- package/dist/esm/{required-field-rule-368b31fa.js → required-field-rule-ab4bdc47.js} +6 -3
- package/dist/esm/{responsive-format-facade-661193d7.js → responsive-format-facade-b3bc4db6.js} +204 -1
- package/dist/esm/rich-text-editor-required-rule-7a402a9c.js +62 -0
- package/dist/esm/{string-input-formatter-slimmer-418b54f0.js → string-input-formatter-slimmer-1f74c6f3.js} +2 -2
- package/dist/esm/{style-formatter-4b857992.js → style-formatter-bdafdf22.js} +1 -1
- package/dist/esm/{sub-state-notify-slimmer-b36fd081.js → sub-state-notify-slimmer-e9489326.js} +1 -2
- package/dist/esm/{sub-state-observer-slimmer-09452523.js → sub-state-observer-slimmer-7e99a677.js} +1 -2
- package/dist/esm/time-required-rule-a01163b5.js +138 -0
- package/dist/esm/toggle-switch-required-rule-b3cf4302.js +64 -0
- package/dist/esm/{valid-credit-card-number-rule-2aef3ad5.js → valid-credit-card-number-rule-cc497bec.js} +3 -2
- package/dist/esm/vega-accordion.entry.js +20 -11
- package/dist/esm/vega-app-header-button.entry.js +18 -13
- package/dist/esm/vega-banner.entry.js +5 -6
- package/dist/esm/vega-box.entry.js +135 -18
- package/dist/esm/vega-breadcrumb.entry.js +6 -7
- package/dist/esm/vega-button-circle.entry.js +19 -12
- package/dist/esm/vega-button-group_2.entry.js +8 -9
- package/dist/esm/vega-button-link.entry.js +6 -7
- package/dist/esm/vega-button.entry.js +17 -11
- package/dist/esm/vega-calendar_3.entry.js +10 -12
- package/dist/esm/vega-card.entry.js +20 -3
- package/dist/esm/vega-carousel.entry.js +20 -9
- package/dist/esm/vega-checkbox_2.entry.js +19 -89
- package/dist/esm/vega-chip.entry.js +21 -14
- package/dist/esm/vega-color-picker.entry.js +8 -9
- package/dist/esm/vega-combo-box.entry.js +10 -11
- package/dist/esm/vega-date-picker_2.entry.js +22 -107
- package/dist/esm/vega-dialog_2.entry.js +54 -21
- package/dist/esm/vega-divider.entry.js +21 -4
- package/dist/esm/vega-dropdown_5.entry.js +28 -24
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +4 -5
- package/dist/esm/vega-file-uploader.entry.js +10 -26
- package/dist/esm/vega-flex.entry.js +19 -6
- package/dist/esm/vega-font.entry.js +20 -4
- package/dist/esm/vega-form.entry.js +10 -11
- package/dist/esm/vega-grid.entry.js +20 -3
- package/dist/esm/vega-icon.entry.js +18 -4
- package/dist/esm/vega-image-uploader.entry.js +21 -19
- package/dist/esm/vega-input-credit-card.entry.js +11 -12
- package/dist/esm/vega-input-numeric.entry.js +11 -12
- package/dist/esm/vega-input-phone-number.entry.js +14 -72
- package/dist/esm/vega-input-range.entry.js +12 -69
- package/dist/esm/vega-input-select.entry.js +18 -16
- package/dist/esm/vega-input.entry.js +16 -16
- package/dist/esm/vega-item-toggle.entry.js +4 -5
- package/dist/esm/vega-left-nav_5.entry.js +18 -15
- package/dist/esm/vega-loader-wrapper_2.entry.js +19 -4
- package/dist/esm/vega-page-notification_2.entry.js +2 -3
- package/dist/esm/vega-pagination.entry.js +6 -7
- package/dist/esm/vega-popover_2.entry.js +20 -12
- package/dist/esm/vega-progress-tracker.entry.js +4 -5
- package/dist/esm/vega-radio_2.entry.js +11 -12
- package/dist/esm/vega-rich-text-content.entry.js +7 -7
- package/dist/esm/vega-rich-text-editor_4.entry.js +17 -76
- package/dist/esm/vega-segment-control.entry.js +5 -7
- package/dist/esm/vega-selection-chip_2.entry.js +20 -17
- package/dist/esm/vega-selection-tile_2.entry.js +13 -14
- package/dist/esm/vega-sidenav_3.entry.js +16 -11
- package/dist/esm/vega-signature-capture.entry.js +20 -14
- package/dist/esm/{vega-skeleton-loader-controller-5aea7aeb.js → vega-skeleton-loader-controller-964db62f.js} +261 -12
- package/dist/esm/vega-stepper.entry.js +10 -11
- package/dist/esm/vega-tab-group_2.entry.js +7 -9
- package/dist/esm/vega-table_8.entry.js +17 -17
- package/dist/esm/vega-text.entry.js +1 -2
- package/dist/esm/vega-textarea.entry.js +11 -12
- package/dist/esm/vega-time-picker_2.entry.js +23 -151
- package/dist/esm/vega-toggle-switch.entry.js +8 -69
- package/dist/esm/vega-tooltip_2.entry.js +70 -18
- package/dist/esm/vega.js +12 -14
- package/dist/esm/{index-d172bafa.js → wait-for-vega-handler-03a25866.js} +1 -38
- package/dist/types/components/vega-box/slimmers/controllers/vega-box-responsive-style-controller.d.ts +38 -0
- package/dist/types/components/vega-box/vega-box.d.ts +5 -0
- package/dist/types/components/vega-dialog/types.d.ts +1 -1
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.d.ts +4 -0
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-scroll-controller.d.ts +5 -0
- package/dist/types/components/vega-modal/vega-modal.d.ts +1 -0
- package/dist/types/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.d.ts +18 -0
- package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +4 -0
- package/dist/types/components/vega-virtual-scroll/slimmers/controllers/vega-virtual-scroll-scrollable-controller.d.ts +1 -1
- package/dist/types/helpers/dialog/vega-dialog-controller.d.ts +1 -1
- package/dist/types/helpers/feature-control/feature-flag.d.ts +6 -1
- package/dist/types/helpers/formatter/responsive-map-formatter/responsiv-border-radius-formatter.d.ts +1 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-border-radius-style-formatter.d.ts +26 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-css-text-formatter.d.ts +25 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-margin-formatter.d.ts +1 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-margin-style-formatter.d.ts +16 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-padding-formatter.d.ts +1 -0
- package/dist/types/helpers/formatter/responsive-map-formatter/responsive-padding-style-formatter.d.ts +16 -0
- package/dist/types/helpers/formatter/test/responsive-map-formatter/responsive-margin-style-formatter.test.d.ts +1 -0
- package/dist/types/helpers/formatter/test/responsive-map-formatter/responsive-padding-style-formatter.test.d.ts +1 -0
- package/dist/types/helpers/slimmers/element-appender-slimmer.d.ts +1 -0
- package/dist/types/helpers/slimmers/form-field-controller-slimmer.d.ts +2 -1
- package/dist/types/helpers/validator/form-field-controller.d.ts +10 -0
- package/dist/types/helpers/validator/public-rules.d.ts +10 -0
- package/dist/types/helpers/validator/rules/check-box-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/date-range-rule.d.ts +3 -2
- package/dist/types/helpers/validator/rules/date-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/email-field-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/{object-array-required-rule.d.ts → file-uploader-required-rule.d.ts} +1 -1
- package/dist/types/helpers/validator/rules/input-phone-number-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/input-range-min-and-max-rule.d.ts +3 -2
- package/dist/types/helpers/validator/rules/input-range-required-rule.d.ts +8 -7
- package/dist/types/helpers/validator/rules/internal-form-field-validation-rule.abstract.d.ts +19 -0
- package/dist/types/helpers/validator/rules/max-number-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/max-string-length-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/min-and-max-date-rule.d.ts +3 -2
- package/dist/types/helpers/validator/rules/min-number-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/min-string-length-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/required-field-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/rich-text-editor-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/time-range-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/time-range-rule.d.ts +3 -2
- package/dist/types/helpers/validator/rules/time-required-rule.d.ts +7 -6
- package/dist/types/helpers/validator/rules/toggle-switch-required-rule.d.ts +5 -4
- package/dist/types/helpers/validator/rules/valid-credit-card-number-rule.d.ts +4 -3
- package/dist/types/helpers/validator/rules/valid-phone-number-rule.d.ts +4 -3
- package/dist/types/helpers/validator/test/rules/file-uploader-required-rule.test.d.ts +1 -0
- package/dist/types/helpers/validator/test/rules/public-rules.test.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/types/public-api.d.ts +1 -1
- package/dist/types/types/ui.type.d.ts +6 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-04ca73d5.entry.js +1 -0
- package/dist/vega/p-07c2725a.js +1 -0
- package/dist/vega/p-07d5ebac.entry.js +1 -0
- package/dist/vega/{p-b5990090.js → p-08835909.js} +1 -1
- package/dist/vega/p-09c5de7f.entry.js +1 -0
- package/dist/vega/{p-1b860f90.js → p-0af4bda9.js} +1 -1
- package/dist/vega/p-0bb860cc.js +1 -0
- package/dist/vega/p-0ceb92d7.entry.js +1 -0
- package/dist/vega/p-14f85e30.entry.js +1 -0
- package/dist/vega/p-1727b651.entry.js +1 -0
- package/dist/vega/p-1d01b5ab.entry.js +1 -0
- package/dist/vega/p-1d62d89d.js +1 -0
- package/dist/vega/p-1db0a7a1.entry.js +1 -0
- package/dist/vega/{p-bd0116f9.js → p-1f9a66e6.js} +1 -1
- package/dist/vega/p-24da2ffd.entry.js +1 -0
- package/dist/vega/p-25228e15.entry.js +1 -0
- package/dist/vega/p-280cbcdb.js +1 -0
- package/dist/vega/p-29b09aad.js +1 -0
- package/dist/vega/p-2b8e9c64.entry.js +1 -0
- package/dist/vega/p-2f6890e8.entry.js +1 -0
- package/dist/vega/p-2f9f5995.entry.js +1 -0
- package/dist/vega/p-2fb4faf8.entry.js +1 -0
- package/dist/vega/p-30881e6c.entry.js +1 -0
- package/dist/vega/{p-9ee23f34.entry.js → p-349480f8.entry.js} +2 -2
- package/dist/vega/p-36cb03ec.js +1 -0
- package/dist/vega/{p-ac608edc.js → p-39dfa61b.js} +1 -1
- package/dist/vega/p-45dd4698.entry.js +1 -0
- package/dist/vega/{p-4ab0d645.js → p-45fccc2e.js} +1 -1
- package/dist/vega/p-499d9811.entry.js +1 -0
- package/dist/vega/{p-a190c86a.js → p-4b500240.js} +1 -1
- package/dist/vega/{p-666cd80f.js → p-53328c50.js} +1 -1
- package/dist/vega/p-54cb3c47.entry.js +1 -0
- package/dist/vega/p-5616294e.entry.js +1 -0
- package/dist/vega/p-590fd123.js +1 -0
- package/dist/vega/p-5986c439.entry.js +1 -0
- package/dist/vega/p-5d7ea126.entry.js +1 -0
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-5f5af9e8.entry.js +1 -0
- package/dist/vega/{p-6e5db02b.js → p-601fbb96.js} +1 -1
- package/dist/vega/p-611eba55.entry.js +1 -0
- package/dist/vega/p-61d8636c.js +1 -0
- package/dist/vega/p-62cae5ef.entry.js +1 -0
- package/dist/vega/p-66d871d6.js +1 -0
- package/dist/vega/p-6868a09d.entry.js +1 -0
- package/dist/vega/p-6a3989dd.js +1 -0
- package/dist/vega/p-6e921ac2.js +1 -0
- package/dist/vega/p-6f90d444.js +1 -0
- package/dist/vega/p-71791731.entry.js +1 -0
- package/dist/vega/{p-60fb1db7.js → p-72eee5e2.js} +1 -1
- package/dist/vega/p-74b6ce44.entry.js +1 -0
- package/dist/vega/p-7c0b4c36.js +1 -0
- package/dist/vega/p-831fbe52.entry.js +1 -0
- package/dist/vega/{p-0b697841.entry.js → p-83a06a40.entry.js} +1 -1
- package/dist/vega/p-87ee1dab.entry.js +1 -0
- package/dist/vega/p-88b5fcc3.entry.js +1 -0
- package/dist/vega/p-8bc7e1a7.entry.js +1 -0
- package/dist/vega/p-8be34d8e.entry.js +1 -0
- package/dist/vega/p-8ce6e672.entry.js +1 -0
- package/dist/vega/p-8fae8f9e.js +1 -0
- package/dist/vega/{p-ff4bafa3.js → p-922bb790.js} +1 -1
- package/dist/vega/p-924b4e24.js +1 -0
- package/dist/vega/p-92f9b9b5.entry.js +1 -0
- package/dist/vega/p-93421a1a.entry.js +1 -0
- package/dist/vega/p-99b7257b.entry.js +1 -0
- package/dist/vega/p-a57fc4df.entry.js +1 -0
- package/dist/vega/p-a7fea3c8.entry.js +1 -0
- package/dist/vega/p-aa1a5f2d.entry.js +1 -0
- package/dist/vega/p-ab0c8cf7.entry.js +1 -0
- package/dist/vega/p-abd7aeaa.js +1 -0
- package/dist/vega/p-aca02a0b.js +1 -0
- package/dist/vega/p-ad2e8e08.entry.js +1 -0
- package/dist/vega/p-b0926d1c.entry.js +1 -0
- package/dist/vega/p-b1eb225c.entry.js +1 -0
- package/dist/vega/p-b5944e86.entry.js +1 -0
- package/dist/vega/p-b6d62c44.js +1 -0
- package/dist/vega/p-b9051ad2.js +1 -0
- package/dist/vega/p-bbc4b90a.entry.js +1 -0
- package/dist/vega/p-c1a3e7f7.js +1 -0
- package/dist/vega/p-ca1fd7b2.js +1 -0
- package/dist/vega/p-cb8f8458.entry.js +1 -0
- package/dist/vega/p-cd1b4bd4.entry.js +1 -0
- package/dist/vega/p-cdbbdcc2.js +1 -0
- package/dist/vega/p-cf1001e6.js +1 -0
- package/dist/vega/p-d8e95692.js +1 -0
- package/dist/vega/p-da82e78c.entry.js +1 -0
- package/dist/vega/p-dd7ade28.js +1 -0
- package/dist/vega/{p-6408d3dc.entry.js → p-e43c18d4.entry.js} +1 -1
- package/dist/vega/{p-57669fd6.js → p-e8f540d8.js} +1 -1
- package/dist/vega/p-ebc73140.entry.js +1 -0
- package/dist/vega/p-ec2d3456.entry.js +1 -0
- package/dist/vega/p-edfedd8e.entry.js +1 -0
- package/dist/vega/p-f396c69a.js +1 -0
- package/dist/vega/p-f4a62fa7.entry.js +1 -0
- package/dist/vega/p-f50bd1d3.entry.js +1 -0
- package/dist/vega/p-f7d9c7d1.js +1 -0
- package/dist/vega/p-fdf812b0.entry.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +4 -3
- package/dist/cjs/breakpoints-17d6c4c7.js +0 -55
- package/dist/cjs/internal-vega-z-index-manager-f03ddb37.js +0 -180
- package/dist/cjs/observer-f49483e8.js +0 -32
- package/dist/cjs/vega-dialog-controller-fe610705.js +0 -81
- package/dist/collection/helpers/validator/test/rules/object-array-required-rule.test.js +0 -7
- package/dist/esm/breakpoints-91116111.js +0 -52
- package/dist/esm/internal-vega-z-index-manager-7d2b54c3.js +0 -178
- package/dist/esm/observer-3959f9dd.js +0 -30
- package/dist/esm/vega-dialog-controller-34eb8967.js +0 -79
- package/dist/vega/p-05f5e22b.entry.js +0 -1
- package/dist/vega/p-073beb31.entry.js +0 -1
- package/dist/vega/p-08bbc8e6.entry.js +0 -1
- package/dist/vega/p-0cc1ad76.js +0 -1
- package/dist/vega/p-149d2801.js +0 -1
- package/dist/vega/p-1d53d434.entry.js +0 -1
- package/dist/vega/p-1d5fbccc.entry.js +0 -1
- package/dist/vega/p-239bae84.js +0 -1
- package/dist/vega/p-24ac5151.entry.js +0 -1
- package/dist/vega/p-257b1bc2.entry.js +0 -1
- package/dist/vega/p-2f39ea18.entry.js +0 -1
- package/dist/vega/p-3152031c.js +0 -1
- package/dist/vega/p-331a62d5.js +0 -1
- package/dist/vega/p-3c85a11b.entry.js +0 -1
- package/dist/vega/p-4019a3ec.entry.js +0 -1
- package/dist/vega/p-46359293.entry.js +0 -1
- package/dist/vega/p-49bf2b3a.js +0 -1
- package/dist/vega/p-4a8db510.entry.js +0 -1
- package/dist/vega/p-4b19706c.entry.js +0 -1
- package/dist/vega/p-4bcd6612.js +0 -1
- package/dist/vega/p-4e436842.entry.js +0 -1
- package/dist/vega/p-59834ea4.entry.js +0 -1
- package/dist/vega/p-59b0f3c5.entry.js +0 -1
- package/dist/vega/p-59cfed37.entry.js +0 -1
- package/dist/vega/p-5f589974.js +0 -1
- package/dist/vega/p-60e1ebe1.entry.js +0 -1
- package/dist/vega/p-629bd266.entry.js +0 -1
- package/dist/vega/p-644d7300.entry.js +0 -1
- package/dist/vega/p-64e0c944.entry.js +0 -1
- package/dist/vega/p-64e49394.entry.js +0 -1
- package/dist/vega/p-66b9e86d.entry.js +0 -1
- package/dist/vega/p-74958b1a.js +0 -1
- package/dist/vega/p-74ff73d6.entry.js +0 -1
- package/dist/vega/p-76a8ccbb.js +0 -1
- package/dist/vega/p-781fd6e0.js +0 -1
- package/dist/vega/p-7c37e5bb.js +0 -1
- package/dist/vega/p-7f2441d6.js +0 -1
- package/dist/vega/p-8120e7a1.entry.js +0 -1
- package/dist/vega/p-894c067a.entry.js +0 -1
- package/dist/vega/p-989b36a2.entry.js +0 -1
- package/dist/vega/p-9b7f9c27.entry.js +0 -1
- package/dist/vega/p-9cfae00d.entry.js +0 -1
- package/dist/vega/p-9d19c126.entry.js +0 -1
- package/dist/vega/p-a247e23c.entry.js +0 -1
- package/dist/vega/p-a8a809e1.entry.js +0 -1
- package/dist/vega/p-a9e1123a.js +0 -1
- package/dist/vega/p-af7e6dfb.entry.js +0 -1
- package/dist/vega/p-b071be5c.entry.js +0 -1
- package/dist/vega/p-b6bffdf3.entry.js +0 -1
- package/dist/vega/p-b7e52da9.entry.js +0 -1
- package/dist/vega/p-b7ebb9fa.entry.js +0 -1
- package/dist/vega/p-bf6d3c00.entry.js +0 -1
- package/dist/vega/p-c00fde35.entry.js +0 -1
- package/dist/vega/p-c1f7f37c.entry.js +0 -1
- package/dist/vega/p-c2e96537.entry.js +0 -1
- package/dist/vega/p-cc8ec82c.entry.js +0 -1
- package/dist/vega/p-ce94a9c5.entry.js +0 -1
- package/dist/vega/p-d03945cb.entry.js +0 -1
- package/dist/vega/p-d2e6090a.js +0 -1
- package/dist/vega/p-d638f007.entry.js +0 -1
- package/dist/vega/p-d7219734.js +0 -1
- package/dist/vega/p-ddac683a.entry.js +0 -1
- package/dist/vega/p-e0d3ca2d.js +0 -1
- package/dist/vega/p-e4ca75a7.entry.js +0 -1
- package/dist/vega/p-e4ce559d.entry.js +0 -1
- package/dist/vega/p-e6fdc69f.entry.js +0 -1
- package/dist/vega/p-e95668f3.entry.js +0 -1
- package/dist/vega/p-ea78ddfa.entry.js +0 -1
- package/dist/vega/p-ebc062f6.entry.js +0 -1
- package/dist/vega/p-ec4de3ec.js +0 -1
- package/dist/vega/p-f1ebe86b.entry.js +0 -1
- package/dist/vega/p-f41102cd.js +0 -1
- package/dist/vega/p-f5b0ce61.js +0 -1
- package/dist/vega/p-fc49a98e.entry.js +0 -1
- /package/dist/types/helpers/{validator/test/rules/object-array-required-rule.test.d.ts → formatter/test/responsive-map-formatter/responsive-border-radius-style-formatter.test.d.ts} +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { isBorderRadiusTokenType, isDirectionalBorderRadiusType } from '../../../types/type-guard';
|
|
2
|
+
import { LogUtility } from '../../../utils/log';
|
|
3
|
+
import { BorderRadius } from '../../../constants/public-api';
|
|
4
|
+
import { ResponsiveCSSTextFormatter } from './responsive-css-text-formatter';
|
|
5
|
+
import { sortAsExistArray } from '../../../utils/array';
|
|
6
|
+
import { FeatureFlag } from '../../public-api';
|
|
7
|
+
const BORDER_RADIUS_DIRECTION_STYLE_MAP = {
|
|
8
|
+
'top': ['border-top-left-radius', 'border-top-right-radius'],
|
|
9
|
+
'right': ['border-top-right-radius', 'border-bottom-right-radius'],
|
|
10
|
+
'bottom': ['border-bottom-left-radius', 'border-bottom-right-radius'],
|
|
11
|
+
'left': ['border-top-left-radius', 'border-bottom-left-radius'],
|
|
12
|
+
'top-left': ['border-top-left-radius'],
|
|
13
|
+
'top-right': ['border-top-right-radius'],
|
|
14
|
+
'bottom-left': ['border-bottom-left-radius'],
|
|
15
|
+
'bottom-right': ['border-bottom-right-radius'],
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* A class for format BorderRadiusType with BreakpointsForPrefixType to CSS text string
|
|
19
|
+
*
|
|
20
|
+
* @augments ResponsiveClassStringFormatter
|
|
21
|
+
*/
|
|
22
|
+
class ResponsiveBorderRadiusStyleFormatter extends ResponsiveCSSTextFormatter {
|
|
23
|
+
/**
|
|
24
|
+
* Given a border-radius type, return a string of CSS classes that can be used to apply the border-radius to an element
|
|
25
|
+
*
|
|
26
|
+
* @param {CornersType} input - CornersType
|
|
27
|
+
* @returns {string} - A string of CSS text.
|
|
28
|
+
*/
|
|
29
|
+
formatToken(input) {
|
|
30
|
+
if (isBorderRadiusTokenType(input)) {
|
|
31
|
+
return `border-radius:${BorderRadius[input]}px`;
|
|
32
|
+
}
|
|
33
|
+
else if (isDirectionalBorderRadiusType(input)) {
|
|
34
|
+
return this.getDirectionKeys(input)
|
|
35
|
+
.map((direction) => {
|
|
36
|
+
return BORDER_RADIUS_DIRECTION_STYLE_MAP[direction]
|
|
37
|
+
.map((item) => {
|
|
38
|
+
return `${item}:${BorderRadius[input[direction]]}px`;
|
|
39
|
+
})
|
|
40
|
+
.join(';');
|
|
41
|
+
})
|
|
42
|
+
.join(';');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
LogUtility.warn(`The border radius value ${input} is invalid, it must be a value of: `, BorderRadius);
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the corners object keys. Order the keys as exist array if the feature flag enabled.
|
|
51
|
+
* The order affects the weight of the styles.
|
|
52
|
+
*
|
|
53
|
+
* @param {DirectionalBorderRadiusType} map - The corners input object.
|
|
54
|
+
* @returns {string[]} - The input object keys.
|
|
55
|
+
*/
|
|
56
|
+
getDirectionKeys(map) {
|
|
57
|
+
const directionKeys = Object.keys(map);
|
|
58
|
+
return FeatureFlag.isEnabled('VEGA_COMPONENT.CORNERS_USE_OLD_BEHAVIOR')
|
|
59
|
+
? sortAsExistArray(directionKeys, (direction) => map[direction], undefined, Object.keys(BorderRadius))
|
|
60
|
+
: directionKeys;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export default new ResponsiveBorderRadiusStyleFormatter();
|
package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-css-text-formatter.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isResponsiveType } from '../../../types/type-guard';
|
|
2
|
+
import { Breakpoints } from '../../../constants/public-api';
|
|
3
|
+
/**
|
|
4
|
+
* Get the style text from the responsive property.
|
|
5
|
+
*/
|
|
6
|
+
export class ResponsiveCSSTextFormatter {
|
|
7
|
+
/**
|
|
8
|
+
* > It takes a `ResponsiveType<ManagedResponsiveScopeInput[Flag]>` and returns a string
|
|
9
|
+
*
|
|
10
|
+
* @typedef Flag key of ManagedResponsiveScopeInput
|
|
11
|
+
* @param {ResponsiveType<ManagedResponsiveScopeInput[Flag]>} input - ManagedResponsiveScopeInput[Flag]
|
|
12
|
+
* @returns {string} - CSS text string.
|
|
13
|
+
*/
|
|
14
|
+
format(input) {
|
|
15
|
+
if (isResponsiveType(input)) {
|
|
16
|
+
return Object.keys(input)
|
|
17
|
+
.map((breakpoint) => {
|
|
18
|
+
const breakpointValue = input[breakpoint];
|
|
19
|
+
const breakPointFormatted = breakpoint !== 'default' ? breakpoint : undefined;
|
|
20
|
+
return this.generateCssText(this.formatToken(breakpointValue, breakPointFormatted), breakpoint);
|
|
21
|
+
})
|
|
22
|
+
.join(' ');
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return this.generateCssText(this.formatToken(input));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create the complete style text with media query selector.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} cssText - The style snippet.
|
|
32
|
+
* @param {BreakpointsTokenType} breakpoint - The screen breakpoint.
|
|
33
|
+
* @returns {string} - Style content with css selector.
|
|
34
|
+
*/
|
|
35
|
+
generateCssText(cssText, breakpoint) {
|
|
36
|
+
let result = '';
|
|
37
|
+
if (cssText) {
|
|
38
|
+
result =
|
|
39
|
+
breakpoint && breakpoint !== 'default'
|
|
40
|
+
? `@media (min-width:${Breakpoints[breakpoint]}px){:host{${cssText}}}`
|
|
41
|
+
: `:host{${cssText}}`;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
}
|
package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-format-facade.js
CHANGED
|
@@ -15,6 +15,9 @@ import ResponsiveBoxDisplayFormatter from './responsive-box-display-formatter';
|
|
|
15
15
|
import ResponsiveWidthAndHeightFormatter from './responsive-width-and-height-formatter';
|
|
16
16
|
import ResponsiveBorderRadiusFormatter from './responsiv-border-radius-formatter';
|
|
17
17
|
import ResponsiveTextAlignFormatter from './responsive-text-align-formatter';
|
|
18
|
+
import responsivePaddingStyleFormatter from './responsive-padding-style-formatter';
|
|
19
|
+
import responsiveMarginStyleFormatter from './responsive-margin-style-formatter';
|
|
20
|
+
import responsiveBorderRadiusStyleFormatter from './responsive-border-radius-style-formatter';
|
|
18
21
|
/**
|
|
19
22
|
* A facade class for delegating format input with different responsive formatters given the flag:
|
|
20
23
|
*
|
|
@@ -67,6 +70,12 @@ class ResponsiveFormatFacade {
|
|
|
67
70
|
return ResponsiveBorderRadiusFormatter.format(input);
|
|
68
71
|
case 'textAlign':
|
|
69
72
|
return ResponsiveTextAlignFormatter.format(input);
|
|
73
|
+
case 'paddingStyle':
|
|
74
|
+
return responsivePaddingStyleFormatter.format(input);
|
|
75
|
+
case 'marginStyle':
|
|
76
|
+
return responsiveMarginStyleFormatter.format(input);
|
|
77
|
+
case 'cornersStyle':
|
|
78
|
+
return responsiveBorderRadiusStyleFormatter.format(input);
|
|
70
79
|
default:
|
|
71
80
|
throw new Error(`Invalid flag ${flag} passed into ResponsiveFormatFacade`);
|
|
72
81
|
}
|
package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-margin-formatter.js
CHANGED
|
@@ -13,6 +13,7 @@ const MARGIN_DIRECTION_CLASS_PARTIAL_MAP = {
|
|
|
13
13
|
/**
|
|
14
14
|
* A class for format MarginType with BreakpointsForPrefixType to CSS class string
|
|
15
15
|
*
|
|
16
|
+
* @deprecated Please use the `ResponsiveMarginStyleFormatter` instead.
|
|
16
17
|
* @augments ResponsiveClassStringFormatter
|
|
17
18
|
*/
|
|
18
19
|
class ResponsiveMarginFormatter extends ResponsiveClassStringFormatter {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { isSpacingTokenType, isDirectionalSpacingType } from '../../../types/type-guard';
|
|
2
|
+
import { LogUtility } from '../../../utils/log';
|
|
3
|
+
import { Spacing } from '../../../constants/tokens/spacing';
|
|
4
|
+
import { ResponsiveCSSTextFormatter } from './responsive-css-text-formatter';
|
|
5
|
+
const MARGIN_DIRECTION_STYLE_MAP = {
|
|
6
|
+
top: ['margin-top'],
|
|
7
|
+
bottom: ['margin-bottom'],
|
|
8
|
+
left: ['margin-left'],
|
|
9
|
+
right: ['margin-right'],
|
|
10
|
+
x: ['margin-left', 'margin-right'],
|
|
11
|
+
y: ['margin-top', 'margin-bottom'],
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get the padding style content.
|
|
15
|
+
*/
|
|
16
|
+
class ResponsiveMarginStyleFormatter extends ResponsiveCSSTextFormatter {
|
|
17
|
+
/**
|
|
18
|
+
* Given a margin type, return a string of style content that can be used to apply the margin to an element
|
|
19
|
+
*
|
|
20
|
+
* @param {MarginType} input - MarginType
|
|
21
|
+
* @returns {string} - A string of style content.
|
|
22
|
+
*/
|
|
23
|
+
formatToken(input) {
|
|
24
|
+
if (isSpacingTokenType(input)) {
|
|
25
|
+
return `margin:${Spacing[input]}px`;
|
|
26
|
+
}
|
|
27
|
+
else if (isDirectionalSpacingType(input)) {
|
|
28
|
+
return Object.keys(input)
|
|
29
|
+
.map((direction) => {
|
|
30
|
+
return MARGIN_DIRECTION_STYLE_MAP[direction]
|
|
31
|
+
.map((item) => {
|
|
32
|
+
return `${item}:${Spacing[input[direction]]}px`;
|
|
33
|
+
})
|
|
34
|
+
.join(';');
|
|
35
|
+
})
|
|
36
|
+
.join(';');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
LogUtility.warn(`The margin value ${input} is invalid, it must be a value of: `, Spacing);
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export default new ResponsiveMarginStyleFormatter();
|
package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-padding-formatter.js
CHANGED
|
@@ -13,6 +13,7 @@ const PADDING_DIRECTION_CLASS_PARTIAL_MAP = {
|
|
|
13
13
|
/**
|
|
14
14
|
* A class for format PaddingType with BreakpointsForPrefixType to CSS class string
|
|
15
15
|
*
|
|
16
|
+
* @deprecated Please use the `ResponsivePaddingStyleFormatter` instead.
|
|
16
17
|
* @augments ResponsiveClassStringFormatter
|
|
17
18
|
*/
|
|
18
19
|
class ResponsivePaddingFormatter extends ResponsiveClassStringFormatter {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { isSpacingTokenType, isDirectionalSpacingType } from '../../../types/type-guard';
|
|
2
|
+
import { LogUtility } from '../../../utils/log';
|
|
3
|
+
import { Spacing } from '../../../constants/tokens/spacing';
|
|
4
|
+
import { ResponsiveCSSTextFormatter } from './responsive-css-text-formatter';
|
|
5
|
+
const PADDING_DIRECTION_STYLE_MAP = {
|
|
6
|
+
top: ['padding-top'],
|
|
7
|
+
bottom: ['padding-bottom'],
|
|
8
|
+
left: ['padding-left'],
|
|
9
|
+
right: ['padding-right'],
|
|
10
|
+
x: ['padding-left', 'padding-right'],
|
|
11
|
+
y: ['padding-top', 'padding-bottom'],
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get the padding style content.
|
|
15
|
+
*/
|
|
16
|
+
class ResponsivePaddingStyleFormatter extends ResponsiveCSSTextFormatter {
|
|
17
|
+
/**
|
|
18
|
+
* Given a padding type, return the corresponding string of CSS text.
|
|
19
|
+
*
|
|
20
|
+
* @param {PaddingType} input - PaddingType
|
|
21
|
+
* @returns {string} - CSS text.
|
|
22
|
+
*/
|
|
23
|
+
formatToken(input) {
|
|
24
|
+
if (isSpacingTokenType(input)) {
|
|
25
|
+
return `padding:${Spacing[input]}px`;
|
|
26
|
+
}
|
|
27
|
+
else if (isDirectionalSpacingType(input)) {
|
|
28
|
+
return Object.keys(input)
|
|
29
|
+
.map((direction) => {
|
|
30
|
+
return PADDING_DIRECTION_STYLE_MAP[direction]
|
|
31
|
+
.map((item) => {
|
|
32
|
+
return `${item}:${Spacing[input[direction]]}px`;
|
|
33
|
+
})
|
|
34
|
+
.join(';');
|
|
35
|
+
})
|
|
36
|
+
.join(';');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
LogUtility.warn(`The padding value ${input} is invalid, it must be a value of: `, Spacing);
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export default new ResponsivePaddingStyleFormatter();
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LogUtility } from '../../../../utils/log';
|
|
2
|
+
import { FeatureFlag } from '../../../public-api';
|
|
3
|
+
import ResponsiveCornersStyleFormatter from '../../responsive-map-formatter/responsive-border-radius-style-formatter';
|
|
4
|
+
test('should console warn when input not in scope', () => {
|
|
5
|
+
spyOn(LogUtility, 'warn');
|
|
6
|
+
ResponsiveCornersStyleFormatter.formatToken('24');
|
|
7
|
+
expect(LogUtility.warn).toHaveBeenCalled();
|
|
8
|
+
});
|
|
9
|
+
test('should return format when input in spacing scope', () => {
|
|
10
|
+
const result = ResponsiveCornersStyleFormatter.formatToken('rounded-24');
|
|
11
|
+
expect(result).toEqual('border-radius:24px');
|
|
12
|
+
});
|
|
13
|
+
test('should return format when input in directional type', () => {
|
|
14
|
+
const result = ResponsiveCornersStyleFormatter.formatToken({
|
|
15
|
+
top: 'rounded-12',
|
|
16
|
+
bottom: 'rounded-16',
|
|
17
|
+
left: 'rounded-full',
|
|
18
|
+
right: 'rounded-none',
|
|
19
|
+
});
|
|
20
|
+
expect(result).toEqual('border-top-left-radius:12px;border-top-right-radius:12px;border-bottom-left-radius:16px;border-bottom-right-radius:16px;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-right-radius:0px;border-bottom-right-radius:0px');
|
|
21
|
+
});
|
|
22
|
+
test('should return format when input in directional type and enable feature flag', () => {
|
|
23
|
+
FeatureFlag.enable('VEGA_COMPONENT.CORNERS_USE_OLD_BEHAVIOR');
|
|
24
|
+
const result = ResponsiveCornersStyleFormatter.formatToken({
|
|
25
|
+
top: 'rounded-12',
|
|
26
|
+
bottom: 'rounded-16',
|
|
27
|
+
left: 'rounded-full',
|
|
28
|
+
right: 'rounded-none',
|
|
29
|
+
});
|
|
30
|
+
expect(result).toEqual('border-top-right-radius:0px;border-bottom-right-radius:0px;border-top-left-radius:9999px;border-bottom-left-radius:9999px;border-top-left-radius:12px;border-top-right-radius:12px;border-bottom-left-radius:16px;border-bottom-right-radius:16px');
|
|
31
|
+
FeatureFlag.disable('VEGA_COMPONENT.CORNERS_USE_OLD_BEHAVIOR');
|
|
32
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LogUtility } from '../../../../utils/log';
|
|
2
|
+
import ResponsiveMarginStyleFormatter from '../../responsive-map-formatter/responsive-margin-style-formatter';
|
|
3
|
+
test('should console warn when input not in scope', () => {
|
|
4
|
+
spyOn(LogUtility, 'warn');
|
|
5
|
+
ResponsiveMarginStyleFormatter.formatToken('24');
|
|
6
|
+
expect(LogUtility.warn).toHaveBeenCalled();
|
|
7
|
+
});
|
|
8
|
+
test('should return format when input in spacing scope', () => {
|
|
9
|
+
const result = ResponsiveMarginStyleFormatter.formatToken('size-24');
|
|
10
|
+
expect(result).toEqual('margin:24px');
|
|
11
|
+
});
|
|
12
|
+
test('should return format when input is directional type', () => {
|
|
13
|
+
const result = ResponsiveMarginStyleFormatter.formatToken({
|
|
14
|
+
top: 'size-12',
|
|
15
|
+
x: 'size-24',
|
|
16
|
+
bottom: 'size-8',
|
|
17
|
+
});
|
|
18
|
+
expect(result).toEqual('margin-top:12px;margin-left:24px;margin-right:24px;margin-bottom:8px');
|
|
19
|
+
});
|
|
20
|
+
test('should return format when input is responsive type', () => {
|
|
21
|
+
expect(ResponsiveMarginStyleFormatter.format('0')).toEqual(':host{margin:0px}');
|
|
22
|
+
const result = ResponsiveMarginStyleFormatter.format({
|
|
23
|
+
default: 'size-8',
|
|
24
|
+
S: 'size-12',
|
|
25
|
+
M: { top: 'size-12', x: 'size-24', bottom: 'size-8' },
|
|
26
|
+
});
|
|
27
|
+
expect(result).toEqual(':host{margin:8px} @media (min-width:320px){:host{margin:12px}} @media (min-width:768px){:host{margin-top:12px;margin-left:24px;margin-right:24px;margin-bottom:8px}}');
|
|
28
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LogUtility } from '../../../../utils/log';
|
|
2
|
+
import ResponsivePaddingStyleFormatter from '../../responsive-map-formatter/responsive-padding-style-formatter';
|
|
3
|
+
test('should console warn when input not in scope', () => {
|
|
4
|
+
spyOn(LogUtility, 'warn');
|
|
5
|
+
ResponsivePaddingStyleFormatter.formatToken('24');
|
|
6
|
+
expect(LogUtility.warn).toHaveBeenCalled();
|
|
7
|
+
});
|
|
8
|
+
test('should return format when input in spacing scope', () => {
|
|
9
|
+
const result = ResponsivePaddingStyleFormatter.formatToken('size-24');
|
|
10
|
+
expect(result).toEqual('padding:24px');
|
|
11
|
+
});
|
|
12
|
+
test('should return format when input is directional type', () => {
|
|
13
|
+
const result = ResponsivePaddingStyleFormatter.formatToken({
|
|
14
|
+
top: 'size-12',
|
|
15
|
+
x: 'size-24',
|
|
16
|
+
bottom: 'size-8',
|
|
17
|
+
});
|
|
18
|
+
expect(result).toEqual('padding-top:12px;padding-left:24px;padding-right:24px;padding-bottom:8px');
|
|
19
|
+
});
|
|
20
|
+
test('should return format when input is responsive type', () => {
|
|
21
|
+
expect(ResponsivePaddingStyleFormatter.format('0')).toEqual(':host{padding:0px}');
|
|
22
|
+
const result = ResponsivePaddingStyleFormatter.format({
|
|
23
|
+
default: 'size-8',
|
|
24
|
+
S: 'size-12',
|
|
25
|
+
M: { top: 'size-12', x: 'size-24', bottom: 'size-8' },
|
|
26
|
+
});
|
|
27
|
+
expect(result).toEqual(':host{padding:8px} @media (min-width:320px){:host{padding:12px}} @media (min-width:768px){:host{padding-top:12px;padding-left:24px;padding-right:24px;padding-bottom:8px}}');
|
|
28
|
+
});
|
|
@@ -85,7 +85,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
85
85
|
if (this.shouldListenerWork('custom') &&
|
|
86
86
|
this.isShowing() &&
|
|
87
87
|
this.showConfig &&
|
|
88
|
-
!
|
|
88
|
+
!findParent(currentTarget, '.vega-element-appender-appendable') &&
|
|
89
89
|
!isParent(currentTarget, this.showConfig.target) &&
|
|
90
90
|
findParent(currentTarget, 'vega-modal') === findParent(this.showConfig.target, 'vega-modal')) {
|
|
91
91
|
this.hide();
|
|
@@ -137,10 +137,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
137
137
|
}
|
|
138
138
|
disconnectedCallback() {
|
|
139
139
|
this.unRegisterElementAppenderListener();
|
|
140
|
-
|
|
141
|
-
this.elementAppender.destroy();
|
|
142
|
-
this.elementAppender = null;
|
|
143
|
-
}
|
|
140
|
+
this.destroyElementAppender();
|
|
144
141
|
}
|
|
145
142
|
componentDidLoad() {
|
|
146
143
|
this.initElementAppender();
|
|
@@ -157,13 +154,19 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
157
154
|
this[this.isDropdownShowName] = false;
|
|
158
155
|
}
|
|
159
156
|
destroy() {
|
|
160
|
-
this.
|
|
157
|
+
this.destroyElementAppender();
|
|
161
158
|
this[this.isDropdownShowName] = false;
|
|
162
159
|
}
|
|
163
160
|
updateShowConfigFactory(showConfigFactory) {
|
|
164
161
|
this.showConfigFactory = showConfigFactory;
|
|
165
162
|
this.initElementAppender();
|
|
166
163
|
}
|
|
164
|
+
destroyElementAppender() {
|
|
165
|
+
if (this.elementAppender) {
|
|
166
|
+
this.elementAppender.destroy();
|
|
167
|
+
this.elementAppender = null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
167
170
|
initElementAppender() {
|
|
168
171
|
this.setShowConfig();
|
|
169
172
|
this.setElementAppender();
|
|
@@ -107,9 +107,11 @@ describe('ElementAppender slimmer test suite', () => {
|
|
|
107
107
|
expect(mockedComponent.isDropdownShow).toBeFalsy();
|
|
108
108
|
expect(mockedComponent.getElementAppender()['undefinedAttribute']).toEqual(undefined);
|
|
109
109
|
expect(mockedComponent.appendableElement).toHaveClass('vega-force-hidden');
|
|
110
|
+
spyOn(element, 'remove').and.callThrough();
|
|
110
111
|
mockedComponent.destroy();
|
|
111
112
|
expect(mockedComponent.getElementAppender()).toBeNull();
|
|
112
113
|
expect(mockedComponent.isDropdownShow).toBeFalsy();
|
|
114
|
+
expect(element.remove).toBeCalledTimes(1);
|
|
113
115
|
});
|
|
114
116
|
test('should listen event proper while trigger is click', () => {
|
|
115
117
|
const mockedComponent = new MockedComponent();
|
|
@@ -118,6 +118,7 @@ export class ElementAppender {
|
|
|
118
118
|
if (!this.showConfig)
|
|
119
119
|
return;
|
|
120
120
|
this.removeVisibleAppendElement(this.showConfig.appendableElement);
|
|
121
|
+
this.resetContainerPosition();
|
|
121
122
|
InternalVegaZIndexManager.removeZIndex(this.showConfig.appendableElement, 'base');
|
|
122
123
|
this.showConfig.appendableElement.remove();
|
|
123
124
|
this.disconnectResizeObserver();
|
|
@@ -211,6 +212,7 @@ export class ElementAppender {
|
|
|
211
212
|
if (!this.showConfig.isScreenPosition) {
|
|
212
213
|
this.initVisibleAppendElement();
|
|
213
214
|
}
|
|
215
|
+
this.showConfig.appendableElement.classList.add('vega-element-appender-appendable');
|
|
214
216
|
this.showConfig.appendableElement.style.boxSizing = 'border-box';
|
|
215
217
|
this.positionCalculationController.setCalculationStrategy();
|
|
216
218
|
}
|
|
@@ -23,7 +23,7 @@ test('return result as expect when call show', () => {
|
|
|
23
23
|
drop1.show();
|
|
24
24
|
expect(document.body).toEqualHtml(`
|
|
25
25
|
<div class="test-parent-host"><div class="test-host"></div></div>
|
|
26
|
-
<div class="dropdown vega-placement-bottom vega-alignment-start" style="box-sizing: border-box; left: 0px; top: 0px; z-index: 10001;"></div>
|
|
26
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-bottom vega-alignment-start" style="box-sizing: border-box; left: 0px; top: 0px; z-index: 10001;"></div>
|
|
27
27
|
`);
|
|
28
28
|
drop1.hide();
|
|
29
29
|
spyOn(target, 'getBoundingClientRect').and.returnValue({
|
|
@@ -42,7 +42,7 @@ test('return result as expect when call show', () => {
|
|
|
42
42
|
drop2.show();
|
|
43
43
|
expect(document.body).toEqualHtml(`
|
|
44
44
|
<div class="test-parent-host"><div class="test-host"></div></div>
|
|
45
|
-
<div class="dropdown vega-placement-top vega-alignment-start" style=" box-sizing: border-box; left: 20px; top: 100px; width: 200px; z-index: 10001;"></div>
|
|
45
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-top vega-alignment-start" style=" box-sizing: border-box; left: 20px; top: 100px; width: 200px; z-index: 10001;"></div>
|
|
46
46
|
`);
|
|
47
47
|
drop2.hide();
|
|
48
48
|
const drop3 = new ElementAppender({
|
|
@@ -105,7 +105,7 @@ test('return result as expect when call hide', () => {
|
|
|
105
105
|
drop.hide();
|
|
106
106
|
expect(document.body).toEqualHtml(`
|
|
107
107
|
<div class="test-parent-host"><div class="test-host"></div></div>
|
|
108
|
-
<div class="dropdown vega-placement-bottom vega-alignment-start vega-force-hidden" style="box-sizing: border-box; left: 0px; top: 0px;"></div>
|
|
108
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-bottom vega-alignment-start vega-force-hidden" style="box-sizing: border-box; left: 0px; top: 0px;"></div>
|
|
109
109
|
`);
|
|
110
110
|
});
|
|
111
111
|
test('should not change css position in body when is not static', () => {
|
|
@@ -151,6 +151,7 @@ test('return result as expect when call destroy', () => {
|
|
|
151
151
|
expect(document.body).toEqualHtml(`
|
|
152
152
|
<div class="test-parent-host"><div class="test-host"></div></div>
|
|
153
153
|
`);
|
|
154
|
+
expect(document.body.style.position).toEqual('static');
|
|
154
155
|
});
|
|
155
156
|
test('content should append to body while not in modal', () => {
|
|
156
157
|
const target = document.createElement('vega-input-select');
|
|
@@ -164,7 +165,7 @@ test('content should append to body while not in modal', () => {
|
|
|
164
165
|
drop.show();
|
|
165
166
|
expect(document.body).toEqualHtml(`
|
|
166
167
|
<vega-input-select></vega-input-select>
|
|
167
|
-
<div class="dropdown vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: 0px; top: 0px; z-index: 10001;"></div
|
|
168
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: 0px; top: 0px; z-index: 10001;"></div
|
|
168
169
|
`);
|
|
169
170
|
drop.hide();
|
|
170
171
|
});
|
|
@@ -190,7 +191,7 @@ test('content should append to modal while in modal', () => {
|
|
|
190
191
|
<div class="modal-dialog"></div>
|
|
191
192
|
</mock:shadow-root>
|
|
192
193
|
<vega-input-select slot="content"></vega-input-select>
|
|
193
|
-
<div class="dropdown vega-alignment-start vega-placement-top" slot="content" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
194
|
+
<div class="dropdown vega-element-appender-appendable vega-alignment-start vega-placement-top" slot="content" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
194
195
|
</vega-modal>`);
|
|
195
196
|
drop.hide();
|
|
196
197
|
});
|
|
@@ -211,7 +212,7 @@ test('content append proper while positionRelativeTo set', () => {
|
|
|
211
212
|
expect(document.body).toEqualHtml(`
|
|
212
213
|
<div id="container">
|
|
213
214
|
<vega-input-select></vega-input-select>
|
|
214
|
-
<div class="dropdown vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
215
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
215
216
|
</div>
|
|
216
217
|
`);
|
|
217
218
|
drop.hide();
|
|
@@ -242,7 +243,7 @@ test('content should append to modal content while in scroll modal content', ()
|
|
|
242
243
|
</div>
|
|
243
244
|
</mock:shadow-root>
|
|
244
245
|
<vega-input-select></vega-input-select>
|
|
245
|
-
<div class="dropdown vega-alignment-start vega-placement-top" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
246
|
+
<div class="dropdown vega-element-appender-appendable vega-alignment-start vega-placement-top" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
246
247
|
</vega-modal>`);
|
|
247
248
|
drop.hide();
|
|
248
249
|
});
|
|
@@ -265,7 +266,7 @@ test('content should append to popover content while in scroll modal content', (
|
|
|
265
266
|
<vega-modal>
|
|
266
267
|
<vega-popover class="vega-popover">
|
|
267
268
|
<vega-input-select></vega-input-select>
|
|
268
|
-
<div class="dropdown vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
269
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-top vega-alignment-start" style="box-sizing: border-box; left: NaNpx; top: NaNpx; z-index: 10001;"></div>
|
|
269
270
|
</vega-popover>
|
|
270
271
|
</vega-modal>
|
|
271
272
|
`);
|
|
@@ -354,7 +355,7 @@ test('return result as expect when max/min width set', () => {
|
|
|
354
355
|
element.style.removeProperty('z-index');
|
|
355
356
|
expect(document.body).toEqualHtml(`
|
|
356
357
|
<div class="test-parent-host"><div class="test-host"></div></div>
|
|
357
|
-
<div class="dropdown vega-placement-top vega-alignment-start" style="box-sizing: border-box; min-width: 100px; max-width: 300px; left: 0px; top: 0px;"></div>
|
|
358
|
+
<div class="dropdown vega-element-appender-appendable vega-placement-top vega-alignment-start" style="box-sizing: border-box; min-width: 100px; max-width: 300px; left: 0px; top: 0px;"></div>
|
|
358
359
|
`);
|
|
359
360
|
drop.hide();
|
|
360
361
|
});
|
|
@@ -448,7 +449,7 @@ describe('screen position', () => {
|
|
|
448
449
|
});
|
|
449
450
|
drop1.show();
|
|
450
451
|
expect(element).toEqualHtml(`
|
|
451
|
-
<div class="dropdown vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: 50px; z-index: 10001;"></div>
|
|
452
|
+
<div class="dropdown vega-element-appender-appendable vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: 50px; z-index: 10001;"></div>
|
|
452
453
|
`);
|
|
453
454
|
drop1['previousTargetRect'] = {
|
|
454
455
|
left: 10,
|
|
@@ -456,7 +457,7 @@ describe('screen position', () => {
|
|
|
456
457
|
};
|
|
457
458
|
drop1.onScroll();
|
|
458
459
|
expect(element).toEqualHtml(`
|
|
459
|
-
<div class="dropdown vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: 50px; z-index: 10001;"></div>
|
|
460
|
+
<div class="dropdown vega-element-appender-appendable vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: 50px; z-index: 10001;"></div>
|
|
460
461
|
`);
|
|
461
462
|
drop1['previousTargetRect'] = {
|
|
462
463
|
left: 100,
|
|
@@ -472,7 +473,7 @@ describe('screen position', () => {
|
|
|
472
473
|
drop1['previousTargetRect'] = undefined;
|
|
473
474
|
drop1.onScroll();
|
|
474
475
|
expect(element).toEqualHtml(`
|
|
475
|
-
<div class="dropdown vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: -10px; z-index: 10001;"></div>
|
|
476
|
+
<div class="dropdown vega-element-appender-appendable vega-alignment-start vega-placement-top" style="box-sizing: border-box; position: fixed; left: 100px; top: -10px; z-index: 10001;"></div>
|
|
476
477
|
`);
|
|
477
478
|
});
|
|
478
479
|
});
|
|
@@ -13,6 +13,7 @@ import { InjectVegaSlimmer, createDynamicSlimmer, methodPlaceholder } from 'vega
|
|
|
13
13
|
import { FieldErrorUIControllerSlimmer } from '../slimmers/field-error-ui-controller-slimmer';
|
|
14
14
|
import { PageResizeObserverSlimmer } from '../slimmers/page-resize-observer-slimmer';
|
|
15
15
|
import { FormFieldMessageTranslatorSlimmer } from '../slimmers/form-field-message-translator';
|
|
16
|
+
import { InternalFormFieldValidationRule } from './rules/internal-form-field-validation-rule.abstract';
|
|
16
17
|
/**
|
|
17
18
|
* The FormFieldController class is a class that validates the value of an input elements
|
|
18
19
|
*
|
|
@@ -152,7 +153,11 @@ export class FormFieldController {
|
|
|
152
153
|
* @returns {FormFieldValidationRule<number | string | boolean>[]} An array of FormFieldValidationRule<T>
|
|
153
154
|
*/
|
|
154
155
|
getRules() {
|
|
155
|
-
|
|
156
|
+
const additionalRules = [...this.additionalRules];
|
|
157
|
+
const overriddenDefaultRules = this.defaultRules.map((rule) => {
|
|
158
|
+
return this.overrideDefaultRuleByAdditionalRule(rule, additionalRules);
|
|
159
|
+
});
|
|
160
|
+
return [...overriddenDefaultRules, ...additionalRules];
|
|
156
161
|
}
|
|
157
162
|
/**
|
|
158
163
|
* Set the default rules for the form field.
|
|
@@ -441,6 +446,28 @@ export class FormFieldController {
|
|
|
441
446
|
return isEnterKey;
|
|
442
447
|
}
|
|
443
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* It overrides the default rule by checking if the additional rules contain a custom rule that overrides.
|
|
451
|
+
* If it does, it returns that additional rule, and the rule will be removed from the additional rules array.
|
|
452
|
+
* otherwise, it returns the default rule.
|
|
453
|
+
*
|
|
454
|
+
* @param {InternalFormFieldValidationRule} defaultRule - The rule to be overridden.
|
|
455
|
+
* @param {FormFieldValidationRule[]} additionalRules - The additional rules to be applied.
|
|
456
|
+
* @returns {FormFieldValidationRule} The overridden rule.
|
|
457
|
+
*/
|
|
458
|
+
overrideDefaultRuleByAdditionalRule(defaultRule, additionalRules) {
|
|
459
|
+
if (defaultRule && additionalRules) {
|
|
460
|
+
const customRuleIndex = additionalRules.findIndex((customRule) => {
|
|
461
|
+
return (customRule instanceof InternalFormFieldValidationRule &&
|
|
462
|
+
customRule instanceof defaultRule.constructor &&
|
|
463
|
+
customRule.overrideDefault);
|
|
464
|
+
});
|
|
465
|
+
if (customRuleIndex > -1) {
|
|
466
|
+
return additionalRules.splice(customRuleIndex, 1)[0];
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
return defaultRule;
|
|
470
|
+
}
|
|
444
471
|
}
|
|
445
472
|
__decorate([
|
|
446
473
|
InjectVegaSlimmer()
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { CheckBoxRequiredRule } from './rules/check-box-required-rule';
|
|
2
|
+
export { DateRequiredRule } from './rules/date-required-rule';
|
|
3
|
+
export { InputPhoneNumberRequiredRule } from './rules/input-phone-number-required-rule';
|
|
4
|
+
export { InputRangeRequiredRule } from './rules/input-range-required-rule';
|
|
5
|
+
export { RequiredFieldRule } from './rules/required-field-rule';
|
|
6
|
+
export { RichTextEditorRequiredRule } from './rules/rich-text-editor-required-rule';
|
|
7
|
+
export { TimeRangeRequiredRule } from './rules/time-range-required-rule';
|
|
8
|
+
export { TimeRequiredRule } from './rules/time-required-rule';
|
|
9
|
+
export { ToggleSwitchRequiredRule } from './rules/toggle-switch-required-rule';
|
|
10
|
+
export { FileUploaderRequiredRule } from './rules/file-uploader-required-rule';
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { InternalFormFieldValidationRule } from './internal-form-field-validation-rule.abstract';
|
|
1
2
|
/**
|
|
2
3
|
* A rule that checks if a string is empty or not
|
|
3
4
|
*
|
|
4
|
-
* @
|
|
5
|
+
* @augments {InternalFormFieldValidationRule<string>}
|
|
5
6
|
*/
|
|
6
|
-
export class CheckBoxRequiredRule {
|
|
7
|
+
export class CheckBoxRequiredRule extends InternalFormFieldValidationRule {
|
|
7
8
|
/**
|
|
8
9
|
* If the input is a boolean, return a boolean. If the input is a string, return a boolean. If the
|
|
9
10
|
* input is anything else, return false
|
|
10
11
|
*
|
|
11
12
|
* @param {string | boolean} input - The input to be evaluated.
|
|
12
|
-
* @returns {
|
|
13
|
+
* @returns {EvaluateResult} - An object with two properties: isValid and message.
|
|
13
14
|
*/
|
|
14
15
|
evaluate(input) {
|
|
15
16
|
if (typeof input === 'boolean') {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { isDateStr, compareIsSameOrBefore } from '../../../utils/date';
|
|
2
|
+
import { InternalFormFieldValidationRule } from './internal-form-field-validation-rule.abstract';
|
|
2
3
|
/**
|
|
3
4
|
* A rule that checks if start date is before than end date
|
|
4
5
|
*/
|
|
5
|
-
export class DateRangeRule {
|
|
6
|
+
export class DateRangeRule extends InternalFormFieldValidationRule {
|
|
6
7
|
/**
|
|
7
8
|
* If the input is accepted and the status is not disabled and visible, then return true
|
|
8
9
|
*
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { isDateStr } from '../../../utils/date';
|
|
2
|
+
import { InternalFormFieldValidationRule } from './internal-form-field-validation-rule.abstract';
|
|
2
3
|
/**
|
|
3
4
|
* A rule that checks if date is empty or not
|
|
4
5
|
*
|
|
5
|
-
* @
|
|
6
|
+
* @augments {InternalFormFieldValidationRule<string | string[]>}
|
|
6
7
|
*/
|
|
7
|
-
export class DateRequiredRule {
|
|
8
|
+
export class DateRequiredRule extends InternalFormFieldValidationRule {
|
|
8
9
|
/**
|
|
9
10
|
* It creates a new instance of the class with the given config.
|
|
10
11
|
*
|
|
@@ -12,6 +13,7 @@ export class DateRequiredRule {
|
|
|
12
13
|
* @param {'single' | 'range'} config.mode - The mode for date value
|
|
13
14
|
*/
|
|
14
15
|
constructor(config) {
|
|
16
|
+
super();
|
|
15
17
|
this.config = config;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
@@ -19,7 +21,7 @@ export class DateRequiredRule {
|
|
|
19
21
|
* Otherwise, return an object with a boolean indicating whether the input is valid and a message to display to the user
|
|
20
22
|
*
|
|
21
23
|
* @param {string | string[]} input - The value of the input field.
|
|
22
|
-
* @returns {
|
|
24
|
+
* @returns {EvaluateResult} An object with two properties: isValid and message.
|
|
23
25
|
*/
|
|
24
26
|
evaluate(input) {
|
|
25
27
|
if (!this.isAcceptedInputType(input)) {
|