q2-tecton-elements 1.51.1 → 1.52.1
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/click-elsewhere_2.cjs.entry.js +16 -5
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-9aa4a776.js → index-07285783.js} +86 -2
- package/dist/cjs/index-07285783.js.map +1 -0
- package/dist/cjs/{index-14c3693c.js → index-e7e68b1e.js} +40 -5
- package/dist/cjs/index-e7e68b1e.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/q2-action-group.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js +3 -3
- package/dist/cjs/q2-avatar.cjs.entry.js +2 -2
- package/dist/cjs/q2-badge_7.cjs.entry.js +49 -44
- package/dist/cjs/q2-badge_7.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +17 -20
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +4 -2
- package/dist/cjs/q2-card.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +4 -4
- package/dist/cjs/q2-carousel.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js +16 -3
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +3 -3
- package/dist/cjs/q2-chart-donut.cjs.entry.js +19 -3
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +6 -5
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/q2-currency.cjs.entry.js +14 -2
- package/dist/cjs/q2-currency.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +3 -3
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +3 -3
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +12 -14
- package/dist/cjs/q2-dropdown-item.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +7 -5
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +3 -3
- package/dist/cjs/q2-example.cjs.entry.js +145 -0
- package/dist/cjs/q2-example.cjs.entry.js.map +1 -0
- package/dist/cjs/q2-formatted-text.cjs.entry.js +2 -2
- package/dist/cjs/q2-item.cjs.entry.js +3 -3
- package/dist/cjs/q2-legend.cjs.entry.js +2 -2
- package/dist/cjs/q2-link.cjs.entry.js +4 -4
- package/dist/cjs/q2-link.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-list.cjs.entry.js +6 -7
- package/dist/cjs/q2-list.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loading-element.cjs.entry.js +2 -2
- package/dist/cjs/q2-loc.cjs.entry.js +52 -3
- package/dist/cjs/q2-loc.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +3 -3
- package/dist/cjs/q2-month-picker.cjs.entry.js +4 -4
- package/dist/cjs/q2-optgroup.cjs.entry.js +5 -4
- package/dist/cjs/q2-optgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +2 -2
- package/dist/cjs/q2-option.cjs.entry.js +50 -33
- package/dist/cjs/q2-option.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +11 -7
- package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +19 -18
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +5 -5
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +3 -3
- package/dist/cjs/q2-relative-time.cjs.entry.js +3 -3
- package/dist/cjs/q2-resize-observer.cjs.entry.js +2 -2
- package/dist/cjs/q2-section.cjs.entry.js +8 -6
- package/dist/cjs/q2-section.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +6 -5
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +5 -4
- package/dist/cjs/q2-stepper-pane.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +16 -4
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +6 -4
- package/dist/cjs/q2-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +6 -4
- package/dist/cjs/q2-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +2 -2
- package/dist/cjs/q2-textarea.cjs.entry.js +3 -3
- package/dist/cjs/q2-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{shapes-be198cc0.js → shapes-5d45fc11.js} +2 -2
- package/dist/cjs/{shapes-be198cc0.js.map → shapes-5d45fc11.js.map} +1 -1
- package/dist/cjs/tecton-tab-pane.cjs.entry.js +3 -3
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/q2-action-group/q2-action-group.js +1 -1
- package/dist/collection/components/q2-action-sheet/q2-action-sheet.js +1 -1
- package/dist/collection/components/q2-avatar/q2-avatar.js +1 -1
- package/dist/collection/components/q2-calendar/q2-calendar.js +16 -18
- package/dist/collection/components/q2-calendar/q2-calendar.js.map +1 -1
- package/dist/collection/components/q2-calendar/q2-month-picker.js +2 -2
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js +27 -0
- package/dist/collection/components/q2-calendar/test/q2-calendar-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-card/q2-card.js +2 -0
- package/dist/collection/components/q2-card/q2-card.js.map +1 -1
- package/dist/collection/components/q2-carousel-pane/q2-carousel-pane.js +2 -2
- package/dist/collection/components/q2-chart-area/q2-chart-area.js +42 -1
- package/dist/collection/components/q2-chart-area/q2-chart-area.js.map +1 -1
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js +15 -0
- package/dist/collection/components/q2-chart-area/test/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/q2-chart-bar.js +1 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js +41 -1
- package/dist/collection/components/q2-chart-donut/q2-chart-donut.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js +11 -0
- package/dist/collection/components/q2-chart-donut/test/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.css +30 -23
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js +4 -3
- package/dist/collection/components/q2-checkbox-group/q2-checkbox-group.js.map +1 -1
- package/dist/collection/components/q2-currency/q2-currency.js +37 -1
- package/dist/collection/components/q2-currency/q2-currency.js.map +1 -1
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js +34 -23
- package/dist/collection/components/q2-currency/test/q2-currency-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js +1 -1
- package/dist/collection/components/q2-data-table/q2-data-table.js.map +1 -1
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js +6 -4
- package/dist/collection/components/q2-data-table/test/q2-data-table-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-detail/q2-detail.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.css +5 -0
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +10 -4
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js +59 -14
- package/dist/collection/components/q2-dropdown/test/q2-dropdown-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.css +29 -11
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js +9 -11
- package/dist/collection/components/q2-dropdown-item/q2-dropdown-item.js.map +1 -1
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js +108 -74
- package/dist/collection/components/q2-dropdown-item/test/q2-dropdown-item-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-editable-field/q2-editable-field.js +1 -1
- package/dist/collection/components/q2-example/q2-example.css +66 -0
- package/dist/collection/components/q2-example/q2-example.js +312 -0
- package/dist/collection/components/q2-example/q2-example.js.map +1 -0
- package/dist/collection/components/q2-example/test/q2-example.e2e.js +27 -0
- package/dist/collection/components/q2-example/test/q2-example.e2e.js.map +1 -0
- package/dist/collection/components/q2-example/test/q2-example.spec.js +126 -0
- package/dist/collection/components/q2-example/test/q2-example.spec.js.map +1 -0
- package/dist/collection/components/q2-formatted-text/q2-formatted-text.js +1 -1
- package/dist/collection/components/q2-input/formatting/alpha.spec.js +10 -0
- package/dist/collection/components/q2-input/formatting/alpha.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js +7 -0
- package/dist/collection/components/q2-input/formatting/alphanumeric.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/currency.spec.js +20 -0
- package/dist/collection/components/q2-input/formatting/currency.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/date.js +1 -1
- package/dist/collection/components/q2-input/formatting/date.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/date.spec.js +17 -0
- package/dist/collection/components/q2-input/formatting/date.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/numeric.spec.js +32 -0
- package/dist/collection/components/q2-input/formatting/numeric.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/phone.spec.js +16 -0
- package/dist/collection/components/q2-input/formatting/phone.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/postal.js +1 -1
- package/dist/collection/components/q2-input/formatting/postal.js.map +1 -1
- package/dist/collection/components/q2-input/formatting/postal.spec.js +28 -0
- package/dist/collection/components/q2-input/formatting/postal.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/ssn.spec.js +7 -0
- package/dist/collection/components/q2-input/formatting/ssn.spec.js.map +1 -0
- package/dist/collection/components/q2-input/formatting/tin.spec.js +7 -0
- package/dist/collection/components/q2-input/formatting/tin.spec.js.map +1 -0
- package/dist/collection/components/q2-input/q2-input.js +58 -44
- package/dist/collection/components/q2-input/q2-input.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js +259 -2106
- package/dist/collection/components/q2-input/test/q2-input-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-input/test/q2-input-test.spec.js +4035 -0
- package/dist/collection/components/q2-input/test/q2-input-test.spec.js.map +1 -0
- package/dist/collection/components/q2-item/q2-item.js +1 -1
- package/dist/collection/components/q2-legend/q2-legend.js +1 -1
- package/dist/collection/components/q2-link/q2-link.css +17 -20
- package/dist/collection/components/q2-link/q2-link.js +2 -2
- package/dist/collection/components/q2-link/q2-link.js.map +1 -1
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js +6 -6
- package/dist/collection/components/q2-link/test/q2-link-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-list/q2-list.js +4 -5
- package/dist/collection/components/q2-list/q2-list.js.map +1 -1
- package/dist/collection/components/q2-loc/q2-loc.js +66 -4
- package/dist/collection/components/q2-loc/q2-loc.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js +19 -30
- package/dist/collection/components/q2-loc/test/q2-loc-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js +164 -0
- package/dist/collection/components/q2-loc/test/q2-loc-test.spec.js.map +1 -0
- package/dist/collection/components/q2-message/q2-message.js +1 -1
- package/dist/collection/components/q2-optgroup/q2-optgroup.js +3 -2
- package/dist/collection/components/q2-optgroup/q2-optgroup.js.map +1 -1
- package/dist/collection/components/q2-option/q2-option.css +1 -1
- package/dist/collection/components/q2-option/q2-option.js +57 -34
- package/dist/collection/components/q2-option/q2-option.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js +110 -106
- package/dist/collection/components/q2-option/test/q2-option-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js +532 -0
- package/dist/collection/components/q2-option/test/q2-option-test.spec.js.map +1 -0
- package/dist/collection/components/q2-pagination/q2-pagination.js +9 -5
- package/dist/collection/components/q2-pagination/q2-pagination.js.map +1 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js +18 -1
- package/dist/collection/components/q2-pagination/test/q2-pagination-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-pill/q2-pill.js +18 -17
- package/dist/collection/components/q2-pill/q2-pill.js.map +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js +128 -57
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +17 -4
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-radio/q2-radio.js +1 -1
- package/dist/collection/components/q2-radio-group/q2-radio-group.css +19 -9
- package/dist/collection/components/q2-radio-group/q2-radio-group.js +2 -2
- package/dist/collection/components/q2-radio-group/q2-radio-group.js.map +1 -1
- package/dist/collection/components/q2-relative-time/q2-relative-time.js +1 -1
- package/dist/collection/components/q2-resize-observer/q2-resize-observer.js +1 -1
- package/dist/collection/components/q2-section/q2-section.js +6 -4
- package/dist/collection/components/q2-section/q2-section.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +5 -3
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js +123 -62
- package/dist/collection/components/q2-select/test/q2-select-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-stepper/q2-stepper.js +4 -2
- package/dist/collection/components/q2-stepper/q2-stepper.js.map +1 -1
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js +3 -2
- package/dist/collection/components/q2-stepper-pane/q2-stepper-pane.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js +46 -2
- package/dist/collection/components/q2-stepper-vertical/q2-stepper-vertical.js.map +1 -1
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js +26 -0
- package/dist/collection/components/q2-stepper-vertical/test/q2-stepper-vertical-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-tab-container/q2-tab-container.js +4 -3
- package/dist/collection/components/q2-tab-container/q2-tab-container.js.map +1 -1
- package/dist/collection/components/q2-tab-pane/q2-tab-pane.js +1 -1
- package/dist/collection/components/q2-tag/q2-tag.js +5 -2
- package/dist/collection/components/q2-tag/q2-tag.js.map +1 -1
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js +55 -4
- package/dist/collection/components/q2-tag/test/q2-tag-test.e2e.js.map +1 -1
- package/dist/collection/components/q2-textarea/q2-textarea.js +1 -1
- package/dist/collection/components/tecton-tab-pane/tecton-tab-pane.js +2 -2
- package/dist/collection/utils/helpers.js +63 -41
- package/dist/collection/utils/helpers.js.map +1 -1
- package/dist/collection/utils/index.js +83 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/index2.js +84 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-action-group.js +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-avatar2.js +1 -1
- package/dist/components/q2-calendar.js +16 -18
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-card.js +2 -0
- package/dist/components/q2-card.js.map +1 -1
- package/dist/components/q2-carousel-pane.js +2 -2
- package/dist/components/q2-chart-area.js +16 -2
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-donut.js +19 -2
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +5 -4
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-currency.js +15 -2
- package/dist/components/q2-currency.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-detail.js +1 -1
- package/dist/components/q2-dropdown-item2.js +12 -26
- package/dist/components/q2-dropdown-item2.js.map +1 -1
- package/dist/components/q2-dropdown.js +6 -3
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-editable-field.js +1 -1
- package/dist/components/q2-example.d.ts +11 -0
- package/dist/components/q2-example.js +170 -0
- package/dist/components/q2-example.js.map +1 -0
- package/dist/components/q2-formatted-text.js +1 -1
- package/dist/components/q2-input2.js +41 -37
- package/dist/components/q2-input2.js.map +1 -1
- package/dist/components/q2-item.js +1 -1
- package/dist/components/q2-legend2.js +1 -1
- package/dist/components/q2-link.js +3 -3
- package/dist/components/q2-link.js.map +1 -1
- package/dist/components/q2-list.js +4 -5
- package/dist/components/q2-list.js.map +1 -1
- package/dist/components/q2-loc.js +55 -2
- package/dist/components/q2-loc.js.map +1 -1
- package/dist/components/q2-message2.js +1 -1
- package/dist/components/q2-month-picker.js +2 -2
- package/dist/components/q2-optgroup2.js +3 -2
- package/dist/components/q2-optgroup2.js.map +1 -1
- package/dist/components/q2-option-list2.js +1 -1
- package/dist/components/q2-option2.js +52 -33
- package/dist/components/q2-option2.js.map +1 -1
- package/dist/components/q2-pagination.js +9 -5
- package/dist/components/q2-pagination.js.map +1 -1
- package/dist/components/q2-pill.js +18 -17
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-popover2.js +16 -4
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-radio-group.js +3 -3
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +1 -1
- package/dist/components/q2-relative-time.js +1 -1
- package/dist/components/q2-resize-observer2.js +1 -1
- package/dist/components/q2-section.js +6 -4
- package/dist/components/q2-section.js.map +1 -1
- package/dist/components/q2-select2.js +6 -4
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/components/q2-stepper-pane.js +3 -2
- package/dist/components/q2-stepper-pane.js.map +1 -1
- package/dist/components/q2-stepper-vertical.js +16 -3
- package/dist/components/q2-stepper-vertical.js.map +1 -1
- package/dist/components/q2-stepper.js +4 -2
- package/dist/components/q2-stepper.js.map +1 -1
- package/dist/components/q2-tab-container.js +4 -3
- package/dist/components/q2-tab-container.js.map +1 -1
- package/dist/components/q2-tab-pane.js +1 -1
- package/dist/components/q2-tag.js +5 -2
- package/dist/components/q2-tag.js.map +1 -1
- package/dist/components/q2-textarea.js +1 -1
- package/dist/components/tecton-tab-pane.js +2 -2
- package/dist/esm/click-elsewhere_2.entry.js +16 -5
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-1e1ce94e.js → index-7a5365e2.js} +40 -5
- package/dist/esm/index-7a5365e2.js.map +1 -0
- package/dist/esm/{index-844fc010.js → index-d18e2a20.js} +86 -3
- package/dist/esm/index-d18e2a20.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/q2-action-group.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js +3 -3
- package/dist/esm/q2-avatar.entry.js +2 -2
- package/dist/esm/q2-badge_7.entry.js +49 -44
- package/dist/esm/q2-badge_7.entry.js.map +1 -1
- package/dist/esm/q2-calendar.entry.js +17 -20
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +4 -2
- package/dist/esm/q2-card.entry.js.map +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +4 -4
- package/dist/esm/q2-carousel.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js +16 -3
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +3 -3
- package/dist/esm/q2-chart-donut.entry.js +19 -3
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +6 -5
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +2 -2
- package/dist/esm/q2-currency.entry.js +14 -2
- package/dist/esm/q2-currency.entry.js.map +1 -1
- package/dist/esm/q2-data-table.entry.js +3 -3
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-detail.entry.js +3 -3
- package/dist/esm/q2-dropdown-item.entry.js +12 -14
- package/dist/esm/q2-dropdown-item.entry.js.map +1 -1
- package/dist/esm/q2-dropdown.entry.js +7 -5
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +3 -3
- package/dist/esm/q2-example.entry.js +141 -0
- package/dist/esm/q2-example.entry.js.map +1 -0
- package/dist/esm/q2-formatted-text.entry.js +2 -2
- package/dist/esm/q2-item.entry.js +3 -3
- package/dist/esm/q2-legend.entry.js +2 -2
- package/dist/esm/q2-link.entry.js +4 -4
- package/dist/esm/q2-link.entry.js.map +1 -1
- package/dist/esm/q2-list.entry.js +6 -7
- package/dist/esm/q2-list.entry.js.map +1 -1
- package/dist/esm/q2-loading-element.entry.js +2 -2
- package/dist/esm/q2-loc.entry.js +52 -3
- package/dist/esm/q2-loc.entry.js.map +1 -1
- package/dist/esm/q2-message.entry.js +3 -3
- package/dist/esm/q2-month-picker.entry.js +4 -4
- package/dist/esm/q2-optgroup.entry.js +5 -4
- package/dist/esm/q2-optgroup.entry.js.map +1 -1
- package/dist/esm/q2-option-list.entry.js +2 -2
- package/dist/esm/q2-option.entry.js +50 -33
- package/dist/esm/q2-option.entry.js.map +1 -1
- package/dist/esm/q2-pagination.entry.js +11 -7
- package/dist/esm/q2-pagination.entry.js.map +1 -1
- package/dist/esm/q2-pill.entry.js +19 -18
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +5 -5
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +3 -3
- package/dist/esm/q2-relative-time.entry.js +3 -3
- package/dist/esm/q2-resize-observer.entry.js +2 -2
- package/dist/esm/q2-section.entry.js +8 -6
- package/dist/esm/q2-section.entry.js.map +1 -1
- package/dist/esm/q2-select.entry.js +6 -5
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +5 -4
- package/dist/esm/q2-stepper-pane.entry.js.map +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +16 -4
- package/dist/esm/q2-stepper-vertical.entry.js.map +1 -1
- package/dist/esm/q2-stepper.entry.js +6 -4
- package/dist/esm/q2-stepper.entry.js.map +1 -1
- package/dist/esm/q2-tag.entry.js +6 -4
- package/dist/esm/q2-tag.entry.js.map +1 -1
- package/dist/esm/q2-tecton-elements.js +3 -3
- package/dist/esm/q2-textarea.entry.js +3 -3
- package/dist/esm/q2-tooltip.entry.js +2 -2
- package/dist/esm/{shapes-36183b2a.js → shapes-c7e1a3fa.js} +2 -2
- package/dist/esm/{shapes-36183b2a.js.map → shapes-c7e1a3fa.js.map} +1 -1
- package/dist/esm/tecton-tab-pane.entry.js +3 -3
- package/dist/q2-tecton-elements/action-sheet-e64cb6f7.js +77 -0
- package/dist/q2-tecton-elements/{p-b7554a79.js.map → action-sheet-e64cb6f7.js.map} +1 -1
- package/dist/q2-tecton-elements/app-globals-0f993ce5.js +4 -0
- package/dist/q2-tecton-elements/{p-e1255160.js.map → app-globals-0f993ce5.js.map} +1 -1
- package/dist/q2-tecton-elements/charting-1abfb877.js +34872 -0
- package/dist/q2-tecton-elements/{p-2941aafa.js.map → charting-1abfb877.js.map} +1 -1
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js +410 -0
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -0
- package/dist/q2-tecton-elements/dataSample-7b62e101.js +2602 -0
- package/dist/q2-tecton-elements/{p-ad80aef0.js.map → dataSample-7b62e101.js.map} +1 -1
- package/dist/q2-tecton-elements/index-3184c760.js +18168 -0
- package/dist/q2-tecton-elements/{p-f1e887f5.js.map → index-3184c760.js.map} +1 -1
- package/dist/q2-tecton-elements/index-7a5365e2.js +1792 -0
- package/dist/q2-tecton-elements/index-7a5365e2.js.map +1 -0
- package/dist/q2-tecton-elements/index-d18e2a20.js +323 -0
- package/dist/q2-tecton-elements/index-d18e2a20.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +56 -0
- package/dist/q2-tecton-elements/{p-5637c486.entry.js.map → q2-action-group.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1480 -0
- package/dist/q2-tecton-elements/{p-188eb162.entry.js.map → q2-action-sheet.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-avatar.entry.js +101 -0
- package/dist/q2-tecton-elements/{p-07d1c3ae.entry.js.map → q2-avatar.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +5449 -0
- package/dist/q2-tecton-elements/q2-badge_7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1313 -0
- package/dist/q2-tecton-elements/q2-calendar.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-card.entry.js +170 -0
- package/dist/q2-tecton-elements/q2-card.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +130 -0
- package/dist/q2-tecton-elements/{p-7aef0c08.entry.js.map → q2-carousel-pane.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.js +4613 -0
- package/dist/q2-tecton-elements/{p-e216ef3f.entry.js.map → q2-carousel.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +4330 -0
- package/dist/q2-tecton-elements/q2-chart-area.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +1479 -0
- package/dist/q2-tecton-elements/{p-7906f49e.entry.js.map → q2-chart-bar.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +4537 -0
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +166 -0
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +223 -0
- package/dist/q2-tecton-elements/{p-b7de110e.entry.js.map → q2-checkbox.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-currency.entry.js +153 -0
- package/dist/q2-tecton-elements/q2-currency.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-data-table.entry.js +622 -0
- package/dist/q2-tecton-elements/{p-7903cd15.entry.js.map → q2-data-table.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +128 -0
- package/dist/q2-tecton-elements/{p-f5f23659.entry.js.map → q2-detail.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +146 -0
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +430 -0
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +296 -0
- package/dist/q2-tecton-elements/{p-896c7008.entry.js.map → q2-editable-field.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-example.entry.js +152 -0
- package/dist/q2-tecton-elements/q2-example.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-formatted-text.entry.js +73 -0
- package/dist/q2-tecton-elements/{p-7c9f8b62.entry.js.map → q2-formatted-text.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-item.entry.js +158 -0
- package/dist/q2-tecton-elements/{p-7c9a0122.entry.js.map → q2-item.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-legend.entry.js +146 -0
- package/dist/q2-tecton-elements/{p-ff8f1a32.entry.js.map → q2-legend.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-link.entry.js +83 -0
- package/dist/q2-tecton-elements/q2-link.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-list.entry.js +100 -0
- package/dist/q2-tecton-elements/q2-list.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-loading-element.entry.js +36 -0
- package/dist/q2-tecton-elements/{p-a068c84c.entry.js.map → q2-loading-element.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +82 -0
- package/dist/q2-tecton-elements/q2-loc.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-message.entry.js +99 -0
- package/dist/q2-tecton-elements/{p-8d2b02e1.entry.js.map → q2-message.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +198 -0
- package/dist/q2-tecton-elements/{p-8d07cf91.entry.js.map → q2-month-picker.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +88 -0
- package/dist/q2-tecton-elements/q2-optgroup.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-option-list.entry.js +585 -0
- package/dist/q2-tecton-elements/{p-a5d0e252.entry.js.map → q2-option-list.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +110 -0
- package/dist/q2-tecton-elements/q2-option.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-pagination.entry.js +377 -0
- package/dist/q2-tecton-elements/q2-pagination.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-pill.entry.js +434 -0
- package/dist/q2-tecton-elements/q2-pill.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +227 -0
- package/dist/q2-tecton-elements/q2-radio-group.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-radio.entry.js +144 -0
- package/dist/q2-tecton-elements/{p-c235ab3f.entry.js.map → q2-radio.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +162 -0
- package/dist/q2-tecton-elements/{p-95a7c042.entry.js.map → q2-relative-time.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-resize-observer.entry.js +100 -0
- package/dist/q2-tecton-elements/{p-e2c800ef.entry.js.map → q2-resize-observer.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +256 -0
- package/dist/q2-tecton-elements/q2-section.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-select.entry.js +684 -0
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +124 -0
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +356 -0
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-stepper.entry.js +332 -0
- package/dist/q2-tecton-elements/q2-stepper.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tag.entry.js +213 -0
- package/dist/q2-tecton-elements/q2-tag.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +21 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +364 -0
- package/dist/q2-tecton-elements/{p-f135b265.entry.js.map → q2-textarea.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.js +105 -0
- package/dist/q2-tecton-elements/{p-c5667d5d.entry.js.map → q2-tooltip.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/sectorHelper-183cedd0.js +949 -0
- package/dist/q2-tecton-elements/{p-eea5aa01.js.map → sectorHelper-183cedd0.js.map} +1 -1
- package/dist/q2-tecton-elements/shapes-c7e1a3fa.js +132 -0
- package/dist/q2-tecton-elements/{p-50b425de.js.map → shapes-c7e1a3fa.js.map} +1 -1
- package/dist/q2-tecton-elements/tecton-tab-pane.entry.js +134 -0
- package/dist/q2-tecton-elements/{p-96b1406c.entry.js.map → tecton-tab-pane.entry.js.map} +1 -1
- package/dist/types/components/q2-calendar/q2-calendar.d.ts +4 -5
- package/dist/types/components/q2-chart-area/q2-chart-area.d.ts +6 -0
- package/dist/types/components/q2-chart-donut/q2-chart-donut.d.ts +6 -0
- package/dist/types/components/q2-currency/q2-currency.d.ts +7 -0
- package/dist/types/components/q2-dropdown/q2-dropdown.d.ts +1 -1
- package/dist/types/components/q2-dropdown-item/q2-dropdown-item.d.ts +2 -2
- package/dist/types/components/q2-example/q2-example.d.ts +119 -0
- package/dist/types/components/q2-input/formatting/date.d.ts +22 -0
- package/dist/types/components/q2-input/formatting/postal.d.ts +197 -0
- package/dist/types/components/q2-input/q2-input.d.ts +15 -12
- package/dist/types/components/q2-loc/q2-loc.d.ts +15 -1
- package/dist/types/components/q2-option/q2-option.d.ts +11 -3
- package/dist/types/components/q2-pill/q2-pill.d.ts +3 -3
- package/dist/types/components/q2-popover/q2-popover.d.ts +1 -0
- package/dist/types/components/q2-select/q2-select.d.ts +1 -1
- package/dist/types/components/q2-stepper-vertical/q2-stepper-vertical.d.ts +6 -0
- package/dist/types/components/q2-tag/q2-tag.d.ts +1 -1
- package/dist/types/components.d.ts +104 -14
- package/dist/types/utils/helpers.d.ts +13 -0
- package/dist/types/utils/index.d.ts +11 -0
- package/package.json +7 -7
- package/dist/cjs/index-14c3693c.js.map +0 -1
- package/dist/cjs/index-9aa4a776.js.map +0 -1
- package/dist/esm/index-1e1ce94e.js.map +0 -1
- package/dist/esm/index-844fc010.js.map +0 -1
- package/dist/q2-tecton-elements/p-06701928.entry.js +0 -2
- package/dist/q2-tecton-elements/p-06701928.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-07d1c3ae.entry.js +0 -2
- package/dist/q2-tecton-elements/p-1305f7ca.entry.js +0 -2
- package/dist/q2-tecton-elements/p-1305f7ca.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-15ac45d6.js +0 -2
- package/dist/q2-tecton-elements/p-15ac45d6.js.map +0 -1
- package/dist/q2-tecton-elements/p-16910682.entry.js +0 -2
- package/dist/q2-tecton-elements/p-16910682.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-188eb162.entry.js +0 -3
- package/dist/q2-tecton-elements/p-1c760a89.entry.js +0 -2
- package/dist/q2-tecton-elements/p-1c760a89.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-1c88d057.entry.js +0 -2
- package/dist/q2-tecton-elements/p-1c88d057.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-20a3d6ed.entry.js +0 -2
- package/dist/q2-tecton-elements/p-20a3d6ed.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2733583e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2733583e.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2941aafa.js +0 -39
- package/dist/q2-tecton-elements/p-3e428290.entry.js +0 -2
- package/dist/q2-tecton-elements/p-3e428290.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4774e5b3.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4774e5b3.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-490ef8e5.entry.js +0 -2
- package/dist/q2-tecton-elements/p-490ef8e5.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-4e10550d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-4e10550d.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-50b425de.js +0 -2
- package/dist/q2-tecton-elements/p-50f7328f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-50f7328f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5637c486.entry.js +0 -2
- package/dist/q2-tecton-elements/p-56df21b0.entry.js +0 -2
- package/dist/q2-tecton-elements/p-56df21b0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5a834214.entry.js +0 -2
- package/dist/q2-tecton-elements/p-5a834214.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-5f99a4a8.entry.js +0 -2
- package/dist/q2-tecton-elements/p-5f99a4a8.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-72d948b4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-72d948b4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7903cd15.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7906f49e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7aef0c08.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7c9a0122.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7c9f8b62.entry.js +0 -2
- package/dist/q2-tecton-elements/p-81fbe718.entry.js +0 -2
- package/dist/q2-tecton-elements/p-81fbe718.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-896c7008.entry.js +0 -2
- package/dist/q2-tecton-elements/p-8d07cf91.entry.js +0 -2
- package/dist/q2-tecton-elements/p-8d2b02e1.entry.js +0 -2
- package/dist/q2-tecton-elements/p-95a7c042.entry.js +0 -2
- package/dist/q2-tecton-elements/p-96b1406c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a068c84c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a47597dd.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a47597dd.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-a5d0e252.entry.js +0 -2
- package/dist/q2-tecton-elements/p-a5f18e27.js +0 -3
- package/dist/q2-tecton-elements/p-a5f18e27.js.map +0 -1
- package/dist/q2-tecton-elements/p-ac6aa392.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ac6aa392.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ad057d10.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ad057d10.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ad80aef0.js +0 -2
- package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b0e5e9dc.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b1784be3.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b1784be3.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b7554a79.js +0 -2
- package/dist/q2-tecton-elements/p-b7de110e.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c235ab3f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-c5667d5d.entry.js +0 -2
- package/dist/q2-tecton-elements/p-e1255160.js +0 -2
- package/dist/q2-tecton-elements/p-e216ef3f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-e2c800ef.entry.js +0 -2
- package/dist/q2-tecton-elements/p-eea5aa01.js +0 -2
- package/dist/q2-tecton-elements/p-f135b265.entry.js +0 -2
- package/dist/q2-tecton-elements/p-f1e887f5.js +0 -2
- package/dist/q2-tecton-elements/p-f5f23659.entry.js +0 -2
- package/dist/q2-tecton-elements/p-f7867f21.entry.js +0 -2
- package/dist/q2-tecton-elements/p-f7867f21.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-ff8f1a32.entry.js +0 -2
- package/dist/q2-tecton-elements/p-fff01dc1.entry.js +0 -2
- package/dist/q2-tecton-elements/p-fff01dc1.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PI2","Math","PI","CMD","PathProxy","DEFAULT_SEARCH_SPACE","getCandidateAnchor","pos","distance","rect","outPt","outDir","width","height","set","x","y","projectPointToArc","cx","cy","r","startAngle","endAngle","anticlockwise","out","d","sqrt","ox","oy","abs","tmp","normalizeRadian","angle","atan2","x1","cos","y1","sin","x2","y2","d1","d2","projectPointToLine","limitToEnds","dx","dy","dx1","dy1","lineLen","projectedLen","t","min","max","projectPointToRect","tmpPt","nearestPointOnRect","pt","dist","nearestPointOnPath","path","xi","yi","x0","y0","minDist","Infinity","data","i","length","cmd","M","L","C","cubicProjectPoint","Q","quadraticProjectPoint","A","rx","ry","theta","dTheta","_x","R","Z","pt0","Point","pt1","pt2","dir","dir2","updateLabelLinePoints","target","labelLineModel","labelLine","getTextGuideLine","label","getTextContent","labelGuideConfig","textGuideLineConfig","points","searchSpace","candidates","labelRect","getBoundingRect","clone","applyTransform","getComputedTransform","anchorPoint","anchor","targetTransform","targetInversedTransform","invert","len","get","copy","candidate","scaleAndAdd","transform","boundingRect","Path","toArray","limitTurnAngle","setShape","tmpArr","tmpProjPoint","linePoints","minTurnAngle","fromArray","sub","len1","len2","scale","angleCos","dot","minTurnAngleCos","tan","isNaN","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","acos","newAngle","setLabelLineState","ignore","stateName","stateModel","isNormal","stateObj","ensureState","smooth","shape","styleObj","getModel","getLineStyle","useStyle","style","buildLabelLinePath","moveTo","vector.dist","lineTo","moveLen","midPoint0","vector.lerp","midPoint2","midPoint1","bezierCurveTo","setLabelLineStyle","targetEl","statesModels","defaultStyle","removeTextGuideLine","normalModel","normal","showNormal","labelIgnoreNormal","DISPLAY_STATES","stateShow","isLabelIgnored","retrieve2","states","Polyline","setTextGuideLine","stateProxy","defaults","fill","showAbove","labelLineConfig","buildPath","getLabelLineStatesModels","itemModel","labelLineName","SPECIAL_STATES","cloneArr","newPoints","push","slice","prepareLayoutCallbackParams","labelItem","hostEl","dataIndex","dataType","seriesIndex","seriesModel","text","hostRect","align","verticalAlign","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","Transformable","labelLayoutInnerStore","makeInner","labelLineAnimationStore","extendWithKeys","source","keys","key","LABEL_LAYOUT_PROPS","LabelManager","this","_labelList","_chartViewList","prototype","clearLabels","_addLabel","layoutOption","labelStyle","__hostTarget","textConfig","labelTransform","plain","BoundingRect","setLocalTransform","rotation","originX","originY","scaleX","scaleY","host","labelGuide","computedLayoutOption","priority","defaultAttr","labelGuideIgnore","fontSize","cursor","attachedPos","position","attachedRot","addLabelsOfSeries","chartView","_this","__model","isFunction","group","traverse","child","textEl","ecData","getECData","disableLabelLayout","updateLayoutConfig","api","getWidth","getHeight","createDragHandler","el","defaultLabelAttr","degreeToRadian","setTextConfig","local","rotate","offset","needsUpdateLabelLine","parsePercent","setStyle","guideLine","labelLayoutStore","k","draggable","hostModel","getData","getItemModel","on","off","layout","labelList","prepareLayoutList","labelsNeedsAdjustOnX","filter","item","moveOverlap","labelsNeedsAdjustOnY","shiftLayoutOnX","shiftLayoutOnY","labelsNeedsHideOverlap","hideOverlap","processLabelsOverall","each","ignoreLabelLineUpdate","animationEnabled","isAnimationEnabled","forceLabelAnimation","_updateLabelLine","_animateLabels","visualStyle","getItemVisual","visualType","getVisual","stroke","invisible","disableLabelAnimation","isElementRemoved","layoutStore","oldLayout","newProps","attr","labelInner","valueAnimation","oldOpacity","opacity","initProps","prevStates","indexOf","oldLayoutSelect","oldLayoutEmphasis","updateProps","select","layoutSelect","emphasis","layoutEmphasis","animateLabelValue","newLayout","strokePercent","LabelManager$1","getLabelManager","installLabelLayout","registers","registerUpdateLifecycle","ecModel","params","labelManager","updatedSeries","forEach","series","getViewOfSeriesModel","getSectorCornerRadius","model","zeroIfNull","cornerRadius","isArray","dr","r0","map","cr"],"sources":["../../node_modules/echarts/lib/label/labelGuideHelper.js","../../node_modules/echarts/lib/label/LabelManager.js","../../node_modules/echarts/lib/label/installLabelLayout.js","../../node_modules/echarts/lib/chart/helper/sectorHelper.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { Point, Path, Polyline } from '../util/graphic.js';\nimport PathProxy from 'zrender/lib/core/PathProxy.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve.js';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states.js';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n var width = rect.width;\n var height = rect.height;\n switch (pos) {\n case 'top':\n outPt.set(rect.x + width / 2, rect.y - distance);\n outDir.set(0, -1);\n break;\n case 'bottom':\n outPt.set(rect.x + width / 2, rect.y + height + distance);\n outDir.set(0, 1);\n break;\n case 'left':\n outPt.set(rect.x - distance, rect.y + height / 2);\n outDir.set(-1, 0);\n break;\n case 'right':\n outPt.set(rect.x + width + distance, rect.y + height / 2);\n outDir.set(1, 0);\n break;\n }\n}\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n x /= d;\n y /= d;\n // Intersect point.\n var ox = x * r + cx;\n var oy = y * r + cy;\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n // Is a circle\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n } else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n var angle = Math.atan2(y, x);\n if (angle < 0) {\n angle += PI2;\n }\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n // Project point is on the arc.\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n var x1 = r * Math.cos(startAngle) + cx;\n var y1 = r * Math.sin(startAngle) + cy;\n var x2 = r * Math.cos(endAngle) + cx;\n var y2 = r * Math.sin(endAngle) + cy;\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n if (d1 < d2) {\n out[0] = x1;\n out[1] = y1;\n return Math.sqrt(d1);\n } else {\n out[0] = x2;\n out[1] = y2;\n return Math.sqrt(d2);\n }\n}\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n var dx = x - x1;\n var dy = y - y1;\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n dx1 /= lineLen;\n dy1 /= lineLen;\n // dot product\n var projectedLen = dx * dx1 + dy * dy1;\n var t = projectedLen / lineLen;\n if (limitToEnds) {\n t = Math.min(Math.max(t, 0), 1);\n }\n t *= lineLen;\n var ox = out[0] = x1 + t * dx1;\n var oy = out[1] = y1 + t * dy1;\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n if (width < 0) {\n x1 = x1 + width;\n width = -width;\n }\n if (height < 0) {\n y1 = y1 + height;\n height = -height;\n }\n var x2 = x1 + width;\n var y2 = y1 + height;\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\nvar tmpPt = [];\nfunction nearestPointOnRect(pt, rect, out) {\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n out.set(tmpPt[0], tmpPt[1]);\n return dist;\n}\n/**\n * Calculate min distance corresponding point.\n * This method won't evaluate if point is in the path.\n */\nfunction nearestPointOnPath(pt, path, out) {\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n var minDist = Infinity;\n var data = path.data;\n var x = pt.x;\n var y = pt.y;\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n if (i === 1) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n var d = minDist;\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n // TODO Arc 判断的开销比较大\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n // TODO Arc 旋转\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n // 不是直接使用 arc 命令\n if (i <= 1) {\n // 第一个命令起点还未定义\n x0 = x1;\n y0 = y1;\n }\n // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放\n var _x = (x - cx) * ry / rx + cx;\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n break;\n case CMD.Z:\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n xi = x0;\n yi = y0;\n break;\n }\n if (d < minDist) {\n minDist = d;\n out.set(tmpPt[0], tmpPt[1]);\n }\n }\n return minDist;\n}\n// Temporal variable for intermediate usage.\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\n/**\n * Calculate a proper guide line based on the label position and graphic element definition\n * @param label\n * @param labelRect\n * @param target\n * @param targetRect\n */\nexport function updateLabelLinePoints(target, labelLineModel) {\n if (!target) {\n return;\n }\n var labelLine = target.getTextGuideLine();\n var label = target.getTextContent();\n // Needs to create text guide in each charts.\n if (!(label && labelLine)) {\n return;\n }\n var labelGuideConfig = target.textGuideLineConfig || {};\n var points = [[0, 0], [0, 0], [0, 0]];\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n var labelRect = label.getBoundingRect().clone();\n labelRect.applyTransform(label.getComputedTransform());\n var minDist = Infinity;\n var anchorPoint = labelGuideConfig.anchor;\n var targetTransform = target.getComputedTransform();\n var targetInversedTransform = targetTransform && invert([], targetTransform);\n var len = labelLineModel.get('length2') || 0;\n if (anchorPoint) {\n pt2.copy(anchorPoint);\n }\n for (var i = 0; i < searchSpace.length; i++) {\n var candidate = searchSpace[i];\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n Point.scaleAndAdd(pt1, pt0, dir, len);\n // Transform to target coord space.\n pt1.transform(targetInversedTransform);\n // Note: getBoundingRect will ensure the `path` being created.\n var boundingRect = target.getBoundingRect();\n var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n // TODO pt2 is in the path\n if (dist < minDist) {\n minDist = dist;\n // Transform back to global space.\n pt1.transform(targetTransform);\n pt2.transform(targetTransform);\n pt2.toArray(points[0]);\n pt1.toArray(points[1]);\n pt0.toArray(points[2]);\n }\n }\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n labelLine.setShape({\n points: points\n });\n}\n// Temporal variable for the limitTurnAngle function\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\n/**\n * Reduce the line segment attached to the label to limit the turn angle between two segments.\n * @param linePoints\n * @param minTurnAngle Radian of minimum turn angle. 0 - 180\n */\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n return;\n }\n minTurnAngle = minTurnAngle / 180 * Math.PI;\n // The line points can be\n // /pt1----pt2 (label)\n // /\n // pt0/\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt0, pt1);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(dir2);\n var minTurnAngleCos = Math.cos(minTurnAngle);\n if (minTurnAngleCos < angleCos) {\n // Smaller than minTurnAngle\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n // Calculate new projected length with limited minTurnAngle and get the new connect point\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n // Limit the new calculated connect point between pt1 and pt2.\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n if (isNaN(t)) {\n return;\n }\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n/**\n * Limit the angle of line and the surface\n * @param maxSurfaceAngle Radian of minimum turn angle. 0 - 180. 0 is same direction to normal. 180 is opposite\n */\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n return;\n }\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt1, pt0);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(surfaceNormal);\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n if (angleCos < maxSurfaceAngleCos) {\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n var HALF_PI = Math.PI / 2;\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n if (newAngle >= HALF_PI) {\n // parallel\n Point.copy(tmpProjPoint, pt2);\n } else {\n // Calculate new projected length with limited minTurnAngle and get the new connect point\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n // Limit the new calculated connect point between pt1 and pt2.\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n if (isNaN(t)) {\n return;\n }\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n }\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n var isNormal = stateName === 'normal';\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n // Make sure display.\n stateObj.ignore = ignore;\n // Set smooth\n var smooth = stateModel.get('smooth');\n if (smooth && smooth === true) {\n smooth = 0.3;\n }\n stateObj.shape = stateObj.shape || {};\n if (smooth > 0) {\n stateObj.shape.smooth = smooth;\n }\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\nfunction buildLabelLinePath(path, shape) {\n var smooth = shape.smooth;\n var points = shape.points;\n if (!points) {\n return;\n }\n path.moveTo(points[0][0], points[0][1]);\n if (smooth > 0 && points.length >= 3) {\n var len1 = vector.dist(points[0], points[1]);\n var len2 = vector.dist(points[1], points[2]);\n if (!len1 || !len2) {\n path.lineTo(points[1][0], points[1][1]);\n path.lineTo(points[2][0], points[2][1]);\n return;\n }\n var moveLen = Math.min(len1, len2) * smooth;\n var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n } else {\n for (var i = 1; i < points.length; i++) {\n path.lineTo(points[i][0], points[i][1]);\n }\n }\n}\n/**\n * Create a label line if necessary and set it's style.\n */\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n var labelLine = targetEl.getTextGuideLine();\n var label = targetEl.getTextContent();\n if (!label) {\n // Not show label line if there is no label.\n if (labelLine) {\n targetEl.removeTextGuideLine();\n }\n return;\n }\n var normalModel = statesModels.normal;\n var showNormal = normalModel.get('show');\n var labelIgnoreNormal = label.ignore;\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n var stateModel = statesModels[stateName];\n var isNormal = stateName === 'normal';\n if (stateModel) {\n var stateShow = stateModel.get('show');\n var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n if (isLabelIgnored // Not show when label is not shown in this state.\n || !retrieve2(stateShow, showNormal) // Use normal state by default if not set.\n ) {\n var stateObj = isNormal ? labelLine : labelLine && labelLine.states[stateName];\n if (stateObj) {\n stateObj.ignore = true;\n }\n if (!!labelLine) {\n setLabelLineState(labelLine, true, stateName, stateModel);\n }\n continue;\n }\n // Create labelLine if not exists\n if (!labelLine) {\n labelLine = new Polyline();\n targetEl.setTextGuideLine(labelLine);\n // Reset state of normal because it's new created.\n // NOTE: NORMAL should always been the first!\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n }\n // Use same state proxy.\n if (targetEl.stateProxy) {\n labelLine.stateProxy = targetEl.stateProxy;\n }\n }\n setLabelLineState(labelLine, false, stateName, stateModel);\n }\n }\n if (labelLine) {\n defaults(labelLine.style, defaultStyle);\n // Not fill.\n labelLine.style.fill = null;\n var showAbove = normalModel.get('showAbove');\n var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n labelLineConfig.showAbove = showAbove || false;\n // Custom the buildPath.\n labelLine.buildPath = buildLabelLinePath;\n }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n labelLineName = labelLineName || 'labelLine';\n var statesModels = {\n normal: itemModel.getModel(labelLineName)\n };\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n }\n return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO: move labels out of viewport.\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic.js';\nimport { getECData } from '../util/innerStore.js';\nimport { parsePercent } from '../util/number.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper.js';\nimport { makeInner } from '../util/model.js';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util.js';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper.js';\nimport { labelInner, animateLabelValue } from './labelStyle.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nfunction cloneArr(points) {\n if (points) {\n var newPoints = [];\n for (var i = 0; i < points.length; i++) {\n newPoints.push(points[i].slice());\n }\n return newPoints;\n }\n}\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n var label = labelItem.label;\n var labelLine = hostEl && hostEl.getTextGuideLine();\n return {\n dataIndex: labelItem.dataIndex,\n dataType: labelItem.dataType,\n seriesIndex: labelItem.seriesModel.seriesIndex,\n text: labelItem.label.style.text,\n rect: labelItem.hostRect,\n labelRect: labelItem.rect,\n // x: labelAttr.x,\n // y: labelAttr.y,\n align: label.style.align,\n verticalAlign: label.style.verticalAlign,\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n };\n}\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\nfunction extendWithKeys(target, source, keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (source[key] != null) {\n target[key] = source[key];\n }\n }\n}\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\nvar LabelManager = /** @class */function () {\n function LabelManager() {\n this._labelList = [];\n this._chartViewList = [];\n }\n LabelManager.prototype.clearLabels = function () {\n this._labelList = [];\n this._chartViewList = [];\n };\n /**\n * Add label to manager\n */\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n var labelStyle = label.style;\n var hostEl = label.__hostTarget;\n var textConfig = hostEl.textConfig || {};\n // TODO: If label is in other state.\n var labelTransform = label.getComputedTransform();\n var labelRect = label.getBoundingRect().plain();\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n if (labelTransform) {\n dummyTransformable.setLocalTransform(labelTransform);\n } else {\n // Identity transform.\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n }\n dummyTransformable.rotation = normalizeRadian(dummyTransformable.rotation);\n var host = label.__hostTarget;\n var hostRect;\n if (host) {\n hostRect = host.getBoundingRect().plain();\n var transform = host.getComputedTransform();\n BoundingRect.applyTransform(hostRect, hostRect, transform);\n }\n var labelGuide = hostRect && host.getTextGuideLine();\n this._labelList.push({\n label: label,\n labelLine: labelGuide,\n seriesModel: seriesModel,\n dataIndex: dataIndex,\n dataType: dataType,\n layoutOption: layoutOption,\n computedLayoutOption: null,\n rect: labelRect,\n hostRect: hostRect,\n // Label with lower priority will be hidden when overlapped\n // Use rect size as default priority\n priority: hostRect ? hostRect.width * hostRect.height : 0,\n // Save default label attributes.\n // For restore if developers want get back to default value in callback.\n defaultAttr: {\n ignore: label.ignore,\n labelGuideIgnore: labelGuide && labelGuide.ignore,\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n scaleX: dummyTransformable.scaleX,\n scaleY: dummyTransformable.scaleY,\n rotation: dummyTransformable.rotation,\n style: {\n x: labelStyle.x,\n y: labelStyle.y,\n align: labelStyle.align,\n verticalAlign: labelStyle.verticalAlign,\n width: labelStyle.width,\n height: labelStyle.height,\n fontSize: labelStyle.fontSize\n },\n cursor: label.cursor,\n attachedPos: textConfig.position,\n attachedRot: textConfig.rotation\n }\n });\n };\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n var _this = this;\n this._chartViewList.push(chartView);\n var seriesModel = chartView.__model;\n var layoutOption = seriesModel.get('labelLayout');\n /**\n * Ignore layouting if it's not specified anything.\n */\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n return;\n }\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true; // Stop traverse descendants.\n }\n // Only support label being hosted on graphic elements.\n var textEl = child.getTextContent();\n var ecData = getECData(child);\n // Can only attach the text on the element with dataIndex\n if (textEl && !textEl.disableLabelLayout) {\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n }\n });\n };\n LabelManager.prototype.updateLayoutConfig = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n function createDragHandler(el, labelLineModel) {\n return function () {\n updateLabelLinePoints(el, labelLineModel);\n };\n }\n for (var i = 0; i < this._labelList.length; i++) {\n var labelItem = this._labelList[i];\n var label = labelItem.label;\n var hostEl = label.__hostTarget;\n var defaultLabelAttr = labelItem.defaultAttr;\n var layoutOption = void 0;\n // TODO A global layout option?\n if (isFunction(labelItem.layoutOption)) {\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n } else {\n layoutOption = labelItem.layoutOption;\n }\n layoutOption = layoutOption || {};\n labelItem.computedLayoutOption = layoutOption;\n var degreeToRadian = Math.PI / 180;\n // TODO hostEl should always exists.\n // Or label should not have parent because the x, y is all in global space.\n if (hostEl) {\n hostEl.setTextConfig({\n // Force to set local false.\n local: false,\n // Ignore position and rotation config on the host el if x or y is changed.\n position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n // Ignore rotation config on the host el if rotation is changed.\n rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n });\n }\n var needsUpdateLabelLine = false;\n if (layoutOption.x != null) {\n // TODO width of chart view.\n label.x = parsePercent(layoutOption.x, width);\n label.setStyle('x', 0); // Ignore movement in style. TODO: origin.\n needsUpdateLabelLine = true;\n } else {\n label.x = defaultLabelAttr.x;\n label.setStyle('x', defaultLabelAttr.style.x);\n }\n if (layoutOption.y != null) {\n // TODO height of chart view.\n label.y = parsePercent(layoutOption.y, height);\n label.setStyle('y', 0); // Ignore movement in style.\n needsUpdateLabelLine = true;\n } else {\n label.y = defaultLabelAttr.y;\n label.setStyle('y', defaultLabelAttr.style.y);\n }\n if (layoutOption.labelLinePoints) {\n var guideLine = hostEl.getTextGuideLine();\n if (guideLine) {\n guideLine.setShape({\n points: layoutOption.labelLinePoints\n });\n // Not update\n needsUpdateLabelLine = false;\n }\n }\n var labelLayoutStore = labelLayoutInnerStore(label);\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n label.scaleX = defaultLabelAttr.scaleX;\n label.scaleY = defaultLabelAttr.scaleY;\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n }\n if (layoutOption.draggable) {\n label.draggable = true;\n label.cursor = 'move';\n if (hostEl) {\n var hostModel = labelItem.seriesModel;\n if (labelItem.dataIndex != null) {\n var data = labelItem.seriesModel.getData(labelItem.dataType);\n hostModel = data.getItemModel(labelItem.dataIndex);\n }\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n }\n } else {\n // TODO Other drag functions?\n label.off('drag');\n label.cursor = defaultLabelAttr.cursor;\n }\n }\n };\n LabelManager.prototype.layout = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n var labelList = prepareLayoutList(this._labelList);\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftX';\n });\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftY';\n });\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\n return item.layoutOption.hideOverlap;\n });\n hideOverlap(labelsNeedsHideOverlap);\n };\n /**\n * Process all labels. Not only labels with layoutOption.\n */\n LabelManager.prototype.processLabelsOverall = function () {\n var _this = this;\n each(this._chartViewList, function (chartView) {\n var seriesModel = chartView.__model;\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n var animationEnabled = seriesModel.isAnimationEnabled();\n chartView.group.traverse(function (child) {\n if (child.ignore && !child.forceLabelAnimation) {\n return true; // Stop traverse descendants.\n }\n\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n var label = child.getTextContent();\n if (!needsUpdateLabelLine && label) {\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n }\n if (needsUpdateLabelLine) {\n _this._updateLabelLine(child, seriesModel);\n }\n if (animationEnabled) {\n _this._animateLabels(child, seriesModel);\n }\n });\n });\n };\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n // Only support label being hosted on graphic elements.\n var textEl = el.getTextContent();\n // Update label line style.\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n // Only support labelLine on the labels represent data.\n if (textEl && dataIndex != null) {\n var data = seriesModel.getData(ecData.dataType);\n var itemModel = data.getItemModel(dataIndex);\n var defaultStyle = {};\n var visualStyle = data.getItemVisual(dataIndex, 'style');\n if (visualStyle) {\n var visualType = data.getVisual('drawType');\n // Default to be same with main color\n defaultStyle.stroke = visualStyle[visualType];\n }\n var labelLineModel = itemModel.getModel('labelLine');\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n updateLabelLinePoints(el, labelLineModel);\n }\n };\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var guideLine = el.getTextGuideLine();\n // Animate\n if (textEl\n // `forceLabelAnimation` has the highest priority\n && (el.forceLabelAnimation || !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el))) {\n var layoutStore = labelLayoutInnerStore(textEl);\n var oldLayout = layoutStore.oldLayout;\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n var newProps = {\n x: textEl.x,\n y: textEl.y,\n rotation: textEl.rotation\n };\n var data = seriesModel.getData(ecData.dataType);\n if (!oldLayout) {\n textEl.attr(newProps);\n // Disable fade in animation if value animation is enabled.\n if (!labelInner(textEl).valueAnimation) {\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\n // Fade in animation\n textEl.style.opacity = 0;\n initProps(textEl, {\n style: {\n opacity: oldOpacity\n }\n }, seriesModel, dataIndex);\n }\n } else {\n textEl.attr(oldLayout);\n // Make sure the animation from is in the right status.\n var prevStates = el.prevStates;\n if (prevStates) {\n if (indexOf(prevStates, 'select') >= 0) {\n textEl.attr(layoutStore.oldLayoutSelect);\n }\n if (indexOf(prevStates, 'emphasis') >= 0) {\n textEl.attr(layoutStore.oldLayoutEmphasis);\n }\n }\n updateProps(textEl, newProps, seriesModel, dataIndex);\n }\n layoutStore.oldLayout = newProps;\n if (textEl.states.select) {\n var layoutSelect = layoutStore.oldLayoutSelect = {};\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n }\n if (textEl.states.emphasis) {\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n }\n animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n }\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n var layoutStore = labelLineAnimationStore(guideLine);\n var oldLayout = layoutStore.oldLayout;\n var newLayout = {\n points: guideLine.shape.points\n };\n if (!oldLayout) {\n guideLine.setShape(newLayout);\n guideLine.style.strokePercent = 0;\n initProps(guideLine, {\n style: {\n strokePercent: 1\n }\n }, seriesModel);\n } else {\n guideLine.attr({\n shape: oldLayout\n });\n updateProps(guideLine, {\n shape: newLayout\n }, seriesModel);\n }\n layoutStore.oldLayout = newLayout;\n }\n };\n return LabelManager;\n}();\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../util/model.js';\nimport LabelManager from './LabelManager.js';\nvar getLabelManager = makeInner();\nexport function installLabelLayout(registers) {\n registers.registerUpdateLifecycle('series:beforeupdate', function (ecModel, api, params) {\n // TODO api provide an namespace that can save stuff per instance\n var labelManager = getLabelManager(api).labelManager;\n if (!labelManager) {\n labelManager = getLabelManager(api).labelManager = new LabelManager();\n }\n labelManager.clearLabels();\n });\n registers.registerUpdateLifecycle('series:layoutlabels', function (ecModel, api, params) {\n var labelManager = getLabelManager(api).labelManager;\n params.updatedSeries.forEach(function (series) {\n labelManager.addLabelsOfSeries(api.getViewOfSeriesModel(series));\n });\n labelManager.updateLayoutConfig(api);\n labelManager.layout(api);\n labelManager.processLabelsOverall();\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray, map } from 'zrender/lib/core/util.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nexport function getSectorCornerRadius(model, shape, zeroIfNull) {\n var cornerRadius = model.get('borderRadius');\n if (cornerRadius == null) {\n return zeroIfNull ? {\n cornerRadius: 0\n } : null;\n }\n if (!isArray(cornerRadius)) {\n cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius];\n }\n var dr = Math.abs(shape.r || 0 - shape.r0 || 0);\n return {\n cornerRadius: map(cornerRadius, function (cr) {\n return parsePercent(cr, dr);\n })\n };\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["PI2","Math","PI","CMD","PathProxy","DEFAULT_SEARCH_SPACE","getCandidateAnchor","pos","distance","rect","outPt","outDir","width","height","set","x","y","projectPointToArc","cx","cy","r","startAngle","endAngle","anticlockwise","out","d","sqrt","ox","oy","abs","tmp","normalizeRadian","angle","atan2","x1","cos","y1","sin","x2","y2","d1","d2","projectPointToLine","limitToEnds","dx","dy","dx1","dy1","lineLen","projectedLen","t","min","max","projectPointToRect","tmpPt","nearestPointOnRect","pt","dist","nearestPointOnPath","path","xi","yi","x0","y0","minDist","Infinity","data","i","length","cmd","M","L","C","cubicProjectPoint","Q","quadraticProjectPoint","A","rx","ry","theta","dTheta","_x","R","Z","pt0","Point","pt1","pt2","dir","dir2","updateLabelLinePoints","target","labelLineModel","labelLine","getTextGuideLine","label","getTextContent","labelGuideConfig","textGuideLineConfig","points","searchSpace","candidates","labelRect","getBoundingRect","clone","applyTransform","getComputedTransform","anchorPoint","anchor","targetTransform","targetInversedTransform","invert","len","get","copy","candidate","scaleAndAdd","transform","boundingRect","Path","toArray","limitTurnAngle","setShape","tmpArr","tmpProjPoint","linePoints","minTurnAngle","fromArray","sub","len1","len2","scale","angleCos","dot","minTurnAngleCos","tan","isNaN","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","acos","newAngle","setLabelLineState","ignore","stateName","stateModel","isNormal","stateObj","ensureState","smooth","shape","styleObj","getModel","getLineStyle","useStyle","style","buildLabelLinePath","moveTo","vector.dist","lineTo","moveLen","midPoint0","vector.lerp","midPoint2","midPoint1","bezierCurveTo","setLabelLineStyle","targetEl","statesModels","defaultStyle","removeTextGuideLine","normalModel","normal","showNormal","labelIgnoreNormal","DISPLAY_STATES","stateShow","isLabelIgnored","retrieve2","states","Polyline","setTextGuideLine","stateProxy","defaults","fill","showAbove","labelLineConfig","buildPath","getLabelLineStatesModels","itemModel","labelLineName","SPECIAL_STATES","cloneArr","newPoints","push","slice","prepareLayoutCallbackParams","labelItem","hostEl","dataIndex","dataType","seriesIndex","seriesModel","text","hostRect","align","verticalAlign","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","Transformable","labelLayoutInnerStore","makeInner","labelLineAnimationStore","extendWithKeys","source","keys","key","LABEL_LAYOUT_PROPS","LabelManager","this","_labelList","_chartViewList","prototype","clearLabels","_addLabel","layoutOption","labelStyle","__hostTarget","textConfig","labelTransform","plain","BoundingRect","setLocalTransform","rotation","originX","originY","scaleX","scaleY","host","labelGuide","computedLayoutOption","priority","defaultAttr","labelGuideIgnore","fontSize","cursor","attachedPos","position","attachedRot","addLabelsOfSeries","chartView","_this","__model","isFunction","group","traverse","child","textEl","ecData","getECData","disableLabelLayout","updateLayoutConfig","api","getWidth","getHeight","createDragHandler","el","defaultLabelAttr","degreeToRadian","setTextConfig","local","rotate","offset","needsUpdateLabelLine","parsePercent","setStyle","guideLine","labelLayoutStore","k","draggable","hostModel","getData","getItemModel","on","off","layout","labelList","prepareLayoutList","labelsNeedsAdjustOnX","filter","item","moveOverlap","labelsNeedsAdjustOnY","shiftLayoutOnX","shiftLayoutOnY","labelsNeedsHideOverlap","hideOverlap","processLabelsOverall","each","ignoreLabelLineUpdate","animationEnabled","isAnimationEnabled","forceLabelAnimation","_updateLabelLine","_animateLabels","visualStyle","getItemVisual","visualType","getVisual","stroke","invisible","disableLabelAnimation","isElementRemoved","layoutStore","oldLayout","newProps","attr","labelInner","valueAnimation","oldOpacity","opacity","initProps","prevStates","indexOf","oldLayoutSelect","oldLayoutEmphasis","updateProps","select","layoutSelect","emphasis","layoutEmphasis","animateLabelValue","newLayout","strokePercent","LabelManager$1","getLabelManager","installLabelLayout","registers","registerUpdateLifecycle","ecModel","params","labelManager","updatedSeries","forEach","series","getViewOfSeriesModel","getSectorCornerRadius","model","zeroIfNull","cornerRadius","isArray","dr","r0","map","cr"],"sources":["../../node_modules/echarts/lib/label/labelGuideHelper.js","../../node_modules/echarts/lib/label/LabelManager.js","../../node_modules/echarts/lib/label/installLabelLayout.js","../../node_modules/echarts/lib/chart/helper/sectorHelper.js"],"sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { Point, Path, Polyline } from '../util/graphic.js';\nimport PathProxy from 'zrender/lib/core/PathProxy.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve.js';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util.js';\nimport { invert } from 'zrender/lib/core/matrix.js';\nimport * as vector from 'zrender/lib/core/vector.js';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states.js';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n var width = rect.width;\n var height = rect.height;\n switch (pos) {\n case 'top':\n outPt.set(rect.x + width / 2, rect.y - distance);\n outDir.set(0, -1);\n break;\n case 'bottom':\n outPt.set(rect.x + width / 2, rect.y + height + distance);\n outDir.set(0, 1);\n break;\n case 'left':\n outPt.set(rect.x - distance, rect.y + height / 2);\n outDir.set(-1, 0);\n break;\n case 'right':\n outPt.set(rect.x + width + distance, rect.y + height / 2);\n outDir.set(1, 0);\n break;\n }\n}\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n x /= d;\n y /= d;\n // Intersect point.\n var ox = x * r + cx;\n var oy = y * r + cy;\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n // Is a circle\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n } else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n var angle = Math.atan2(y, x);\n if (angle < 0) {\n angle += PI2;\n }\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n // Project point is on the arc.\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n var x1 = r * Math.cos(startAngle) + cx;\n var y1 = r * Math.sin(startAngle) + cy;\n var x2 = r * Math.cos(endAngle) + cx;\n var y2 = r * Math.sin(endAngle) + cy;\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n if (d1 < d2) {\n out[0] = x1;\n out[1] = y1;\n return Math.sqrt(d1);\n } else {\n out[0] = x2;\n out[1] = y2;\n return Math.sqrt(d2);\n }\n}\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n var dx = x - x1;\n var dy = y - y1;\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n dx1 /= lineLen;\n dy1 /= lineLen;\n // dot product\n var projectedLen = dx * dx1 + dy * dy1;\n var t = projectedLen / lineLen;\n if (limitToEnds) {\n t = Math.min(Math.max(t, 0), 1);\n }\n t *= lineLen;\n var ox = out[0] = x1 + t * dx1;\n var oy = out[1] = y1 + t * dy1;\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n if (width < 0) {\n x1 = x1 + width;\n width = -width;\n }\n if (height < 0) {\n y1 = y1 + height;\n height = -height;\n }\n var x2 = x1 + width;\n var y2 = y1 + height;\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\nvar tmpPt = [];\nfunction nearestPointOnRect(pt, rect, out) {\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n out.set(tmpPt[0], tmpPt[1]);\n return dist;\n}\n/**\n * Calculate min distance corresponding point.\n * This method won't evaluate if point is in the path.\n */\nfunction nearestPointOnPath(pt, path, out) {\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n var minDist = Infinity;\n var data = path.data;\n var x = pt.x;\n var y = pt.y;\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n if (i === 1) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n var d = minDist;\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n // TODO Arc 判断的开销比较大\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n // TODO Arc 旋转\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n // 不是直接使用 arc 命令\n if (i <= 1) {\n // 第一个命令起点还未定义\n x0 = x1;\n y0 = y1;\n }\n // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放\n var _x = (x - cx) * ry / rx + cx;\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n break;\n case CMD.Z:\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n xi = x0;\n yi = y0;\n break;\n }\n if (d < minDist) {\n minDist = d;\n out.set(tmpPt[0], tmpPt[1]);\n }\n }\n return minDist;\n}\n// Temporal variable for intermediate usage.\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\n/**\n * Calculate a proper guide line based on the label position and graphic element definition\n * @param label\n * @param labelRect\n * @param target\n * @param targetRect\n */\nexport function updateLabelLinePoints(target, labelLineModel) {\n if (!target) {\n return;\n }\n var labelLine = target.getTextGuideLine();\n var label = target.getTextContent();\n // Needs to create text guide in each charts.\n if (!(label && labelLine)) {\n return;\n }\n var labelGuideConfig = target.textGuideLineConfig || {};\n var points = [[0, 0], [0, 0], [0, 0]];\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n var labelRect = label.getBoundingRect().clone();\n labelRect.applyTransform(label.getComputedTransform());\n var minDist = Infinity;\n var anchorPoint = labelGuideConfig.anchor;\n var targetTransform = target.getComputedTransform();\n var targetInversedTransform = targetTransform && invert([], targetTransform);\n var len = labelLineModel.get('length2') || 0;\n if (anchorPoint) {\n pt2.copy(anchorPoint);\n }\n for (var i = 0; i < searchSpace.length; i++) {\n var candidate = searchSpace[i];\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n Point.scaleAndAdd(pt1, pt0, dir, len);\n // Transform to target coord space.\n pt1.transform(targetInversedTransform);\n // Note: getBoundingRect will ensure the `path` being created.\n var boundingRect = target.getBoundingRect();\n var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n // TODO pt2 is in the path\n if (dist < minDist) {\n minDist = dist;\n // Transform back to global space.\n pt1.transform(targetTransform);\n pt2.transform(targetTransform);\n pt2.toArray(points[0]);\n pt1.toArray(points[1]);\n pt0.toArray(points[2]);\n }\n }\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n labelLine.setShape({\n points: points\n });\n}\n// Temporal variable for the limitTurnAngle function\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\n/**\n * Reduce the line segment attached to the label to limit the turn angle between two segments.\n * @param linePoints\n * @param minTurnAngle Radian of minimum turn angle. 0 - 180\n */\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n return;\n }\n minTurnAngle = minTurnAngle / 180 * Math.PI;\n // The line points can be\n // /pt1----pt2 (label)\n // /\n // pt0/\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt0, pt1);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(dir2);\n var minTurnAngleCos = Math.cos(minTurnAngle);\n if (minTurnAngleCos < angleCos) {\n // Smaller than minTurnAngle\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n // Calculate new projected length with limited minTurnAngle and get the new connect point\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n // Limit the new calculated connect point between pt1 and pt2.\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n if (isNaN(t)) {\n return;\n }\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n/**\n * Limit the angle of line and the surface\n * @param maxSurfaceAngle Radian of minimum turn angle. 0 - 180. 0 is same direction to normal. 180 is opposite\n */\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n return;\n }\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt1, pt0);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(surfaceNormal);\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n if (angleCos < maxSurfaceAngleCos) {\n // Calculate project point of pt0 on pt1-pt2\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n var HALF_PI = Math.PI / 2;\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n if (newAngle >= HALF_PI) {\n // parallel\n Point.copy(tmpProjPoint, pt2);\n } else {\n // Calculate new projected length with limited minTurnAngle and get the new connect point\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n // Limit the new calculated connect point between pt1 and pt2.\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n if (isNaN(t)) {\n return;\n }\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n }\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n var isNormal = stateName === 'normal';\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n // Make sure display.\n stateObj.ignore = ignore;\n // Set smooth\n var smooth = stateModel.get('smooth');\n if (smooth && smooth === true) {\n smooth = 0.3;\n }\n stateObj.shape = stateObj.shape || {};\n if (smooth > 0) {\n stateObj.shape.smooth = smooth;\n }\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\nfunction buildLabelLinePath(path, shape) {\n var smooth = shape.smooth;\n var points = shape.points;\n if (!points) {\n return;\n }\n path.moveTo(points[0][0], points[0][1]);\n if (smooth > 0 && points.length >= 3) {\n var len1 = vector.dist(points[0], points[1]);\n var len2 = vector.dist(points[1], points[2]);\n if (!len1 || !len2) {\n path.lineTo(points[1][0], points[1][1]);\n path.lineTo(points[2][0], points[2][1]);\n return;\n }\n var moveLen = Math.min(len1, len2) * smooth;\n var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n } else {\n for (var i = 1; i < points.length; i++) {\n path.lineTo(points[i][0], points[i][1]);\n }\n }\n}\n/**\n * Create a label line if necessary and set it's style.\n */\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n var labelLine = targetEl.getTextGuideLine();\n var label = targetEl.getTextContent();\n if (!label) {\n // Not show label line if there is no label.\n if (labelLine) {\n targetEl.removeTextGuideLine();\n }\n return;\n }\n var normalModel = statesModels.normal;\n var showNormal = normalModel.get('show');\n var labelIgnoreNormal = label.ignore;\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n var stateModel = statesModels[stateName];\n var isNormal = stateName === 'normal';\n if (stateModel) {\n var stateShow = stateModel.get('show');\n var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n if (isLabelIgnored // Not show when label is not shown in this state.\n || !retrieve2(stateShow, showNormal) // Use normal state by default if not set.\n ) {\n var stateObj = isNormal ? labelLine : labelLine && labelLine.states[stateName];\n if (stateObj) {\n stateObj.ignore = true;\n }\n if (!!labelLine) {\n setLabelLineState(labelLine, true, stateName, stateModel);\n }\n continue;\n }\n // Create labelLine if not exists\n if (!labelLine) {\n labelLine = new Polyline();\n targetEl.setTextGuideLine(labelLine);\n // Reset state of normal because it's new created.\n // NOTE: NORMAL should always been the first!\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n }\n // Use same state proxy.\n if (targetEl.stateProxy) {\n labelLine.stateProxy = targetEl.stateProxy;\n }\n }\n setLabelLineState(labelLine, false, stateName, stateModel);\n }\n }\n if (labelLine) {\n defaults(labelLine.style, defaultStyle);\n // Not fill.\n labelLine.style.fill = null;\n var showAbove = normalModel.get('showAbove');\n var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n labelLineConfig.showAbove = showAbove || false;\n // Custom the buildPath.\n labelLine.buildPath = buildLabelLinePath;\n }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n labelLineName = labelLineName || 'labelLine';\n var statesModels = {\n normal: itemModel.getModel(labelLineName)\n };\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n }\n return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO: move labels out of viewport.\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic.js';\nimport { getECData } from '../util/innerStore.js';\nimport { parsePercent } from '../util/number.js';\nimport Transformable from 'zrender/lib/core/Transformable.js';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper.js';\nimport { makeInner } from '../util/model.js';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util.js';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper.js';\nimport { labelInner, animateLabelValue } from './labelStyle.js';\nimport { normalizeRadian } from 'zrender/lib/contain/util.js';\nfunction cloneArr(points) {\n if (points) {\n var newPoints = [];\n for (var i = 0; i < points.length; i++) {\n newPoints.push(points[i].slice());\n }\n return newPoints;\n }\n}\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n var label = labelItem.label;\n var labelLine = hostEl && hostEl.getTextGuideLine();\n return {\n dataIndex: labelItem.dataIndex,\n dataType: labelItem.dataType,\n seriesIndex: labelItem.seriesModel.seriesIndex,\n text: labelItem.label.style.text,\n rect: labelItem.hostRect,\n labelRect: labelItem.rect,\n // x: labelAttr.x,\n // y: labelAttr.y,\n align: label.style.align,\n verticalAlign: label.style.verticalAlign,\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n };\n}\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\nfunction extendWithKeys(target, source, keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (source[key] != null) {\n target[key] = source[key];\n }\n }\n}\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\nvar LabelManager = /** @class */function () {\n function LabelManager() {\n this._labelList = [];\n this._chartViewList = [];\n }\n LabelManager.prototype.clearLabels = function () {\n this._labelList = [];\n this._chartViewList = [];\n };\n /**\n * Add label to manager\n */\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n var labelStyle = label.style;\n var hostEl = label.__hostTarget;\n var textConfig = hostEl.textConfig || {};\n // TODO: If label is in other state.\n var labelTransform = label.getComputedTransform();\n var labelRect = label.getBoundingRect().plain();\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n if (labelTransform) {\n dummyTransformable.setLocalTransform(labelTransform);\n } else {\n // Identity transform.\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n }\n dummyTransformable.rotation = normalizeRadian(dummyTransformable.rotation);\n var host = label.__hostTarget;\n var hostRect;\n if (host) {\n hostRect = host.getBoundingRect().plain();\n var transform = host.getComputedTransform();\n BoundingRect.applyTransform(hostRect, hostRect, transform);\n }\n var labelGuide = hostRect && host.getTextGuideLine();\n this._labelList.push({\n label: label,\n labelLine: labelGuide,\n seriesModel: seriesModel,\n dataIndex: dataIndex,\n dataType: dataType,\n layoutOption: layoutOption,\n computedLayoutOption: null,\n rect: labelRect,\n hostRect: hostRect,\n // Label with lower priority will be hidden when overlapped\n // Use rect size as default priority\n priority: hostRect ? hostRect.width * hostRect.height : 0,\n // Save default label attributes.\n // For restore if developers want get back to default value in callback.\n defaultAttr: {\n ignore: label.ignore,\n labelGuideIgnore: labelGuide && labelGuide.ignore,\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n scaleX: dummyTransformable.scaleX,\n scaleY: dummyTransformable.scaleY,\n rotation: dummyTransformable.rotation,\n style: {\n x: labelStyle.x,\n y: labelStyle.y,\n align: labelStyle.align,\n verticalAlign: labelStyle.verticalAlign,\n width: labelStyle.width,\n height: labelStyle.height,\n fontSize: labelStyle.fontSize\n },\n cursor: label.cursor,\n attachedPos: textConfig.position,\n attachedRot: textConfig.rotation\n }\n });\n };\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n var _this = this;\n this._chartViewList.push(chartView);\n var seriesModel = chartView.__model;\n var layoutOption = seriesModel.get('labelLayout');\n /**\n * Ignore layouting if it's not specified anything.\n */\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n return;\n }\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true; // Stop traverse descendants.\n }\n // Only support label being hosted on graphic elements.\n var textEl = child.getTextContent();\n var ecData = getECData(child);\n // Can only attach the text on the element with dataIndex\n if (textEl && !textEl.disableLabelLayout) {\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n }\n });\n };\n LabelManager.prototype.updateLayoutConfig = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n function createDragHandler(el, labelLineModel) {\n return function () {\n updateLabelLinePoints(el, labelLineModel);\n };\n }\n for (var i = 0; i < this._labelList.length; i++) {\n var labelItem = this._labelList[i];\n var label = labelItem.label;\n var hostEl = label.__hostTarget;\n var defaultLabelAttr = labelItem.defaultAttr;\n var layoutOption = void 0;\n // TODO A global layout option?\n if (isFunction(labelItem.layoutOption)) {\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n } else {\n layoutOption = labelItem.layoutOption;\n }\n layoutOption = layoutOption || {};\n labelItem.computedLayoutOption = layoutOption;\n var degreeToRadian = Math.PI / 180;\n // TODO hostEl should always exists.\n // Or label should not have parent because the x, y is all in global space.\n if (hostEl) {\n hostEl.setTextConfig({\n // Force to set local false.\n local: false,\n // Ignore position and rotation config on the host el if x or y is changed.\n position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n // Ignore rotation config on the host el if rotation is changed.\n rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n });\n }\n var needsUpdateLabelLine = false;\n if (layoutOption.x != null) {\n // TODO width of chart view.\n label.x = parsePercent(layoutOption.x, width);\n label.setStyle('x', 0); // Ignore movement in style. TODO: origin.\n needsUpdateLabelLine = true;\n } else {\n label.x = defaultLabelAttr.x;\n label.setStyle('x', defaultLabelAttr.style.x);\n }\n if (layoutOption.y != null) {\n // TODO height of chart view.\n label.y = parsePercent(layoutOption.y, height);\n label.setStyle('y', 0); // Ignore movement in style.\n needsUpdateLabelLine = true;\n } else {\n label.y = defaultLabelAttr.y;\n label.setStyle('y', defaultLabelAttr.style.y);\n }\n if (layoutOption.labelLinePoints) {\n var guideLine = hostEl.getTextGuideLine();\n if (guideLine) {\n guideLine.setShape({\n points: layoutOption.labelLinePoints\n });\n // Not update\n needsUpdateLabelLine = false;\n }\n }\n var labelLayoutStore = labelLayoutInnerStore(label);\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n label.scaleX = defaultLabelAttr.scaleX;\n label.scaleY = defaultLabelAttr.scaleY;\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n }\n if (layoutOption.draggable) {\n label.draggable = true;\n label.cursor = 'move';\n if (hostEl) {\n var hostModel = labelItem.seriesModel;\n if (labelItem.dataIndex != null) {\n var data = labelItem.seriesModel.getData(labelItem.dataType);\n hostModel = data.getItemModel(labelItem.dataIndex);\n }\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n }\n } else {\n // TODO Other drag functions?\n label.off('drag');\n label.cursor = defaultLabelAttr.cursor;\n }\n }\n };\n LabelManager.prototype.layout = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n var labelList = prepareLayoutList(this._labelList);\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftX';\n });\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftY';\n });\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\n return item.layoutOption.hideOverlap;\n });\n hideOverlap(labelsNeedsHideOverlap);\n };\n /**\n * Process all labels. Not only labels with layoutOption.\n */\n LabelManager.prototype.processLabelsOverall = function () {\n var _this = this;\n each(this._chartViewList, function (chartView) {\n var seriesModel = chartView.__model;\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n var animationEnabled = seriesModel.isAnimationEnabled();\n chartView.group.traverse(function (child) {\n if (child.ignore && !child.forceLabelAnimation) {\n return true; // Stop traverse descendants.\n }\n\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n var label = child.getTextContent();\n if (!needsUpdateLabelLine && label) {\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n }\n if (needsUpdateLabelLine) {\n _this._updateLabelLine(child, seriesModel);\n }\n if (animationEnabled) {\n _this._animateLabels(child, seriesModel);\n }\n });\n });\n };\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n // Only support label being hosted on graphic elements.\n var textEl = el.getTextContent();\n // Update label line style.\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n // Only support labelLine on the labels represent data.\n if (textEl && dataIndex != null) {\n var data = seriesModel.getData(ecData.dataType);\n var itemModel = data.getItemModel(dataIndex);\n var defaultStyle = {};\n var visualStyle = data.getItemVisual(dataIndex, 'style');\n if (visualStyle) {\n var visualType = data.getVisual('drawType');\n // Default to be same with main color\n defaultStyle.stroke = visualStyle[visualType];\n }\n var labelLineModel = itemModel.getModel('labelLine');\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n updateLabelLinePoints(el, labelLineModel);\n }\n };\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var guideLine = el.getTextGuideLine();\n // Animate\n if (textEl\n // `forceLabelAnimation` has the highest priority\n && (el.forceLabelAnimation || !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el))) {\n var layoutStore = labelLayoutInnerStore(textEl);\n var oldLayout = layoutStore.oldLayout;\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n var newProps = {\n x: textEl.x,\n y: textEl.y,\n rotation: textEl.rotation\n };\n var data = seriesModel.getData(ecData.dataType);\n if (!oldLayout) {\n textEl.attr(newProps);\n // Disable fade in animation if value animation is enabled.\n if (!labelInner(textEl).valueAnimation) {\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\n // Fade in animation\n textEl.style.opacity = 0;\n initProps(textEl, {\n style: {\n opacity: oldOpacity\n }\n }, seriesModel, dataIndex);\n }\n } else {\n textEl.attr(oldLayout);\n // Make sure the animation from is in the right status.\n var prevStates = el.prevStates;\n if (prevStates) {\n if (indexOf(prevStates, 'select') >= 0) {\n textEl.attr(layoutStore.oldLayoutSelect);\n }\n if (indexOf(prevStates, 'emphasis') >= 0) {\n textEl.attr(layoutStore.oldLayoutEmphasis);\n }\n }\n updateProps(textEl, newProps, seriesModel, dataIndex);\n }\n layoutStore.oldLayout = newProps;\n if (textEl.states.select) {\n var layoutSelect = layoutStore.oldLayoutSelect = {};\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n }\n if (textEl.states.emphasis) {\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n }\n animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n }\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n var layoutStore = labelLineAnimationStore(guideLine);\n var oldLayout = layoutStore.oldLayout;\n var newLayout = {\n points: guideLine.shape.points\n };\n if (!oldLayout) {\n guideLine.setShape(newLayout);\n guideLine.style.strokePercent = 0;\n initProps(guideLine, {\n style: {\n strokePercent: 1\n }\n }, seriesModel);\n } else {\n guideLine.attr({\n shape: oldLayout\n });\n updateProps(guideLine, {\n shape: newLayout\n }, seriesModel);\n }\n layoutStore.oldLayout = newLayout;\n }\n };\n return LabelManager;\n}();\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { makeInner } from '../util/model.js';\nimport LabelManager from './LabelManager.js';\nvar getLabelManager = makeInner();\nexport function installLabelLayout(registers) {\n registers.registerUpdateLifecycle('series:beforeupdate', function (ecModel, api, params) {\n // TODO api provide an namespace that can save stuff per instance\n var labelManager = getLabelManager(api).labelManager;\n if (!labelManager) {\n labelManager = getLabelManager(api).labelManager = new LabelManager();\n }\n labelManager.clearLabels();\n });\n registers.registerUpdateLifecycle('series:layoutlabels', function (ecModel, api, params) {\n var labelManager = getLabelManager(api).labelManager;\n params.updatedSeries.forEach(function (series) {\n labelManager.addLabelsOfSeries(api.getViewOfSeriesModel(series));\n });\n labelManager.updateLayoutConfig(api);\n labelManager.layout(api);\n labelManager.processLabelsOverall();\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nimport { isArray, map } from 'zrender/lib/core/util.js';\nimport { parsePercent } from 'zrender/lib/contain/text.js';\nexport function getSectorCornerRadius(model, shape, zeroIfNull) {\n var cornerRadius = model.get('borderRadius');\n if (cornerRadius == null) {\n return zeroIfNull ? {\n cornerRadius: 0\n } : null;\n }\n if (!isArray(cornerRadius)) {\n cornerRadius = [cornerRadius, cornerRadius, cornerRadius, cornerRadius];\n }\n var dr = Math.abs(shape.r || 0 - shape.r0 || 0);\n return {\n cornerRadius: map(cornerRadius, function (cr) {\n return parsePercent(cr, dr);\n })\n };\n}"],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { h as e } from "./index-7a5365e2.js";
|
|
2
|
+
|
|
3
|
+
const l = {
|
|
4
|
+
circle: ({width: l, additionalClasses: i}) => e("div", {
|
|
5
|
+
class: `skeleton-shape circle ${i || ""}`,
|
|
6
|
+
style: {
|
|
7
|
+
width: l,
|
|
8
|
+
height: l
|
|
9
|
+
}
|
|
10
|
+
}),
|
|
11
|
+
rectangle: ({width: l, height: i, borderRadius: d, additionalClasses: t}) => e("div", {
|
|
12
|
+
class: `skeleton-shape rectangle ${t || ""}`,
|
|
13
|
+
style: {
|
|
14
|
+
width: l,
|
|
15
|
+
height: i,
|
|
16
|
+
borderRadius: d
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const i = {
|
|
22
|
+
field: () => e("div", {
|
|
23
|
+
class: "skeleton-shape field"
|
|
24
|
+
}, e("div", {
|
|
25
|
+
class: "skeleton-field-label"
|
|
26
|
+
}, l.rectangle({
|
|
27
|
+
height: "1rem",
|
|
28
|
+
width: "50%"
|
|
29
|
+
})), l.rectangle({
|
|
30
|
+
height: "var(--tct-input-height, 42px)",
|
|
31
|
+
borderRadius: "3px"
|
|
32
|
+
})),
|
|
33
|
+
text: (i, d) => {
|
|
34
|
+
var t;
|
|
35
|
+
const s = (t = i === null || i === void 0 ? void 0 : i[0]) !== null && t !== void 0 ? t : 1;
|
|
36
|
+
const o = d === null || d === void 0 ? void 0 : d.has("header");
|
|
37
|
+
const a = (d === null || d === void 0 ? void 0 : d.has("center")) && "center" || (d === null || d === void 0 ? void 0 : d.has("right")) && "right" || "left";
|
|
38
|
+
const n = (d === null || d === void 0 ? void 0 : d.has("smallheader")) ? " smaller" : "";
|
|
39
|
+
const r = o ? `header ${a}${n}` : "";
|
|
40
|
+
return e("div", {
|
|
41
|
+
class: "skeleton-shape text"
|
|
42
|
+
}, o && l.rectangle({
|
|
43
|
+
width: "60%",
|
|
44
|
+
additionalClasses: r
|
|
45
|
+
}), !!s && Array(s).fill(undefined).map((() => l.rectangle({
|
|
46
|
+
height: "1rem"
|
|
47
|
+
}))));
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const d = {
|
|
52
|
+
circle: () => l.circle({
|
|
53
|
+
width: "100%"
|
|
54
|
+
}),
|
|
55
|
+
rectangle: () => l.rectangle({
|
|
56
|
+
height: "100%",
|
|
57
|
+
borderRadius: "var(--tct-border-radius-1, 4px)"
|
|
58
|
+
}),
|
|
59
|
+
table: (i, d) => {
|
|
60
|
+
var t, s;
|
|
61
|
+
const o = (t = i === null || i === void 0 ? void 0 : i[0]) !== null && t !== void 0 ? t : 5;
|
|
62
|
+
const a = (s = i === null || i === void 0 ? void 0 : i[1]) !== null && s !== void 0 ? s : 5;
|
|
63
|
+
const n = d === null || d === void 0 ? void 0 : d.has("headless");
|
|
64
|
+
const r = d === null || d === void 0 ? void 0 : d.has("bordered");
|
|
65
|
+
return e("div", {
|
|
66
|
+
class: "skeleton-shape table"
|
|
67
|
+
}, !n && e("div", {
|
|
68
|
+
class: "skeleton-table-head"
|
|
69
|
+
}, e("div", {
|
|
70
|
+
class: "skeleton-table-row skeleton-table-header flex"
|
|
71
|
+
}, !!o && Array(o).fill(undefined).map((() => l.rectangle({
|
|
72
|
+
height: "1rem"
|
|
73
|
+
})))), e("div", {
|
|
74
|
+
class: "skeleton-table-row-border"
|
|
75
|
+
}, l.rectangle({
|
|
76
|
+
height: "3px"
|
|
77
|
+
}))), e("div", {
|
|
78
|
+
class: "skeleton-table-body"
|
|
79
|
+
}, !!a && Array(a).fill(undefined).map((() => e("div", {
|
|
80
|
+
class: "skeleton-table-row-wrapper"
|
|
81
|
+
}, e("div", {
|
|
82
|
+
class: "skeleton-table-row flex"
|
|
83
|
+
}, !!o && Array(o).fill(undefined).map((() => l.rectangle({
|
|
84
|
+
height: "1.5rem"
|
|
85
|
+
})))), r && e("div", {
|
|
86
|
+
class: "skeleton-table-row-border"
|
|
87
|
+
}, l.rectangle({
|
|
88
|
+
height: "1px",
|
|
89
|
+
additionalClasses: "no-margin"
|
|
90
|
+
})))))));
|
|
91
|
+
},
|
|
92
|
+
field: i.field,
|
|
93
|
+
form: l => {
|
|
94
|
+
var d, t, s;
|
|
95
|
+
const o = (d = (l === null || l === void 0 ? void 0 : l[1]) && (l === null || l === void 0 ? void 0 : l[0])) !== null && d !== void 0 ? d : 1;
|
|
96
|
+
const a = (s = (t = l === null || l === void 0 ? void 0 : l[1]) !== null && t !== void 0 ? t : l === null || l === void 0 ? void 0 : l[0]) !== null && s !== void 0 ? s : 1;
|
|
97
|
+
const n = o * a;
|
|
98
|
+
return e("div", {
|
|
99
|
+
class: `skeleton-shape form flex columns-${o}`
|
|
100
|
+
}, !!n && Array(n).fill(undefined).map(i.field));
|
|
101
|
+
},
|
|
102
|
+
text: i.text,
|
|
103
|
+
"detailed-item": (d, t) => {
|
|
104
|
+
const s = t === null || t === void 0 ? void 0 : t.has("square");
|
|
105
|
+
const o = (t === null || t === void 0 ? void 0 : t.has("center")) && "center" || (t === null || t === void 0 ? void 0 : t.has("right")) && "right" || "left";
|
|
106
|
+
return e("div", {
|
|
107
|
+
class: `skeleton-shape detailed-item flex ${o}`
|
|
108
|
+
}, e("div", {
|
|
109
|
+
class: `detailed-item-image flex-${o}`
|
|
110
|
+
}, s ? l.rectangle({
|
|
111
|
+
width: "1.5em",
|
|
112
|
+
height: "1.5em",
|
|
113
|
+
borderRadius: "3px"
|
|
114
|
+
}) : l.circle({
|
|
115
|
+
width: "1.5em"
|
|
116
|
+
})), e("div", {
|
|
117
|
+
class: `detailed-item-text flex flex-v-center flex-${o}`
|
|
118
|
+
}, e("div", null, i.text(d, t))));
|
|
119
|
+
},
|
|
120
|
+
"label-value": i => {
|
|
121
|
+
var d;
|
|
122
|
+
const t = 2 * ((d = i === null || i === void 0 ? void 0 : i[0]) !== null && d !== void 0 ? d : 1);
|
|
123
|
+
return e("div", {
|
|
124
|
+
class: "skeleton-shape label-value flex"
|
|
125
|
+
}, !!t && Array(t).fill(undefined).map((() => l.rectangle({
|
|
126
|
+
height: "1rem"
|
|
127
|
+
}))));
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export { l as a, d as s };
|
|
132
|
+
//# sourceMappingURL=shapes-c7e1a3fa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atoms","circle","width","additionalClasses","h","class","style","height","rectangle","borderRadius","molecules","field","text","counts","modifiers","rows","_a","hasHeader","has","alignment","smallHeaderClass","Array","fill","undefined","map","shapes","table","columnCount","rowCount","_b","headless","bordered","form","columns","_c","totalItems","isSquare","cells"],"sources":["src/components/q2-loading/skeleton/shapes.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { JSX } from './../../../components';\n\ninterface AtomOptions {\n width?: string;\n height?: string;\n borderRadius?: string;\n additionalClasses?: string;\n}\n\nexport const atoms = {\n circle: ({ width, additionalClasses }: AtomOptions): JSX.IntrinsicElements => (\n <div\n class={`skeleton-shape circle ${additionalClasses || ''}`}\n style={{ width, height: width }}\n ></div>\n ),\n rectangle: ({ width, height, borderRadius, additionalClasses }: AtomOptions): JSX.IntrinsicElements => (\n <div\n class={`skeleton-shape rectangle ${additionalClasses || ''}`}\n style={{ width, height, borderRadius }}\n ></div>\n ),\n};\n\nexport const molecules = {\n field: (): JSX.IntrinsicElements => (\n <div class=\"skeleton-shape field\">\n <div class=\"skeleton-field-label\">{atoms.rectangle({ height: '1rem', width: '50%' })}</div>\n {atoms.rectangle({\n height: 'var(--tct-input-height, 42px)',\n borderRadius: '3px',\n })}\n </div>\n ),\n text: (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const rows = counts?.[0] ?? 1;\n const hasHeader = modifiers?.has('header');\n const alignment = (modifiers?.has('center') && 'center') || (modifiers?.has('right') && 'right') || 'left';\n const smallHeaderClass = modifiers?.has('smallheader') ? ' smaller' : '';\n const additionalClasses = hasHeader ? `header ${alignment}${smallHeaderClass}` : '';\n return (\n <div class=\"skeleton-shape text\">\n {hasHeader && atoms.rectangle({ width: '60%', additionalClasses })}\n {!!rows &&\n Array(rows)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n );\n },\n};\n\nexport const shapes = {\n circle: (): JSX.IntrinsicElements => {\n return atoms.circle({ width: '100%' });\n },\n rectangle: (): JSX.IntrinsicElements => {\n return atoms.rectangle({ height: '100%', borderRadius: 'var(--tct-border-radius-1, 4px)' });\n },\n table: (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const columnCount = counts?.[0] ?? 5;\n const rowCount = counts?.[1] ?? 5;\n const headless = modifiers?.has('headless');\n const bordered = modifiers?.has('bordered');\n return (\n <div class=\"skeleton-shape table\">\n {!headless && (\n <div class=\"skeleton-table-head\">\n <div class=\"skeleton-table-row skeleton-table-header flex\">\n {!!columnCount &&\n Array(columnCount)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n <div class=\"skeleton-table-row-border\">{atoms.rectangle({ height: '3px' })}</div>\n </div>\n )}\n <div class=\"skeleton-table-body\">\n {!!rowCount &&\n Array(rowCount)\n .fill(undefined)\n .map(() => (\n <div class=\"skeleton-table-row-wrapper\">\n <div class=\"skeleton-table-row flex\">\n {!!columnCount &&\n Array(columnCount)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1.5rem' }))}\n </div>\n {bordered && (\n <div class=\"skeleton-table-row-border\">\n {atoms.rectangle({\n height: '1px',\n additionalClasses: 'no-margin',\n })}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n },\n field: molecules.field,\n form: (counts?: number[]): JSX.IntrinsicElements => {\n const columns = (counts?.[1] && counts?.[0]) ?? 1;\n const rows = counts?.[1] ?? counts?.[0] ?? 1;\n const totalItems = columns * rows;\n return (\n <div class={`skeleton-shape form flex columns-${columns}`}>\n {!!totalItems && Array(totalItems).fill(undefined).map(molecules.field)}\n </div>\n );\n },\n text: molecules.text,\n 'detailed-item': (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const isSquare = modifiers?.has('square');\n const alignment = (modifiers?.has('center') && 'center') || (modifiers?.has('right') && 'right') || 'left';\n return (\n <div class={`skeleton-shape detailed-item flex ${alignment}`}>\n <div class={`detailed-item-image flex-${alignment}`}>\n {isSquare\n ? atoms.rectangle({ width: '1.5em', height: '1.5em', borderRadius: '3px' })\n : atoms.circle({ width: '1.5em' })}\n </div>\n <div class={`detailed-item-text flex flex-v-center flex-${alignment}`}>\n <div>{molecules.text(counts, modifiers)}</div>\n </div>\n </div>\n );\n },\n 'label-value': (counts?: number[]): JSX.IntrinsicElements => {\n const cells = 2 * (counts?.[0] ?? 1);\n return (\n <div class=\"skeleton-shape label-value flex\">\n {!!cells &&\n Array(cells)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n );\n },\n};\n\nexport default shapes;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["atoms","circle","width","additionalClasses","h","class","style","height","rectangle","borderRadius","molecules","field","text","counts","modifiers","rows","_a","hasHeader","has","alignment","smallHeaderClass","Array","fill","undefined","map","shapes","table","columnCount","rowCount","_b","headless","bordered","form","columns","_c","totalItems","isSquare","cells"],"sources":["src/components/q2-loading/skeleton/shapes.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { JSX } from './../../../components';\n\ninterface AtomOptions {\n width?: string;\n height?: string;\n borderRadius?: string;\n additionalClasses?: string;\n}\n\nexport const atoms = {\n circle: ({ width, additionalClasses }: AtomOptions): JSX.IntrinsicElements => (\n <div\n class={`skeleton-shape circle ${additionalClasses || ''}`}\n style={{ width, height: width }}\n ></div>\n ),\n rectangle: ({ width, height, borderRadius, additionalClasses }: AtomOptions): JSX.IntrinsicElements => (\n <div\n class={`skeleton-shape rectangle ${additionalClasses || ''}`}\n style={{ width, height, borderRadius }}\n ></div>\n ),\n};\n\nexport const molecules = {\n field: (): JSX.IntrinsicElements => (\n <div class=\"skeleton-shape field\">\n <div class=\"skeleton-field-label\">{atoms.rectangle({ height: '1rem', width: '50%' })}</div>\n {atoms.rectangle({\n height: 'var(--tct-input-height, 42px)',\n borderRadius: '3px',\n })}\n </div>\n ),\n text: (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const rows = counts?.[0] ?? 1;\n const hasHeader = modifiers?.has('header');\n const alignment = (modifiers?.has('center') && 'center') || (modifiers?.has('right') && 'right') || 'left';\n const smallHeaderClass = modifiers?.has('smallheader') ? ' smaller' : '';\n const additionalClasses = hasHeader ? `header ${alignment}${smallHeaderClass}` : '';\n return (\n <div class=\"skeleton-shape text\">\n {hasHeader && atoms.rectangle({ width: '60%', additionalClasses })}\n {!!rows &&\n Array(rows)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n );\n },\n};\n\nexport const shapes = {\n circle: (): JSX.IntrinsicElements => {\n return atoms.circle({ width: '100%' });\n },\n rectangle: (): JSX.IntrinsicElements => {\n return atoms.rectangle({ height: '100%', borderRadius: 'var(--tct-border-radius-1, 4px)' });\n },\n table: (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const columnCount = counts?.[0] ?? 5;\n const rowCount = counts?.[1] ?? 5;\n const headless = modifiers?.has('headless');\n const bordered = modifiers?.has('bordered');\n return (\n <div class=\"skeleton-shape table\">\n {!headless && (\n <div class=\"skeleton-table-head\">\n <div class=\"skeleton-table-row skeleton-table-header flex\">\n {!!columnCount &&\n Array(columnCount)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n <div class=\"skeleton-table-row-border\">{atoms.rectangle({ height: '3px' })}</div>\n </div>\n )}\n <div class=\"skeleton-table-body\">\n {!!rowCount &&\n Array(rowCount)\n .fill(undefined)\n .map(() => (\n <div class=\"skeleton-table-row-wrapper\">\n <div class=\"skeleton-table-row flex\">\n {!!columnCount &&\n Array(columnCount)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1.5rem' }))}\n </div>\n {bordered && (\n <div class=\"skeleton-table-row-border\">\n {atoms.rectangle({\n height: '1px',\n additionalClasses: 'no-margin',\n })}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n },\n field: molecules.field,\n form: (counts?: number[]): JSX.IntrinsicElements => {\n const columns = (counts?.[1] && counts?.[0]) ?? 1;\n const rows = counts?.[1] ?? counts?.[0] ?? 1;\n const totalItems = columns * rows;\n return (\n <div class={`skeleton-shape form flex columns-${columns}`}>\n {!!totalItems && Array(totalItems).fill(undefined).map(molecules.field)}\n </div>\n );\n },\n text: molecules.text,\n 'detailed-item': (counts?: number[], modifiers?: Set<string>): JSX.IntrinsicElements => {\n const isSquare = modifiers?.has('square');\n const alignment = (modifiers?.has('center') && 'center') || (modifiers?.has('right') && 'right') || 'left';\n return (\n <div class={`skeleton-shape detailed-item flex ${alignment}`}>\n <div class={`detailed-item-image flex-${alignment}`}>\n {isSquare\n ? atoms.rectangle({ width: '1.5em', height: '1.5em', borderRadius: '3px' })\n : atoms.circle({ width: '1.5em' })}\n </div>\n <div class={`detailed-item-text flex flex-v-center flex-${alignment}`}>\n <div>{molecules.text(counts, modifiers)}</div>\n </div>\n </div>\n );\n },\n 'label-value': (counts?: number[]): JSX.IntrinsicElements => {\n const cells = 2 * (counts?.[0] ?? 1);\n return (\n <div class=\"skeleton-shape label-value flex\">\n {!!cells &&\n Array(cells)\n .fill(undefined)\n .map(() => atoms.rectangle({ height: '1rem' }))}\n </div>\n );\n },\n};\n\nexport default shapes;\n"],"mappings":"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"}
|