@acorex/components 22.1.8 → 22.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-accordion.mjs +10 -10
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +15 -14
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +7 -7
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +32 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +9 -8
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +10 -10
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +7 -7
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +10 -10
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +365 -55
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +40 -37
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +7 -7
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +7 -7
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +7 -7
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +44 -19
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +7 -7
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +28 -28
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +158 -31
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +11 -7
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +28 -28
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/{acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs → acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs} +2889 -1016
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs → acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs} +4 -4
- package/fesm2022/{acorex-components-conversation-composer-action-choice-dialog.component-COUB9zrM.mjs.map → acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs} +5 -5
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-_F-fv3Ti.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +47 -47
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +3 -3
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +181 -183
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +777 -160
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +7 -7
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +7 -7
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +59 -117
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +10 -10
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +11 -11
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +9 -8
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +19 -14
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +15 -14
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-emoji.mjs +74 -0
- package/fesm2022/acorex-components-emoji.mjs.map +1 -0
- package/fesm2022/acorex-components-emojipicker.mjs +425 -0
- package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
- package/fesm2022/acorex-components-fab.mjs +6 -6
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +226 -127
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +16 -16
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-highlight.mjs +80 -0
- package/fesm2022/acorex-components-highlight.mjs.map +1 -0
- package/fesm2022/acorex-components-image-editor.mjs +217 -79
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-json-viewer.mjs +7 -7
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +3 -3
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +6 -6
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +7 -7
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +28 -9
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +16 -16
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +771 -148
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +20 -13
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +215 -218
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +146 -45
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-message-status.mjs +71 -0
- package/fesm2022/acorex-components-message-status.mjs.map +1 -0
- package/fesm2022/acorex-components-message-time.mjs +36 -0
- package/fesm2022/acorex-components-message-time.mjs.map +1 -0
- package/fesm2022/acorex-components-message.mjs +120 -0
- package/fesm2022/acorex-components-message.mjs.map +1 -0
- package/fesm2022/acorex-components-navbar.mjs +7 -7
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +13 -14
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +17 -10
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +7 -7
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +25 -25
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +10 -10
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +7 -7
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +13 -13
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +61 -13
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +631 -167
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +7 -7
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +7 -7
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +7 -7
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +7 -7
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +7 -7
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +9 -9
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +54 -54
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +35 -35
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +7 -7
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +9 -8
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +7 -7
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +55 -42
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-sidebar.mjs +28 -28
- package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +7 -7
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +13 -13
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +16 -18
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +367 -72
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +7 -7
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +7 -7
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +7 -7
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +7 -7
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +7 -7
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +10 -10
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +14 -14
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +7 -7
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +10 -10
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +54 -14
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +13 -13
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +691 -295
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/highlight/README.md +13 -0
- package/inline-reaction/README.md +3 -0
- package/lookup/README.md +1 -1
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +48 -13
- package/reaction/README.md +3 -0
- package/types/acorex-components-action-sheet.d.ts +1 -1
- package/types/acorex-components-audio-wave.d.ts +8 -0
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-button.d.ts +74 -9
- package/types/acorex-components-calendar.d.ts +13 -4
- package/types/acorex-components-check-box.d.ts +1 -1
- package/types/acorex-components-code-editor.d.ts +4 -1
- package/types/acorex-components-color-box.d.ts +1 -1
- package/types/acorex-components-color-palette.d.ts +2 -2
- package/types/acorex-components-combo-box.d.ts +8 -2
- package/types/acorex-components-command.d.ts +3 -1
- package/types/acorex-components-conversation.d.ts +418 -119
- package/types/acorex-components-cron-job.d.ts +6 -6
- package/types/acorex-components-data-pager.d.ts +27 -9
- package/types/acorex-components-data-table.d.ts +221 -21
- package/types/acorex-components-datetime-box.d.ts +1 -1
- package/types/acorex-components-datetime-picker.d.ts +1 -1
- package/types/acorex-components-decorators.d.ts +15 -33
- package/types/acorex-components-dialog.d.ts +1 -1
- package/types/acorex-components-dropdown-button.d.ts +2 -1
- package/types/acorex-components-dropdown.d.ts +6 -1
- package/types/acorex-components-editor.d.ts +1 -1
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-file-viewer.d.ts +13 -2
- package/types/acorex-components-highlight.d.ts +31 -0
- package/types/acorex-components-image-editor.d.ts +19 -2
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-list.d.ts +12 -0
- package/types/acorex-components-loading-dialog.d.ts +1 -1
- package/types/acorex-components-loading.d.ts +1 -1
- package/types/acorex-components-lookup.d.ts +214 -79
- package/types/acorex-components-map.d.ts +7 -2
- package/types/acorex-components-media-viewer.d.ts +4 -3
- package/types/acorex-components-menu.d.ts +17 -5
- package/types/acorex-components-message-status.d.ts +23 -0
- package/types/acorex-components-message-time.d.ts +19 -0
- package/types/acorex-components-message.d.ts +59 -0
- package/types/acorex-components-notification.d.ts +1 -1
- package/types/acorex-components-number-box.d.ts +2 -1
- package/types/acorex-components-otp.d.ts +1 -1
- package/types/acorex-components-page.d.ts +2 -2
- package/types/acorex-components-paint.d.ts +2 -2
- package/types/acorex-components-password-box.d.ts +1 -1
- package/types/acorex-components-phone-box.d.ts +1 -1
- package/types/acorex-components-popover.d.ts +13 -1
- package/types/acorex-components-popup.d.ts +183 -50
- package/types/acorex-components-rail-navigation.d.ts +1 -1
- package/types/acorex-components-range-slider.d.ts +1 -1
- package/types/acorex-components-reaction.d.ts +85 -0
- package/types/acorex-components-rest-api-generator.d.ts +1 -1
- package/types/acorex-components-rrule.d.ts +1 -1
- package/types/acorex-components-scheduler-picker.d.ts +1 -1
- package/types/acorex-components-scheduler.d.ts +1 -1
- package/types/acorex-components-search-box.d.ts +1 -1
- package/types/acorex-components-side-menu.d.ts +6 -8
- package/types/acorex-components-slider.d.ts +1 -1
- package/types/acorex-components-step-wizard.d.ts +4 -4
- package/types/acorex-components-switch.d.ts +1 -1
- package/types/acorex-components-tabs.d.ts +106 -19
- package/types/acorex-components-tag-box.d.ts +2 -2
- package/types/acorex-components-text-area.d.ts +1 -1
- package/types/acorex-components-text-box.d.ts +1 -1
- package/types/acorex-components-time-duration.d.ts +1 -1
- package/types/acorex-components-toast.d.ts +1 -1
- package/types/acorex-components-tree-view.d.ts +23 -1
- package/types/acorex-components-wysiwyg.d.ts +426 -77
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-Cl_dlCTX.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs +0 -85
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs.map +0 -1
- package/fesm2022/acorex-components-flow-chart.mjs +0 -735
- package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
- package/fesm2022/acorex-components-query-builder.mjs +0 -267
- package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
- package/flow-chart/README.md +0 -3
- package/query-builder/README.md +0 -3
- package/types/acorex-components-flow-chart.d.ts +0 -187
- package/types/acorex-components-query-builder.d.ts +0 -52
|
@@ -1,33 +1,97 @@
|
|
|
1
|
-
import { AXComponent, MXBaseComponent, AXClosableComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { input, ChangeDetectionStrategy, Component, computed, Directive, inject, NgZone, viewChild, viewChildren, effect, signal, afterNextRender, TemplateRef, ViewContainerRef, HostListener, ViewChild, ViewEncapsulation, Injector, runInInjectionContext, ComponentRef, Injectable, ElementRef, afterRenderEffect, contentChild, NgModule } from '@angular/core';
|
|
3
|
+
import { MXBaseComponent, AXClosableComponent, AXComponent, AXComponentClosedPromise, NXComponent, AXCommonModule } from '@acorex/cdk/common';
|
|
4
|
+
import { AXDragHandleDirective, AXDragDirective, moveItemInArray, AX_DRAG_PARENT, AXDropListDirective } from '@acorex/cdk/drag-drop';
|
|
5
|
+
import { AXChromeButtonComponent, AXDecoratorCloseButtonComponent, AXButtonModule } from '@acorex/components/button';
|
|
6
|
+
import { DOCUMENT, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
|
|
4
7
|
import { AXOverlayService } from '@acorex/cdk/overlay';
|
|
5
8
|
import { Subject } from 'rxjs';
|
|
6
9
|
import { AXPlatform } from '@acorex/core/platform';
|
|
7
|
-
import {
|
|
8
|
-
import { Router, NavigationStart } from '@angular/router';
|
|
9
|
-
import { filter } from 'rxjs/operators';
|
|
10
|
+
import { AXResizableDirective } from '@acorex/cdk/resizable';
|
|
10
11
|
import { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';
|
|
11
|
-
import { AXButtonComponent } from '@acorex/components/button';
|
|
12
|
-
import { AXDecoratorCloseButtonComponent, AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
|
|
13
12
|
import { AXLoadingService } from '@acorex/components/loading';
|
|
14
|
-
import {
|
|
13
|
+
import { AXSkeletonComponent } from '@acorex/components/skeleton';
|
|
15
14
|
import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
|
|
16
|
-
import {
|
|
15
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Windows-style window caption glyphs: minimize, maximize, restore, close.
|
|
19
|
+
*/
|
|
20
|
+
class AXPopupCaptionIconComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.name = input.required(/* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupCaptionIconComponent, isStandalone: true, selector: "ax-popup-caption-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "attr.data-name": "name()" }, classAttribute: "ax-popup-caption-icon" }, ngImport: i0, template: `
|
|
27
|
+
<svg viewBox="0 0 10 10" focusable="false">
|
|
28
|
+
@switch (name()) {
|
|
29
|
+
@case ('minimize') {
|
|
30
|
+
<path d="M1.6 5h6.8" />
|
|
31
|
+
}
|
|
32
|
+
@case ('maximize') {
|
|
33
|
+
<rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
|
|
34
|
+
}
|
|
35
|
+
@case ('restore') {
|
|
36
|
+
<path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
|
|
37
|
+
<rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
|
|
38
|
+
}
|
|
39
|
+
@case ('close') {
|
|
40
|
+
<path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</svg>
|
|
44
|
+
`, isInline: true, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
21
45
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupCaptionIconComponent, decorators: [{
|
|
23
47
|
type: Component,
|
|
24
|
-
args: [{ selector: 'ax-popup-
|
|
25
|
-
|
|
48
|
+
args: [{ selector: 'ax-popup-caption-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
49
|
+
class: 'ax-popup-caption-icon',
|
|
50
|
+
'[attr.data-name]': 'name()',
|
|
51
|
+
'aria-hidden': 'true',
|
|
52
|
+
}, template: `
|
|
53
|
+
<svg viewBox="0 0 10 10" focusable="false">
|
|
54
|
+
@switch (name()) {
|
|
55
|
+
@case ('minimize') {
|
|
56
|
+
<path d="M1.6 5h6.8" />
|
|
57
|
+
}
|
|
58
|
+
@case ('maximize') {
|
|
59
|
+
<rect x="1.4" y="1.4" width="7.2" height="7.2" rx="1" />
|
|
60
|
+
}
|
|
61
|
+
@case ('restore') {
|
|
62
|
+
<path d="M3.15 2.85V1.4h5.45v5.45H7.15" />
|
|
63
|
+
<rect x="1.4" y="3.15" width="5.45" height="5.45" rx="0.7" />
|
|
64
|
+
}
|
|
65
|
+
@case ('close') {
|
|
66
|
+
<path d="M2.05 2.05l5.9 5.9M7.95 2.05l-5.9 5.9" />
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
</svg>
|
|
70
|
+
`, styles: [":host{display:inline-flex;width:12px;height:12px}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:square;stroke-linejoin:miter}\n"] }]
|
|
71
|
+
}], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }] } });
|
|
26
72
|
|
|
73
|
+
const AX_POPUP_DEFAULT_RESIZE_HANDLES = [
|
|
74
|
+
'top',
|
|
75
|
+
'bottom',
|
|
76
|
+
'start',
|
|
77
|
+
'end',
|
|
78
|
+
'top-start',
|
|
79
|
+
'top-end',
|
|
80
|
+
'bottom-start',
|
|
81
|
+
'bottom-end',
|
|
82
|
+
];
|
|
27
83
|
class AXPopupComponentBase {
|
|
28
84
|
constructor() {
|
|
29
85
|
this.__popup__ = input(/* @ts-ignore */
|
|
30
86
|
...(ngDevMode ? [undefined, { debugName: "__popup__" }] : /* istanbul ignore next */ []));
|
|
87
|
+
this.popupState = computed(() => this.__popup__()?.state() ?? 'normal', /* @ts-ignore */
|
|
88
|
+
...(ngDevMode ? [{ debugName: "popupState" }] : /* istanbul ignore next */ []));
|
|
89
|
+
this.isMinimized = computed(() => this.__popup__()?.isMinimized() ?? false, /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "isMinimized" }] : /* istanbul ignore next */ []));
|
|
91
|
+
this.isMaximized = computed(() => this.__popup__()?.isMaximized() ?? false, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "isMaximized" }] : /* istanbul ignore next */ []));
|
|
93
|
+
this.popupTitle = computed(() => this.__popup__()?.title() ?? '', /* @ts-ignore */
|
|
94
|
+
...(ngDevMode ? [{ debugName: "popupTitle" }] : /* istanbul ignore next */ []));
|
|
31
95
|
}
|
|
32
96
|
close(data = null) {
|
|
33
97
|
this.__popup__()?.close(data);
|
|
@@ -47,10 +111,10 @@ class AXPopupComponentBase {
|
|
|
47
111
|
bringToFront() {
|
|
48
112
|
this.__popup__()?.bringToFront();
|
|
49
113
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
51
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
115
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AXPopupComponentBase, isStandalone: true, inputs: { __popup__: { classPropertyName: "__popup__", publicName: "__popup__", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
52
116
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponentBase, decorators: [{
|
|
54
118
|
type: Directive
|
|
55
119
|
}], propDecorators: { __popup__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popup__", required: false }] }] } });
|
|
56
120
|
/** Resolves whether the close header button is shown. `buttons.close` wins over `closeButton`. */
|
|
@@ -72,6 +136,38 @@ function resolvePopupMinimize(config) {
|
|
|
72
136
|
return {
|
|
73
137
|
enable: config?.buttons?.minimize?.enable ?? false,
|
|
74
138
|
position: config?.buttons?.minimize?.position ?? 'bottom-right',
|
|
139
|
+
dock: config?.buttons?.minimize?.dock ?? 'default',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/** Resolves resize config. Disabled for `size: 'full'` and when `resizable` is false/omitted. */
|
|
143
|
+
function resolvePopupResizable(config) {
|
|
144
|
+
const defaults = {
|
|
145
|
+
enable: false,
|
|
146
|
+
handles: AX_POPUP_DEFAULT_RESIZE_HANDLES,
|
|
147
|
+
minWidth: 240,
|
|
148
|
+
minHeight: 160,
|
|
149
|
+
maxWidth: null,
|
|
150
|
+
maxHeight: null,
|
|
151
|
+
lockAspectRatio: false,
|
|
152
|
+
dblClickAction: 'reset',
|
|
153
|
+
};
|
|
154
|
+
if (!config || config.size === 'full') {
|
|
155
|
+
return defaults;
|
|
156
|
+
}
|
|
157
|
+
const raw = config.resizable;
|
|
158
|
+
if (!raw) {
|
|
159
|
+
return defaults;
|
|
160
|
+
}
|
|
161
|
+
const options = raw === true ? {} : raw;
|
|
162
|
+
return {
|
|
163
|
+
enable: true,
|
|
164
|
+
handles: options.handles ?? AX_POPUP_DEFAULT_RESIZE_HANDLES,
|
|
165
|
+
minWidth: options.minWidth ?? defaults.minWidth,
|
|
166
|
+
minHeight: options.minHeight ?? defaults.minHeight,
|
|
167
|
+
maxWidth: options.maxWidth ?? null,
|
|
168
|
+
maxHeight: options.maxHeight ?? null,
|
|
169
|
+
lockAspectRatio: options.lockAspectRatio ?? false,
|
|
170
|
+
dblClickAction: options.dblClickAction ?? 'reset',
|
|
75
171
|
};
|
|
76
172
|
}
|
|
77
173
|
|
|
@@ -81,16 +177,28 @@ function resolvePopupMinimize(config) {
|
|
|
81
177
|
* @category Components
|
|
82
178
|
*/
|
|
83
179
|
class AXPopupComponent extends MXBaseComponent {
|
|
180
|
+
#syncDragHandles;
|
|
84
181
|
constructor() {
|
|
85
|
-
super(
|
|
182
|
+
super();
|
|
86
183
|
this._zone = inject(NgZone);
|
|
87
184
|
this.loadingService = inject(AXLoadingService);
|
|
88
185
|
this._platform = inject(AXPlatform);
|
|
89
|
-
this.
|
|
90
|
-
this._router = inject(Router, { optional: true });
|
|
91
|
-
this._destroyRef = inject(DestroyRef);
|
|
186
|
+
this.document = inject(DOCUMENT);
|
|
92
187
|
this.popupEl = viewChild('popupEl', /* @ts-ignore */
|
|
93
188
|
...(ngDevMode ? [{ debugName: "popupEl" }] : /* istanbul ignore next */ []));
|
|
189
|
+
this.projectedHandles = viewChildren(AXDragHandleDirective, /* @ts-ignore */
|
|
190
|
+
...(ngDevMode ? [{ debugName: "projectedHandles" }] : /* istanbul ignore next */ []));
|
|
191
|
+
this.#syncDragHandles = effect(() => {
|
|
192
|
+
const handles = this.projectedHandles();
|
|
193
|
+
const drag = this.dragDir;
|
|
194
|
+
if (!drag) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
for (const handle of handles) {
|
|
198
|
+
drag.registerHandle(handle);
|
|
199
|
+
}
|
|
200
|
+
}, /* @ts-ignore */
|
|
201
|
+
...(ngDevMode ? [{ debugName: "#syncDragHandles" }] : /* istanbul ignore next */ []));
|
|
94
202
|
// Inputs from overlay service
|
|
95
203
|
this.__content__ = input(/* @ts-ignore */
|
|
96
204
|
...(ngDevMode ? [undefined, { debugName: "__content__" }] : /* istanbul ignore next */ []));
|
|
@@ -106,20 +214,53 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
106
214
|
*/
|
|
107
215
|
this.isLoading = true;
|
|
108
216
|
/** @ignore */
|
|
217
|
+
this._delayTimer = null;
|
|
218
|
+
/** @ignore */
|
|
109
219
|
this._componentRef = null;
|
|
220
|
+
this.showSkeleton = signal(false, /* @ts-ignore */
|
|
221
|
+
...(ngDevMode ? [{ debugName: "showSkeleton" }] : /* istanbul ignore next */ []));
|
|
222
|
+
this.skeletonTemplate = () => this.__config__()?.skeletonTemplate ?? null;
|
|
110
223
|
/** Current title */
|
|
111
224
|
this.title = signal('', /* @ts-ignore */
|
|
112
225
|
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
113
|
-
/**
|
|
114
|
-
this.
|
|
115
|
-
...(ngDevMode ? [{ debugName: "
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
this.
|
|
121
|
-
|
|
122
|
-
this.
|
|
226
|
+
/** Clamps dragging to the viewport (`document.documentElement`). */
|
|
227
|
+
this.dragBoundary = signal(undefined, /* @ts-ignore */
|
|
228
|
+
...(ngDevMode ? [{ debugName: "dragBoundary" }] : /* istanbul ignore next */ []));
|
|
229
|
+
this.dragDisabled = computed(() => !this.__config__()?.draggable || this.popupSizeState() === 'minimize' || this.fullScreenState(), /* @ts-ignore */
|
|
230
|
+
...(ngDevMode ? [{ debugName: "dragDisabled" }] : /* istanbul ignore next */ []));
|
|
231
|
+
this.resizeConfig = computed(() => resolvePopupResizable(this.__config__()), /* @ts-ignore */
|
|
232
|
+
...(ngDevMode ? [{ debugName: "resizeConfig" }] : /* istanbul ignore next */ []));
|
|
233
|
+
this.resizeActive = computed(() => this.resizeConfig().enable, /* @ts-ignore */
|
|
234
|
+
...(ngDevMode ? [{ debugName: "resizeActive" }] : /* istanbul ignore next */ []));
|
|
235
|
+
this.resizeEnabled = computed(() => this.resizeConfig().enable && this.popupSizeState() !== 'minimize' && !this.fullScreenState(), /* @ts-ignore */
|
|
236
|
+
...(ngDevMode ? [{ debugName: "resizeEnabled" }] : /* istanbul ignore next */ []));
|
|
237
|
+
this.viewportSize = signal({ width: 0, height: 0 }, /* @ts-ignore */
|
|
238
|
+
...(ngDevMode ? [{ debugName: "viewportSize" }] : /* istanbul ignore next */ []));
|
|
239
|
+
this.resizeMaxWidth = computed(() => {
|
|
240
|
+
const max = this.resizeConfig().maxWidth;
|
|
241
|
+
if (max != null) {
|
|
242
|
+
return max;
|
|
243
|
+
}
|
|
244
|
+
const viewport = this.viewportSize().width;
|
|
245
|
+
return viewport > 0 ? viewport : Infinity;
|
|
246
|
+
}, /* @ts-ignore */
|
|
247
|
+
...(ngDevMode ? [{ debugName: "resizeMaxWidth" }] : /* istanbul ignore next */ []));
|
|
248
|
+
this.resizeMaxHeight = computed(() => {
|
|
249
|
+
const max = this.resizeConfig().maxHeight;
|
|
250
|
+
if (max != null) {
|
|
251
|
+
return max;
|
|
252
|
+
}
|
|
253
|
+
const viewport = this.viewportSize().height;
|
|
254
|
+
return viewport > 0 ? viewport : Infinity;
|
|
255
|
+
}, /* @ts-ignore */
|
|
256
|
+
...(ngDevMode ? [{ debugName: "resizeMaxHeight" }] : /* istanbul ignore next */ []));
|
|
257
|
+
this.viewportResizeHandler = () => {
|
|
258
|
+
const win = this.document.defaultView;
|
|
259
|
+
if (!win) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this.viewportSize.set({ width: win.innerWidth, height: win.innerHeight });
|
|
263
|
+
};
|
|
123
264
|
this.popupSizeState = signal('normal', /* @ts-ignore */
|
|
124
265
|
...(ngDevMode ? [{ debugName: "popupSizeState" }] : /* istanbul ignore next */ []));
|
|
125
266
|
this.fullScreenState = signal(false, /* @ts-ignore */
|
|
@@ -128,15 +269,26 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
128
269
|
...(ngDevMode ? [{ debugName: "minimizeLeft" }] : /* istanbul ignore next */ []));
|
|
129
270
|
this.minimizeRight = signal(null, /* @ts-ignore */
|
|
130
271
|
...(ngDevMode ? [{ debugName: "minimizeRight" }] : /* istanbul ignore next */ []));
|
|
272
|
+
this.minimizeSide = computed(() => resolvePopupMinimize(this.__config__()).position, /* @ts-ignore */
|
|
273
|
+
...(ngDevMode ? [{ debugName: "minimizeSide" }] : /* istanbul ignore next */ []));
|
|
131
274
|
this.fullscreenChangeHandler = () => {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
275
|
+
const isFullscreen = !!document.fullscreenElement;
|
|
276
|
+
this.fullScreenState.set(isFullscreen);
|
|
277
|
+
if (this.__popupRef__()?.state() !== 'minimized') {
|
|
278
|
+
this.__popupRef__()?._setState?.(isFullscreen ? 'maximized' : 'normal');
|
|
135
279
|
}
|
|
280
|
+
this.cdr.markForCheck();
|
|
136
281
|
};
|
|
137
282
|
this.closeEnabled = () => resolvePopupCloseButton(this.__config__());
|
|
138
283
|
this.maximizeEnabled = () => resolvePopupMaximizable(this.__config__());
|
|
139
284
|
this.minimizeEnabled = () => resolvePopupMinimize(this.__config__()).enable;
|
|
285
|
+
afterNextRender(() => {
|
|
286
|
+
this.dragBoundary.set(this.document.documentElement);
|
|
287
|
+
this.viewportResizeHandler();
|
|
288
|
+
const win = this.document.defaultView;
|
|
289
|
+
win?.addEventListener('resize', this.viewportResizeHandler);
|
|
290
|
+
this.bindContentDragHandles();
|
|
291
|
+
});
|
|
140
292
|
}
|
|
141
293
|
/** @ignore */
|
|
142
294
|
ngOnInit() {
|
|
@@ -145,39 +297,39 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
145
297
|
if (this._platform.is('SM')) {
|
|
146
298
|
if (config) {
|
|
147
299
|
config.draggable = false;
|
|
300
|
+
config.resizable = false;
|
|
148
301
|
}
|
|
149
302
|
}
|
|
150
303
|
this.title.set(config?.title ?? '');
|
|
151
|
-
this._loadingId = this.loadingService.show({
|
|
152
|
-
location: this.getHostElement(),
|
|
153
|
-
});
|
|
154
|
-
this._setupCloseOnNavigation();
|
|
155
304
|
document.addEventListener('fullscreenchange', this.fullscreenChangeHandler);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
305
|
+
const delay = config?.delay ?? 0;
|
|
306
|
+
if (delay > 0) {
|
|
307
|
+
this.showSkeleton.set(true);
|
|
308
|
+
this.cdr.markForCheck();
|
|
309
|
+
this._delayTimer = setTimeout(() => {
|
|
310
|
+
this._zone.run(() => {
|
|
311
|
+
this._delayTimer = null;
|
|
312
|
+
this.showSkeleton.set(false);
|
|
313
|
+
void this.renderContent();
|
|
314
|
+
this.cdr.markForCheck();
|
|
315
|
+
});
|
|
316
|
+
}, delay);
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this._loadingId = this.loadingService.show({
|
|
320
|
+
location: this.getHostElement(),
|
|
321
|
+
});
|
|
322
|
+
this.renderContent();
|
|
323
|
+
}
|
|
174
324
|
}
|
|
175
325
|
/** @ignore */
|
|
176
326
|
async renderContent() {
|
|
177
327
|
const content = this.__content__();
|
|
178
328
|
const config = this.__config__();
|
|
179
329
|
if (!content) {
|
|
180
|
-
|
|
330
|
+
if (this._loadingId !== undefined) {
|
|
331
|
+
this.loadingService.hide(this._loadingId);
|
|
332
|
+
}
|
|
181
333
|
return;
|
|
182
334
|
}
|
|
183
335
|
if (content instanceof TemplateRef) {
|
|
@@ -193,7 +345,7 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
193
345
|
this.handleContentRendered();
|
|
194
346
|
}
|
|
195
347
|
else if (typeof content === 'function') {
|
|
196
|
-
const componentRef = this.
|
|
348
|
+
const componentRef = this.contentContainerRef.createComponent(content);
|
|
197
349
|
this._componentRef = componentRef;
|
|
198
350
|
const popupRef = this.__popupRef__();
|
|
199
351
|
if (popupRef) {
|
|
@@ -216,8 +368,6 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
216
368
|
if (inputDefs && '__popup__' in inputDefs) {
|
|
217
369
|
componentRef.setInput('__popup__', this.__popupRef__());
|
|
218
370
|
}
|
|
219
|
-
const hostElement = componentRef.location.nativeElement;
|
|
220
|
-
this.contentContainerEl.nativeElement.appendChild(hostElement);
|
|
221
371
|
const instance = componentRef.instance;
|
|
222
372
|
if (instance.onClosed) {
|
|
223
373
|
instance.onClosed.subscribe((e) => {
|
|
@@ -235,6 +385,7 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
235
385
|
const content = body?.children[0];
|
|
236
386
|
if (!content || !body) {
|
|
237
387
|
this.focus();
|
|
388
|
+
this.bindContentDragHandles();
|
|
238
389
|
return;
|
|
239
390
|
}
|
|
240
391
|
const popHeader = this.getHostElement().querySelector('.ax-popup-header-container');
|
|
@@ -251,11 +402,26 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
251
402
|
popHeader.append(header);
|
|
252
403
|
}
|
|
253
404
|
this.focus();
|
|
405
|
+
this.bindContentDragHandles();
|
|
254
406
|
});
|
|
255
407
|
});
|
|
256
|
-
|
|
408
|
+
if (this._loadingId !== undefined) {
|
|
409
|
+
this.loadingService.hide(this._loadingId);
|
|
410
|
+
}
|
|
257
411
|
this.cdr.markForCheck();
|
|
258
412
|
}
|
|
413
|
+
bindContentDragHandles() {
|
|
414
|
+
const drag = this.dragDir;
|
|
415
|
+
const root = this.getHostElement();
|
|
416
|
+
if (!drag || !root) {
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
this._zone.run(() => {
|
|
420
|
+
root.querySelectorAll('[axDragHandle]').forEach((element) => {
|
|
421
|
+
drag.registerHandle(element);
|
|
422
|
+
});
|
|
423
|
+
});
|
|
424
|
+
}
|
|
259
425
|
/** @ignore */
|
|
260
426
|
onKeydownHandler() {
|
|
261
427
|
const config = this.__config__();
|
|
@@ -274,11 +440,18 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
274
440
|
}
|
|
275
441
|
/** @ignore */
|
|
276
442
|
ngOnDestroy() {
|
|
443
|
+
if (this._delayTimer !== null) {
|
|
444
|
+
clearTimeout(this._delayTimer);
|
|
445
|
+
this._delayTimer = null;
|
|
446
|
+
}
|
|
277
447
|
document.removeEventListener('fullscreenchange', this.fullscreenChangeHandler);
|
|
448
|
+
this.document.defaultView?.removeEventListener('resize', this.viewportResizeHandler);
|
|
278
449
|
if (this.fullScreenState() && document.fullscreenElement) {
|
|
279
450
|
document.exitFullscreen().catch(() => undefined);
|
|
280
451
|
}
|
|
281
|
-
|
|
452
|
+
if (this._loadingId !== undefined) {
|
|
453
|
+
this.loadingService.hide(this._loadingId);
|
|
454
|
+
}
|
|
282
455
|
if (this._componentRef) {
|
|
283
456
|
this._componentRef.destroy();
|
|
284
457
|
this._componentRef = null;
|
|
@@ -322,66 +495,114 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
322
495
|
}
|
|
323
496
|
}
|
|
324
497
|
/**
|
|
325
|
-
* Minimizes the popup
|
|
498
|
+
* Minimizes the popup. Routes through the popup ref so a registered dock can host the tab.
|
|
326
499
|
*/
|
|
327
500
|
minimize() {
|
|
501
|
+
this.__popupRef__()?.minimize();
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Maximizes the popup using the Fullscreen API.
|
|
505
|
+
*/
|
|
506
|
+
maximize() {
|
|
507
|
+
this.__popupRef__()?.maximize();
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Restores the popup from minimized or fullscreen state.
|
|
511
|
+
*/
|
|
512
|
+
restore() {
|
|
513
|
+
this.__popupRef__()?.restore();
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* Applies the minimized visual. When `docked` is true the overlay is hidden by the service
|
|
517
|
+
* and the window stays at normal size for the next restore.
|
|
518
|
+
* @internal
|
|
519
|
+
*/
|
|
520
|
+
enterMinimized(docked) {
|
|
328
521
|
if (this.fullScreenState() && document.fullscreenElement) {
|
|
329
522
|
document.exitFullscreen().catch(() => undefined);
|
|
330
523
|
}
|
|
524
|
+
if (docked) {
|
|
525
|
+
this.minimizeLeft.set(null);
|
|
526
|
+
this.minimizeRight.set(null);
|
|
527
|
+
this.popupSizeState.set('normal');
|
|
528
|
+
this.cdr.markForCheck();
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
331
531
|
const el = this.popupEl()?.nativeElement;
|
|
332
532
|
if (!el)
|
|
333
533
|
return;
|
|
334
|
-
this.
|
|
335
|
-
this.minimizeRight.set(null);
|
|
534
|
+
const position = resolvePopupMinimize(this.__config__()).position;
|
|
336
535
|
this.popupSizeState.set('minimize');
|
|
536
|
+
if (position === 'bottom-right') {
|
|
537
|
+
this.minimizeLeft.set(null);
|
|
538
|
+
this.minimizeRight.set('0px');
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
this.minimizeRight.set(null);
|
|
542
|
+
this.minimizeLeft.set('0px');
|
|
543
|
+
}
|
|
337
544
|
this.cdr.markForCheck();
|
|
338
545
|
requestAnimationFrame(() => {
|
|
546
|
+
if (this.popupSizeState() !== 'minimize') {
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
if (this.resizeActive()) {
|
|
550
|
+
el.style.height = '';
|
|
551
|
+
el.style.width = '';
|
|
552
|
+
}
|
|
339
553
|
const width = el.offsetWidth;
|
|
340
554
|
const index = this.__popupRef__()?._getStackIndex?.() ?? 0;
|
|
341
|
-
const
|
|
555
|
+
const offset = `${index * (width + 10)}px`;
|
|
342
556
|
if (position === 'bottom-right') {
|
|
343
557
|
this.minimizeLeft.set(null);
|
|
344
|
-
this.minimizeRight.set(
|
|
558
|
+
this.minimizeRight.set(offset);
|
|
345
559
|
}
|
|
346
560
|
else {
|
|
347
561
|
this.minimizeRight.set(null);
|
|
348
|
-
this.minimizeLeft.set(
|
|
562
|
+
this.minimizeLeft.set(offset);
|
|
349
563
|
}
|
|
350
564
|
this.cdr.markForCheck();
|
|
351
565
|
});
|
|
352
566
|
}
|
|
353
567
|
/**
|
|
354
|
-
*
|
|
568
|
+
* Restores the window from the legacy bottom bar.
|
|
569
|
+
* @internal
|
|
355
570
|
*/
|
|
356
|
-
|
|
571
|
+
exitMinimized() {
|
|
572
|
+
this.minimizeLeft.set(null);
|
|
573
|
+
this.minimizeRight.set(null);
|
|
574
|
+
this.popupSizeState.set('normal');
|
|
575
|
+
this.cdr.markForCheck();
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Enters or toggles the Fullscreen API on the popup element.
|
|
579
|
+
* @internal
|
|
580
|
+
*/
|
|
581
|
+
enterMaximized() {
|
|
357
582
|
const el = this.popupEl()?.nativeElement;
|
|
358
583
|
if (!el)
|
|
359
584
|
return;
|
|
360
|
-
if (this.popupSizeState() === 'minimize') {
|
|
361
|
-
this.restore();
|
|
362
|
-
}
|
|
363
585
|
if (!document.fullscreenElement) {
|
|
364
|
-
el.requestFullscreen()
|
|
586
|
+
el.requestFullscreen()
|
|
587
|
+
.then(() => {
|
|
365
588
|
this.fullScreenState.set(true);
|
|
589
|
+
this.__popupRef__()?._setState?.('maximized');
|
|
366
590
|
this.cdr.markForCheck();
|
|
367
|
-
})
|
|
591
|
+
})
|
|
592
|
+
.catch(() => undefined);
|
|
368
593
|
}
|
|
369
594
|
else {
|
|
370
595
|
document.exitFullscreen().catch(() => undefined);
|
|
371
596
|
}
|
|
372
597
|
}
|
|
373
598
|
/**
|
|
374
|
-
*
|
|
599
|
+
* Leaves fullscreen.
|
|
600
|
+
* @internal
|
|
375
601
|
*/
|
|
376
|
-
|
|
602
|
+
exitMaximized() {
|
|
377
603
|
if (this.fullScreenState() && document.fullscreenElement) {
|
|
378
604
|
document.exitFullscreen().catch(() => undefined);
|
|
379
|
-
return;
|
|
380
605
|
}
|
|
381
|
-
this.minimizeLeft.set(null);
|
|
382
|
-
this.minimizeRight.set(null);
|
|
383
|
-
this.popupSizeState.set('normal');
|
|
384
|
-
this.cdr.markForCheck();
|
|
385
606
|
}
|
|
386
607
|
/**
|
|
387
608
|
* Sets inputs on the content component.
|
|
@@ -401,42 +622,13 @@ class AXPopupComponent extends MXBaseComponent {
|
|
|
401
622
|
this.title.set(title);
|
|
402
623
|
this.cdr.markForCheck();
|
|
403
624
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
const config = this.__config__();
|
|
407
|
-
if (!config?.draggable)
|
|
408
|
-
return;
|
|
409
|
-
if (this.popupSizeState() === 'minimize' || this.fullScreenState())
|
|
410
|
-
return;
|
|
411
|
-
this.isDragging.set(true);
|
|
412
|
-
this.dragStartPos = { x: event.clientX, y: event.clientY };
|
|
413
|
-
const popup = this.getHostElement().querySelector('.ax-popup');
|
|
414
|
-
if (popup) {
|
|
415
|
-
const rect = popup.getBoundingClientRect();
|
|
416
|
-
this.elementStartPos = { x: rect.left, y: rect.top };
|
|
417
|
-
}
|
|
418
|
-
event.preventDefault();
|
|
419
|
-
}
|
|
420
|
-
onDragMove(event) {
|
|
421
|
-
if (!this.isDragging())
|
|
422
|
-
return;
|
|
423
|
-
const deltaX = event.clientX - this.dragStartPos.x;
|
|
424
|
-
const deltaY = event.clientY - this.dragStartPos.y;
|
|
425
|
-
this.dragOffset.set({
|
|
426
|
-
x: this.elementStartPos.x + deltaX,
|
|
427
|
-
y: this.elementStartPos.y + deltaY,
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
onDragEnd() {
|
|
431
|
-
this.isDragging.set(false);
|
|
432
|
-
}
|
|
433
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
434
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()", "document:mousemove": "onDragMove($event)", "document:mouseup": "onDragEnd()" }, styleAttribute: "display: block; max-width: 100%;", classAttribute: "ax-popup-host" }, providers: [
|
|
625
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupComponent, isStandalone: true, selector: "ax-popup", inputs: { __content__: { classPropertyName: "__content__", publicName: "__content__", isSignal: true, isRequired: false, transformFunction: null }, __config__: { classPropertyName: "__config__", publicName: "__config__", isSignal: true, isRequired: false, transformFunction: null }, __popupRef__: { classPropertyName: "__popupRef__", publicName: "__popupRef__", isSignal: true, isRequired: false, transformFunction: null }, __id__: { classPropertyName: "__id__", publicName: "__id__", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onKeydownHandler()" }, styleAttribute: "display: block; max-width: 100%;", classAttribute: "ax-popup-host" }, providers: [
|
|
435
627
|
{ provide: AXClosableComponent, useExisting: AXPopupComponent },
|
|
436
628
|
{ provide: AXComponent, useExisting: AXPopupComponent },
|
|
437
|
-
], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:auto;max-width:100%;flex-direction:column;align-items:center;overflow:hidden;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm{width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md{width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg{width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl{width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl{width:85vw!important;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;min-width:0;max-height:none}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{width:max-content;max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
629
|
+
], viewQueries: [{ propertyName: "popupEl", first: true, predicate: ["popupEl"], descendants: true, isSignal: true }, { propertyName: "projectedHandles", predicate: AXDragHandleDirective, descendants: true, isSignal: true }, { propertyName: "contentContainerRef", first: true, predicate: ["contentOutlet"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "contentContainerEl", first: true, predicate: ["contentContainer"], descendants: true, static: true }, { propertyName: "dragDir", first: true, predicate: ["popupEl"], descendants: true, read: AXDragDirective, static: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-chrome-button class=\"ax-sm\" title=\"Minimize\" (click)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-chrome-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n } @else if (maximizeEnabled()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5)}.ax-popup-header-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button){--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}.ax-popup-header-actions ax-close-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i{--ax-sys-icon-size: .875rem;font-size:.875rem}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }, { kind: "component", type: AXChromeButtonComponent, selector: "ax-chrome-button", inputs: ["title", "aria-label"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "handles", "minWidth", "maxWidth", "minHeight", "maxHeight", "dblClickAction", "width", "defaultWidth", "height", "defaultHeight", "lockAspectRatio"], outputs: ["axResizableChange", "handlesChange", "minWidthChange", "maxWidthChange", "minHeightChange", "maxHeightChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "heightChange", "defaultHeightChange", "lockAspectRatioChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "component", type: AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["closeAll", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
438
630
|
}
|
|
439
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
631
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupComponent, decorators: [{
|
|
440
632
|
type: Component,
|
|
441
633
|
args: [{ selector: 'ax-popup', encapsulation: ViewEncapsulation.None, host: {
|
|
442
634
|
class: 'ax-popup-host',
|
|
@@ -445,30 +637,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
445
637
|
{ provide: AXClosableComponent, useExisting: AXPopupComponent },
|
|
446
638
|
{ provide: AXComponent, useExisting: AXPopupComponent },
|
|
447
639
|
], imports: [
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
AXButtonComponent,
|
|
640
|
+
AXPopupCaptionIconComponent,
|
|
641
|
+
AXChromeButtonComponent,
|
|
451
642
|
AsyncPipe,
|
|
643
|
+
NgTemplateOutlet,
|
|
452
644
|
AXTranslatorPipe,
|
|
453
645
|
AXFocusTrapDirective,
|
|
454
|
-
], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [class.ax-popup-dragging]=\"isDragging()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.position]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'fixed' : null\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : dragOffset().x ? dragOffset().x + 'px' : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n [style.top]=\"popupSizeState() === 'minimize' ? 'auto' : dragOffset().y ? dragOffset().y + 'px' : null\"\n [style.bottom]=\"popupSizeState() === 'minimize' ? '0' : null\"\n [style.transform]=\"dragOffset().x || dragOffset().y || popupSizeState() === 'minimize' ? 'none' : null\"\n >\n <div\n class=\"ax-popup-header-container\"\n [class.ax-popup-draggable]=\"__config__()?.draggable && popupSizeState() !== 'minimize' && !fullScreenState()\"\n (mousedown)=\"onDragStart($event)\"\n >\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\">\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n <div class=\"ax-popup-header-actions\">\n @if (minimizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"minimize()\">\n <ax-icon class=\"ax-icon ax-icon-minimize\"></ax-icon>\n </ax-button>\n }\n\n @if (popupSizeState() !== 'normal' || fullScreenState()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"restore()\">\n <ax-icon class=\"ax-icon ax-icon-maximize\"></ax-icon>\n </ax-button>\n }\n\n @if (maximizeEnabled()) {\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"default\" (onClick)=\"maximize()\">\n <ax-icon class=\"ax-icon ax-icon-full-screen\"></ax-icon>\n </ax-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n }\n </div>\n </div>\n }\n </div>\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer></div>\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);width:auto;max-width:100%;flex-direction:column;align-items:center;overflow:hidden;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup-header-container.ax-popup-draggable{cursor:move}.ax-popup.ax-popup-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-header-bg-color))}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs{width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm{width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md{width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg{width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl{width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl{width:85vw!important;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;min-width:0;max-height:none}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{width:max-content;max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
455
|
-
|
|
646
|
+
AXSkeletonComponent,
|
|
647
|
+
AXDragDirective,
|
|
648
|
+
AXDragHandleDirective,
|
|
649
|
+
AXResizableDirective,
|
|
650
|
+
AXDecoratorCloseButtonComponent
|
|
651
|
+
], template: "<div\n class=\"ax-popup-wrapper\"\n aria-modal=\"true\"\n axFocusTrap\n [class.ax-popup-minimized-host]=\"popupSizeState() === 'minimize'\"\n>\n <div\n #popupEl\n axDrag\n class=\"ax-popup ax-popup-{{ __config__()?.size || 'md' }}\"\n tabindex=\"0\"\n [dragDisabled]=\"dragDisabled()\"\n [dragBoundary]=\"dragBoundary()\"\n [dragResetOnDblClick]=\"false\"\n [axResizable]=\"resizeEnabled()\"\n [handles]=\"resizeConfig().handles\"\n [minWidth]=\"resizeConfig().minWidth\"\n [minHeight]=\"resizeConfig().minHeight\"\n [maxWidth]=\"resizeMaxWidth()\"\n [maxHeight]=\"resizeMaxHeight()\"\n [lockAspectRatio]=\"resizeConfig().lockAspectRatio\"\n [dblClickAction]=\"resizeConfig().dblClickAction\"\n [class.ax-popup-resizable]=\"resizeActive()\"\n [class.ax-popup-minimized]=\"popupSizeState() === 'minimize'\"\n [class.ax-popup-minimized-end]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-right'\"\n [class.ax-popup-minimized-start]=\"popupSizeState() === 'minimize' && minimizeSide() === 'bottom-left'\"\n [class.ax-popup-fullscreen]=\"fullScreenState()\"\n [style.left]=\"popupSizeState() === 'minimize' ? minimizeLeft() : null\"\n [style.right]=\"popupSizeState() === 'minimize' ? minimizeRight() : null\"\n >\n <div class=\"ax-popup-header-container\">\n @if (__config__()?.header) {\n <div class=\"ax-popup-header\" axDragHandle>\n <span class=\"ax-popup-title\">{{ title() | translate | async }}</span>\n\n <div class=\"ax-popup-header-actions\" (pointerdown)=\"$event.stopPropagation()\">\n @if (minimizeEnabled() && popupSizeState() !== 'minimize') {\n <ax-chrome-button class=\"ax-sm\" title=\"Minimize\" (click)=\"minimize()\">\n <ax-popup-caption-icon name=\"minimize\" />\n </ax-chrome-button>\n }\n\n @if (popupSizeState() === 'minimize' || fullScreenState()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n } @else if (maximizeEnabled()) {\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n }\n\n @if (closeEnabled()) {\n <ax-close-button class=\"ax-sm\" tabindex=\"1\" (click)=\"_handleCloseClick()\"></ax-close-button>\n\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"ax-popup-main-container ax-loading-container\">\n <div class=\"ax-popup-body-container\" #contentContainer>\n @if (showSkeleton()) {\n <div class=\"ax-popup-skeleton-container\" #skeletonEl>\n @if (skeletonTemplate()) {\n <ng-container [ngTemplateOutlet]=\"skeletonTemplate()\"></ng-container>\n } @else {\n <div class=\"ax-popup-skeleton-default\">\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-title\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line ax-popup-skeleton-bar-line-short\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n\n <ax-skeleton\n class=\"ax-popup-skeleton-bar ax-popup-skeleton-bar-line\"\n [animated]=\"__config__()?.skeletonAnimated ?? true\"\n ></ax-skeleton>\n </div>\n }\n </div>\n }\n\n <ng-container #contentOutlet />\n </div>\n\n <div class=\"ax-popup-footer-container\" [class.ax-popup-footer-visible]=\"__config__()?.footer\"></div>\n </div>\n </div>\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-overlay-hidden,.ax-overlay-backdrop.ax-popup-overlay-hidden{display:none!important;pointer-events:none!important}.ax-popup-overlay.ax-overlay-centered{pointer-events:none}.ax-popup-overlay.ax-overlay-centered .ax-overlay-content{display:flex;max-height:100%;min-height:calc(var(--spacing, .25rem) * 0);flex-direction:column;align-items:center;justify-content:center;width:100%!important;height:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host{width:fit-content;flex-shrink:0;align-self:center;pointer-events:auto}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-full){width:100%;max-width:100vw}.ax-popup-overlay.ax-overlay-centered ax-popup.ax-popup-host:has(.ax-popup-minimized){width:fit-content!important}.ax-popup-wrapper{display:block;width:fit-content;max-width:100%}.ax-popup-wrapper.ax-popup-minimized-host{width:fit-content!important}.ax-popup.ax-dragging{-webkit-user-select:none;user-select:none}.ax-popup.ax-popup-minimized,.ax-popup.ax-popup-fullscreen{translate:none!important}.ax-popup.ax-popup-fullscreen{max-height:100vh!important;width:100vw!important;border-radius:0!important}.ax-popup-header-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2.5)}.ax-popup-header-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button){--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}.ax-popup{--ax-comp-popup-shadow-rest: var(--ax-sys-effect-modal);--ax-comp-popup-highlight-rest: var(--ax-sys-highlight-surface);--ax-comp-popup-inner-border-rest: var(--ax-sys-inner-border-surface);--ax-comp-popup-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-surface);--ax-comp-popup-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-surface);--ax-comp-popup-backdrop-filter-rest: var(--ax-sys-backdrop-filter-surface);--ax-comp-popup-background-image-rest: var(--ax-sys-gradient-surface);--ax-comp-popup-surface-overlay-rest: var(--ax-sys-surface-overlay-modal);position:relative;box-sizing:border-box;display:flex;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);flex-direction:column;overflow:hidden;border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 0);outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius);border-color:rgba(var(--ax-comp-popup-border-color));background-color:rgba(var(--ax-comp-popup-body-bg-color));box-shadow:var(--ax-comp-popup-contrast-inner-border-rest),var(--ax-comp-popup-inner-border-rest),var(--ax-comp-popup-highlight-rest),var(--ax-comp-popup-shadow-rest);background-image:linear-gradient(var(--ax-comp-popup-contrast-surface-overlay-rest),var(--ax-comp-popup-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-popup-surface-overlay-rest),var(--ax-comp-popup-surface-overlay-rest)),var(--ax-comp-popup-background-image-rest);backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);-webkit-backdrop-filter:var(--ax-comp-popup-backdrop-filter-rest);color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup .ax-popup-header-container{flex-shrink:0}.ax-popup .ax-popup-header-container .ax-popup-header{display:flex;align-items:center;justify-content:space-between;border-bottom-style:var(--tw-border-style);border-bottom-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-header-border-color))}.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}}@media(min-width:48rem){.ax-popup .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 7);line-height:calc(var(--spacing, .25rem) * 7)}}.ax-popup ax-footer{display:flex;align-items:center;justify-content:space-between;border-top-style:var(--tw-border-style);border-top-width:1px;padding:calc(var(--spacing, .25rem) * 3);border-color:rgba(var(--ax-comp-popup-footer-border-color));background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup:focus{outline-style:var(--tw-outline-style);outline-width:2px;outline-offset:2px;outline-color:transparent}.ax-popup:focus-visible{border-color:rgba(var(--ax-sys-color-primary-surface))}.ax-popup .ax-popup-main-container{display:flex;min-height:calc(var(--spacing, .25rem) * 0);flex:1;flex-direction:column;overflow:hidden}.ax-popup .ax-popup-main-container .ax-popup-body-container{min-height:calc(var(--spacing, .25rem) * 0);flex:1;overflow:auto;background-color:rgba(var(--ax-comp-popup-body-bg-color))}.ax-popup .ax-popup-main-container .ax-popup-skeleton-container{overflow:hidden;padding:calc(var(--spacing, .25rem) * 4)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar{display:block;border-radius:var(--radius-md, .375rem)}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-title{height:calc(var(--spacing, .25rem) * 5);width:40%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line{height:calc(var(--spacing, .25rem) * 3.5);width:100%}.ax-popup .ax-popup-main-container .ax-popup-skeleton-default .ax-popup-skeleton-bar-line-short{width:80%}.ax-popup .ax-popup-main-container .ax-popup-footer-container{flex-shrink:0;background-color:rgba(var(--ax-comp-popup-footer-bg-color))}.ax-popup.ax-popup-full{height:calc(100 * var(--ax-vh));max-height:calc(100 * var(--ax-vh));width:100vw;border-radius:0!important}.ax-popup.ax-popup-fit{width:fit-content!important}.ax-popup.ax-popup-fit .ax-popup-body-container{max-height:calc(100 * var(--ax-vh))}.ax-popup.ax-popup-fit .ax-popup-body-container>ng-component>div{width:fit-content!important}.ax-popup.ax-popup-xs:not(.ax-popup-resizable){width:18vw!important;max-width:100vw}.ax-popup.ax-popup-sm:not(.ax-popup-resizable){width:25vw!important;max-width:100vw}.ax-popup.ax-popup-md:not(.ax-popup-resizable){width:40vw!important;max-width:100vw}.ax-popup.ax-popup-lg:not(.ax-popup-resizable){width:65vw!important;max-width:100vw}.ax-popup.ax-popup-xl:not(.ax-popup-resizable){width:75vw!important;max-width:100vw}.ax-popup.ax-popup-2xl:not(.ax-popup-resizable){width:85vw!important;max-width:100vw}.ax-popup.ax-popup-resizable{max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh));--ax-comp-resizable-corner-size: 12px}.ax-popup.ax-popup-resizable.ax-popup-xs{width:18vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-sm{width:25vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-md{width:40vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-lg{width:65vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-xl{width:75vw;max-width:100vw}.ax-popup.ax-popup-resizable.ax-popup-2xl{width:85vw;max-width:100vw}.ax-popup.ax-popup-minimized{z-index:55;width:fit-content!important;max-width:min(90vw,24rem)!important;border-top-left-radius:var(--radius-2xl, 1rem);border-top-right-radius:var(--radius-2xl, 1rem);border-bottom-right-radius:0!important;border-bottom-left-radius:0!important;position:fixed!important;bottom:0!important;min-width:0;max-height:none;height:auto!important;min-height:0}.ax-popup.ax-popup-minimized .ax-popup-main-container{display:none}.ax-popup.ax-popup-minimized .ax-popup-header{max-width:100%;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}}@media(min-width:48rem){.ax-popup.ax-popup-minimized .ax-popup-header-container .ax-popup-header .ax-popup-title{--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}}.ax-popup.ax-popup-minimized-end{right:0}.ax-popup.ax-popup-minimized-start{left:0}@media screen and (max-width:768px){.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable){width:93vw!important;max-height:calc(var(--ax-overlay-full-width) * var(--ax-vh))!important;border-radius:var(--ax-comp-popup-border-radius)}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable):not(.ax-popup-full) .ax-popup-body-container>ng-component>div{width:100%}.ax-popup:not(.ax-popup-fit):not(.ax-popup-minimized):not(.ax-popup-resizable).ax-popup-full{height:calc(var(--ax-overlay-full-width) * var(--ax-vh));border-radius:var(--ax-comp-popup-border-radius)!important}}.ax-dark .ax-popup{--ax-comp-popup-border-color: var(--ax-sys-color-border-darkest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-darker-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-darker-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-dark-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-dark-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-dark-surface)}}.ax-popup-header-actions :is(ax-chrome-button,ax-close-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}.ax-popup-header-actions ax-close-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i{--ax-sys-icon-size: .875rem;font-size:.875rem}:root{--ax-comp-popup-border-radius: var(--ax-sys-border-radius);--ax-comp-popup-border-color: var(--ax-sys-color-border-lightest-surface);--ax-comp-popup-body-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-popup-body-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-popup-header-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-header-border-color: var(--ax-sys-color-border-lighter-surface);--ax-comp-popup-footer-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-popup-footer-border-color: var(--ax-sys-color-border-lighter-surface)}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-outline-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-outline-style: solid;--tw-font-weight: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
652
|
+
}], ctorParameters: () => [], propDecorators: { contentContainerRef: [{
|
|
456
653
|
type: ViewChild,
|
|
457
|
-
args: ['
|
|
654
|
+
args: ['contentOutlet', { read: ViewContainerRef, static: true }]
|
|
458
655
|
}], contentContainerEl: [{
|
|
459
656
|
type: ViewChild,
|
|
460
657
|
args: ['contentContainer', { static: true }]
|
|
461
|
-
}],
|
|
658
|
+
}], dragDir: [{
|
|
659
|
+
type: ViewChild,
|
|
660
|
+
args: ['popupEl', { read: AXDragDirective, static: true }]
|
|
661
|
+
}], popupEl: [{ type: i0.ViewChild, args: ['popupEl', { isSignal: true }] }], projectedHandles: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => AXDragHandleDirective), { isSignal: true }] }], __content__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__content__", required: false }] }], __config__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__config__", required: false }] }], __popupRef__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__popupRef__", required: false }] }], __id__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__id__", required: false }] }], onKeydownHandler: [{
|
|
462
662
|
type: HostListener,
|
|
463
663
|
args: ['keydown.escape']
|
|
464
|
-
}], onDragMove: [{
|
|
465
|
-
type: HostListener,
|
|
466
|
-
args: ['document:mousemove', ['$event']]
|
|
467
|
-
}], onDragEnd: [{
|
|
468
|
-
type: HostListener,
|
|
469
|
-
args: ['document:mouseup']
|
|
470
664
|
}] } });
|
|
471
665
|
|
|
666
|
+
const OVERLAY_HIDDEN_CLASS = 'ax-popup-overlay-hidden';
|
|
472
667
|
/**
|
|
473
668
|
* This is a service which you can create popup with it
|
|
474
669
|
*
|
|
@@ -478,6 +673,11 @@ class AXPopupService {
|
|
|
478
673
|
constructor() {
|
|
479
674
|
this.popupList = new Map();
|
|
480
675
|
this.overlayService = inject(AXOverlayService);
|
|
676
|
+
this.injector = inject(Injector);
|
|
677
|
+
this.dockCounts = signal({}, /* @ts-ignore */
|
|
678
|
+
...(ngDevMode ? [{ debugName: "dockCounts" }] : /* istanbul ignore next */ []));
|
|
679
|
+
this.minimizedByDock = signal({}, /* @ts-ignore */
|
|
680
|
+
...(ngDevMode ? [{ debugName: "minimizedByDock" }] : /* istanbul ignore next */ []));
|
|
481
681
|
}
|
|
482
682
|
/**
|
|
483
683
|
* @ignore
|
|
@@ -504,6 +704,50 @@ class AXPopupService {
|
|
|
504
704
|
async openRef(content, config) {
|
|
505
705
|
return this.openInternal(content, this.mergeConfig(config));
|
|
506
706
|
}
|
|
707
|
+
hasDock(name) {
|
|
708
|
+
return (this.dockCounts()[name] ?? 0) > 0;
|
|
709
|
+
}
|
|
710
|
+
registerDock(name) {
|
|
711
|
+
this.dockCounts.update((counts) => ({
|
|
712
|
+
...counts,
|
|
713
|
+
[name]: (counts[name] ?? 0) + 1,
|
|
714
|
+
}));
|
|
715
|
+
}
|
|
716
|
+
unregisterDock(name) {
|
|
717
|
+
const remaining = Math.max(0, (this.dockCounts()[name] ?? 0) - 1);
|
|
718
|
+
this.dockCounts.update((counts) => ({
|
|
719
|
+
...counts,
|
|
720
|
+
[name]: remaining,
|
|
721
|
+
}));
|
|
722
|
+
if (remaining > 0) {
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
const ids = this.minimizedByDock()[name] ?? [];
|
|
726
|
+
for (const id of [...ids]) {
|
|
727
|
+
const instance = this.getPopupInstance(id);
|
|
728
|
+
instance?.enterMinimized(false);
|
|
729
|
+
this.setOverlayVisible(id, true);
|
|
730
|
+
}
|
|
731
|
+
this.minimizedByDock.update((map) => {
|
|
732
|
+
if (!(name in map)) {
|
|
733
|
+
return map;
|
|
734
|
+
}
|
|
735
|
+
const next = { ...map };
|
|
736
|
+
delete next[name];
|
|
737
|
+
return next;
|
|
738
|
+
});
|
|
739
|
+
}
|
|
740
|
+
minimizedInDock(dock) {
|
|
741
|
+
const ids = this.minimizedByDock()[dock] ?? [];
|
|
742
|
+
return ids.map((id) => this.toDockItem(id)).filter((item) => !!item);
|
|
743
|
+
}
|
|
744
|
+
reorderMinimized(dock, fromIndex, toIndex) {
|
|
745
|
+
this.minimizedByDock.update((map) => {
|
|
746
|
+
const list = [...(map[dock] ?? [])];
|
|
747
|
+
moveItemInArray(list, fromIndex, toIndex);
|
|
748
|
+
return { ...map, [dock]: list };
|
|
749
|
+
});
|
|
750
|
+
}
|
|
507
751
|
mergeConfig(arg2) {
|
|
508
752
|
const config = {
|
|
509
753
|
closeButton: true,
|
|
@@ -516,13 +760,13 @@ class AXPopupService {
|
|
|
516
760
|
closeOnBackdropClick: false,
|
|
517
761
|
data: {},
|
|
518
762
|
closeOnNavigation: true,
|
|
519
|
-
panelClass: ['animate-fadeIn', 'animate-fast'],
|
|
520
763
|
buttons: {
|
|
521
764
|
close: true,
|
|
522
765
|
maximize: false,
|
|
523
766
|
minimize: {
|
|
524
767
|
enable: false,
|
|
525
768
|
position: 'bottom-right',
|
|
769
|
+
dock: 'default',
|
|
526
770
|
},
|
|
527
771
|
},
|
|
528
772
|
};
|
|
@@ -539,6 +783,7 @@ class AXPopupService {
|
|
|
539
783
|
minimize: {
|
|
540
784
|
enable: false,
|
|
541
785
|
position: 'bottom-right',
|
|
786
|
+
dock: 'default',
|
|
542
787
|
...config.buttons?.minimize,
|
|
543
788
|
...buttons.minimize,
|
|
544
789
|
},
|
|
@@ -553,6 +798,14 @@ class AXPopupService {
|
|
|
553
798
|
async openInternal(content, config) {
|
|
554
799
|
const randomId = Math.floor(Math.random() * 100000000000);
|
|
555
800
|
const onClose = new Subject();
|
|
801
|
+
const onStateChange = new Subject();
|
|
802
|
+
const state = signal('normal', /* @ts-ignore */
|
|
803
|
+
...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
804
|
+
const title = signal(config.title ?? '', /* @ts-ignore */
|
|
805
|
+
...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
806
|
+
const isMinimized = runInInjectionContext(this.injector, () => computed(() => state() === 'minimized'));
|
|
807
|
+
const isMaximized = runInInjectionContext(this.injector, () => computed(() => state() === 'maximized'));
|
|
808
|
+
const dock = resolvePopupMinimize(config).dock;
|
|
556
809
|
const returnRef = {
|
|
557
810
|
close: (data) => {
|
|
558
811
|
this.close(randomId, data);
|
|
@@ -560,8 +813,9 @@ class AXPopupService {
|
|
|
560
813
|
setInputs: (values) => {
|
|
561
814
|
this.setInputs(randomId, values);
|
|
562
815
|
},
|
|
563
|
-
setTitle: (
|
|
564
|
-
|
|
816
|
+
setTitle: (value) => {
|
|
817
|
+
title.set(value);
|
|
818
|
+
this.setTitle(randomId, value);
|
|
565
819
|
},
|
|
566
820
|
minimize: () => {
|
|
567
821
|
this.minimize(randomId);
|
|
@@ -576,7 +830,19 @@ class AXPopupService {
|
|
|
576
830
|
this.bringToFront(randomId);
|
|
577
831
|
},
|
|
578
832
|
onClose,
|
|
833
|
+
onStateChange,
|
|
834
|
+
state: state.asReadonly(),
|
|
835
|
+
title: title.asReadonly(),
|
|
836
|
+
isMinimized,
|
|
837
|
+
isMaximized,
|
|
579
838
|
_getStackIndex: () => this.getMapIndexOf(randomId),
|
|
839
|
+
_setState: (next) => {
|
|
840
|
+
if (state() === next) {
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
843
|
+
state.set(next);
|
|
844
|
+
onStateChange.next(next);
|
|
845
|
+
},
|
|
580
846
|
};
|
|
581
847
|
if (config._bindContentInputs) {
|
|
582
848
|
config.inputs = {
|
|
@@ -585,20 +851,21 @@ class AXPopupService {
|
|
|
585
851
|
};
|
|
586
852
|
}
|
|
587
853
|
const panelClasses = ['ax-popup-overlay'];
|
|
588
|
-
if (config.panelClass) {
|
|
854
|
+
if (config.panelClass?.length) {
|
|
589
855
|
panelClasses.push(...config.panelClass);
|
|
590
856
|
}
|
|
591
857
|
const ref = await this.overlayService.create(AXPopupComponent, {
|
|
592
858
|
contextElement: config.contextElement,
|
|
593
859
|
visualContextScope: 'theme',
|
|
860
|
+
closeOnNavigation: config.closeOnNavigation,
|
|
594
861
|
backdrop: {
|
|
595
862
|
enabled: config.hasBackdrop ?? true,
|
|
596
863
|
background: true,
|
|
597
|
-
// Dispose is handled via onDispose so close goes through onClose.
|
|
598
864
|
closeOnClick: config.closeOnBackdropClick ?? false,
|
|
599
865
|
backdropClass: config.backdropClass,
|
|
600
866
|
},
|
|
601
867
|
panelClass: panelClasses,
|
|
868
|
+
animation: config.animation ?? true,
|
|
602
869
|
inputs: {
|
|
603
870
|
__content__: content,
|
|
604
871
|
__config__: config,
|
|
@@ -606,33 +873,35 @@ class AXPopupService {
|
|
|
606
873
|
__id__: randomId,
|
|
607
874
|
},
|
|
608
875
|
onDispose: () => {
|
|
609
|
-
// Backdrop click (or external dispose) — complete close pipeline if still open.
|
|
610
876
|
const entry = this.popupList.get(randomId);
|
|
611
877
|
if (!entry)
|
|
612
878
|
return;
|
|
879
|
+
this.removeFromDock(randomId);
|
|
613
880
|
this.popupList.delete(randomId);
|
|
614
881
|
entry.popup.onClose.next(undefined);
|
|
615
882
|
entry.popup.onClose.complete();
|
|
883
|
+
entry.popup.onStateChange.complete();
|
|
616
884
|
},
|
|
617
885
|
});
|
|
618
|
-
this.popupList.set(randomId, {
|
|
886
|
+
this.popupList.set(randomId, {
|
|
887
|
+
overlay: ref,
|
|
888
|
+
popup: returnRef,
|
|
889
|
+
dock,
|
|
890
|
+
data: config.data,
|
|
891
|
+
});
|
|
619
892
|
return returnRef;
|
|
620
893
|
}
|
|
621
|
-
/**
|
|
622
|
-
* Closes a popup by its ID.
|
|
623
|
-
*/
|
|
624
894
|
close(id, data) {
|
|
625
895
|
const ref = this.popupList.get(id);
|
|
626
896
|
if (!ref)
|
|
627
897
|
return;
|
|
898
|
+
this.removeFromDock(id);
|
|
628
899
|
this.popupList.delete(id);
|
|
629
900
|
ref.popup.onClose.next(data);
|
|
630
901
|
ref.popup.onClose.complete();
|
|
902
|
+
ref.popup.onStateChange.complete();
|
|
631
903
|
ref.overlay.dispose();
|
|
632
904
|
}
|
|
633
|
-
/**
|
|
634
|
-
* Sets input values for a popup by its ID.
|
|
635
|
-
*/
|
|
636
905
|
setInputs(id, values) {
|
|
637
906
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
638
907
|
if (!ref)
|
|
@@ -642,9 +911,6 @@ class AXPopupService {
|
|
|
642
911
|
componentInstance.setContentInputs(values);
|
|
643
912
|
}
|
|
644
913
|
}
|
|
645
|
-
/**
|
|
646
|
-
* Sets the title for a popup by its ID.
|
|
647
|
-
*/
|
|
648
914
|
setTitle(id, title) {
|
|
649
915
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
650
916
|
if (!ref)
|
|
@@ -655,20 +921,47 @@ class AXPopupService {
|
|
|
655
921
|
}
|
|
656
922
|
}
|
|
657
923
|
minimize(id) {
|
|
924
|
+
const entry = this.popupList.get(id);
|
|
658
925
|
const instance = this.getPopupInstance(id);
|
|
659
|
-
instance
|
|
926
|
+
if (!entry || !instance || entry.popup.state() === 'minimized')
|
|
927
|
+
return;
|
|
928
|
+
const docked = this.hasDock(entry.dock);
|
|
929
|
+
instance.enterMinimized(docked);
|
|
930
|
+
entry.popup._setState?.('minimized');
|
|
931
|
+
if (docked) {
|
|
932
|
+
this.addToDock(id, entry.dock);
|
|
933
|
+
this.setOverlayVisible(id, false);
|
|
934
|
+
}
|
|
660
935
|
}
|
|
661
936
|
maximize(id) {
|
|
937
|
+
const entry = this.popupList.get(id);
|
|
662
938
|
const instance = this.getPopupInstance(id);
|
|
663
|
-
instance
|
|
939
|
+
if (!entry || !instance)
|
|
940
|
+
return;
|
|
941
|
+
if (entry.popup.state() === 'minimized') {
|
|
942
|
+
this.restore(id);
|
|
943
|
+
}
|
|
944
|
+
instance.enterMaximized();
|
|
664
945
|
}
|
|
665
946
|
restore(id) {
|
|
947
|
+
const entry = this.popupList.get(id);
|
|
666
948
|
const instance = this.getPopupInstance(id);
|
|
667
|
-
instance
|
|
949
|
+
if (!entry || !instance)
|
|
950
|
+
return;
|
|
951
|
+
const current = entry.popup.state();
|
|
952
|
+
if (current === 'normal') {
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
if (current === 'maximized') {
|
|
956
|
+
instance.exitMaximized();
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
instance.exitMinimized();
|
|
960
|
+
this.removeFromDock(id);
|
|
961
|
+
this.setOverlayVisible(id, true);
|
|
962
|
+
entry.popup._setState?.('normal');
|
|
963
|
+
this.bringToFront(id);
|
|
668
964
|
}
|
|
669
|
-
/**
|
|
670
|
-
* Gets the index of a popup in the open stack (used for minimized bar positioning).
|
|
671
|
-
*/
|
|
672
965
|
getMapIndexOf(targetKey) {
|
|
673
966
|
let index = 0;
|
|
674
967
|
for (const key of this.popupList.keys()) {
|
|
@@ -679,15 +972,66 @@ class AXPopupService {
|
|
|
679
972
|
}
|
|
680
973
|
return -1;
|
|
681
974
|
}
|
|
682
|
-
/**
|
|
683
|
-
* Brings a popup to the front of all other overlays.
|
|
684
|
-
*/
|
|
685
975
|
bringToFront(id) {
|
|
686
976
|
const ref = this.popupList.get(id);
|
|
687
977
|
if (!ref)
|
|
688
978
|
return;
|
|
689
979
|
ref.overlay.bringToFront();
|
|
690
980
|
}
|
|
981
|
+
markMaximized(id, maximized) {
|
|
982
|
+
const entry = this.popupList.get(id);
|
|
983
|
+
if (!entry || entry.popup.state() === 'minimized') {
|
|
984
|
+
return;
|
|
985
|
+
}
|
|
986
|
+
entry.popup._setState?.(maximized ? 'maximized' : 'normal');
|
|
987
|
+
}
|
|
988
|
+
addToDock(id, dock) {
|
|
989
|
+
this.minimizedByDock.update((map) => {
|
|
990
|
+
const list = map[dock] ?? [];
|
|
991
|
+
if (list.includes(id)) {
|
|
992
|
+
return map;
|
|
993
|
+
}
|
|
994
|
+
return { ...map, [dock]: [...list, id] };
|
|
995
|
+
});
|
|
996
|
+
}
|
|
997
|
+
removeFromDock(id) {
|
|
998
|
+
this.minimizedByDock.update((map) => {
|
|
999
|
+
let changed = false;
|
|
1000
|
+
const next = {};
|
|
1001
|
+
for (const [dock, ids] of Object.entries(map)) {
|
|
1002
|
+
const filtered = ids.filter((item) => item !== id);
|
|
1003
|
+
next[dock] = filtered;
|
|
1004
|
+
if (filtered.length !== ids.length) {
|
|
1005
|
+
changed = true;
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
return changed ? next : map;
|
|
1009
|
+
});
|
|
1010
|
+
}
|
|
1011
|
+
setOverlayVisible(id, visible) {
|
|
1012
|
+
const overlay = this.popupList.get(id)?.overlay;
|
|
1013
|
+
if (!overlay)
|
|
1014
|
+
return;
|
|
1015
|
+
overlay.overlayElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
|
|
1016
|
+
overlay.backdropElement?.classList.toggle(OVERLAY_HIDDEN_CLASS, !visible);
|
|
1017
|
+
overlay.overlayElement?.toggleAttribute('aria-hidden', !visible);
|
|
1018
|
+
overlay.backdropElement?.toggleAttribute('aria-hidden', !visible);
|
|
1019
|
+
}
|
|
1020
|
+
toDockItem(id) {
|
|
1021
|
+
const entry = this.popupList.get(id);
|
|
1022
|
+
if (!entry) {
|
|
1023
|
+
return null;
|
|
1024
|
+
}
|
|
1025
|
+
return {
|
|
1026
|
+
id,
|
|
1027
|
+
title: entry.popup.title,
|
|
1028
|
+
data: entry.data,
|
|
1029
|
+
ref: entry.popup,
|
|
1030
|
+
restore: () => entry.popup.restore(),
|
|
1031
|
+
maximize: () => entry.popup.maximize(),
|
|
1032
|
+
close: () => entry.popup.close(),
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
691
1035
|
getPopupInstance(id) {
|
|
692
1036
|
const ref = this.popupList.get(id)?.overlay.instance;
|
|
693
1037
|
if (!ref)
|
|
@@ -697,16 +1041,121 @@ class AXPopupService {
|
|
|
697
1041
|
}
|
|
698
1042
|
return null;
|
|
699
1043
|
}
|
|
700
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
701
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.
|
|
1044
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1045
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, providedIn: 'root' }); }
|
|
702
1046
|
}
|
|
703
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1047
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupService, decorators: [{
|
|
704
1048
|
type: Injectable,
|
|
705
1049
|
args: [{
|
|
706
1050
|
providedIn: 'root',
|
|
707
1051
|
}]
|
|
708
1052
|
}] });
|
|
709
1053
|
|
|
1054
|
+
/**
|
|
1055
|
+
* Binds `[axDragHandle]` nodes inside a dock tab (including projected templates)
|
|
1056
|
+
* to the parent `axDrag` wrapper.
|
|
1057
|
+
*/
|
|
1058
|
+
class AXPopupDockItemDirective {
|
|
1059
|
+
constructor() {
|
|
1060
|
+
this.host = inject(ElementRef);
|
|
1061
|
+
this.drag = inject(AXDragDirective);
|
|
1062
|
+
this.injector = Injector.create({
|
|
1063
|
+
parent: inject(Injector),
|
|
1064
|
+
providers: [{ provide: AX_DRAG_PARENT, useValue: this.drag }],
|
|
1065
|
+
});
|
|
1066
|
+
afterRenderEffect(() => {
|
|
1067
|
+
this.host.nativeElement.querySelectorAll('[axDragHandle]').forEach((element) => {
|
|
1068
|
+
this.drag.registerHandle(element);
|
|
1069
|
+
});
|
|
1070
|
+
});
|
|
1071
|
+
}
|
|
1072
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1073
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupDockItemDirective, isStandalone: true, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"], ngImport: i0 }); }
|
|
1074
|
+
}
|
|
1075
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockItemDirective, decorators: [{
|
|
1076
|
+
type: Directive,
|
|
1077
|
+
args: [{
|
|
1078
|
+
selector: '[axPopupDockItem]',
|
|
1079
|
+
exportAs: 'axPopupDockItem',
|
|
1080
|
+
}]
|
|
1081
|
+
}], ctorParameters: () => [] });
|
|
1082
|
+
|
|
1083
|
+
/**
|
|
1084
|
+
* Page-hosted dock for minimized popups. Place it anywhere in the app; matching
|
|
1085
|
+
* `buttons.minimize.dock` names send hidden windows here as reorderable tabs.
|
|
1086
|
+
*
|
|
1087
|
+
* @example
|
|
1088
|
+
* ```html
|
|
1089
|
+
* <ax-popup-dock name="taskbar">
|
|
1090
|
+
* <ng-template let-item>
|
|
1091
|
+
* <button axDragHandle (click)="item.restore()">{{ item.title() }}</button>
|
|
1092
|
+
* <button (click)="item.close()">Close</button>
|
|
1093
|
+
* </ng-template>
|
|
1094
|
+
* </ax-popup-dock>
|
|
1095
|
+
* ```
|
|
1096
|
+
*/
|
|
1097
|
+
class AXPopupDockComponent extends NXComponent {
|
|
1098
|
+
constructor() {
|
|
1099
|
+
super();
|
|
1100
|
+
this.popupService = inject(AXPopupService);
|
|
1101
|
+
/**
|
|
1102
|
+
* Dock name matched against `buttons.minimize.dock`.
|
|
1103
|
+
* @defaultValue 'default'
|
|
1104
|
+
*/
|
|
1105
|
+
this.name = input('default', /* @ts-ignore */
|
|
1106
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
1107
|
+
/**
|
|
1108
|
+
* Layout of the tab strip.
|
|
1109
|
+
* @defaultValue 'horizontal'
|
|
1110
|
+
*/
|
|
1111
|
+
this.orientation = input('horizontal', /* @ts-ignore */
|
|
1112
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
1113
|
+
this.itemTemplate = contentChild(TemplateRef, /* @ts-ignore */
|
|
1114
|
+
...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
|
|
1115
|
+
this.items = computed(() => this.popupService.minimizedInDock(this.name()), /* @ts-ignore */
|
|
1116
|
+
...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
1117
|
+
effect((onCleanup) => {
|
|
1118
|
+
const name = this.name();
|
|
1119
|
+
this.popupService.registerDock(name);
|
|
1120
|
+
onCleanup(() => this.popupService.unregisterDock(name));
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
onDropped(event) {
|
|
1124
|
+
if (event.previousIndex < 0 || event.currentIndex < 0 || event.previousIndex === event.currentIndex) {
|
|
1125
|
+
return;
|
|
1126
|
+
}
|
|
1127
|
+
this.popupService.reorderMinimized(this.name(), event.previousIndex, event.currentIndex);
|
|
1128
|
+
}
|
|
1129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXPopupDockComponent, isStandalone: true, selector: "ax-popup-dock", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ax-popup-dock-empty": "items().length === 0", "class.ax-popup-dock-vertical": "orientation() === \"vertical\"", "class.ax-popup-dock-horizontal": "orientation() === \"horizontal\"" }, classAttribute: "ax-popup-dock" }, providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Close\" (click)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-chrome-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-tab-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-dock-tab-actions ax-chrome-button{--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}}.ax-popup-dock-tab-actions ax-chrome-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "directive", type: AXPopupDockItemDirective, selector: "[axPopupDockItem]", exportAs: ["axPopupDockItem"] }, { kind: "component", type: AXChromeButtonComponent, selector: "ax-chrome-button", inputs: ["title", "aria-label"] }, { kind: "component", type: AXPopupCaptionIconComponent, selector: "ax-popup-caption-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1131
|
+
}
|
|
1132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupDockComponent, decorators: [{
|
|
1133
|
+
type: Component,
|
|
1134
|
+
args: [{ selector: 'ax-popup-dock', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1135
|
+
class: 'ax-popup-dock',
|
|
1136
|
+
'[class.ax-popup-dock-empty]': 'items().length === 0',
|
|
1137
|
+
'[class.ax-popup-dock-vertical]': 'orientation() === "vertical"',
|
|
1138
|
+
'[class.ax-popup-dock-horizontal]': 'orientation() === "horizontal"',
|
|
1139
|
+
}, imports: [
|
|
1140
|
+
NgTemplateOutlet,
|
|
1141
|
+
AXDragDirective,
|
|
1142
|
+
AXDragHandleDirective,
|
|
1143
|
+
AXDropListDirective,
|
|
1144
|
+
AXPopupDockItemDirective,
|
|
1145
|
+
AXChromeButtonComponent,
|
|
1146
|
+
AXPopupCaptionIconComponent,
|
|
1147
|
+
], providers: [{ provide: AXComponent, useExisting: AXPopupDockComponent }], template: "<div\n class=\"ax-popup-dock-list\"\n axDropList\n [dropListOrientation]=\"orientation()\"\n (dropListDropped)=\"onDropped($event)\"\n>\n @for (item of items(); track item.id) {\n <div\n axDrag\n axPopupDockItem\n #dockItem=\"axPopupDockItem\"\n class=\"ax-popup-dock-item\"\n [dragData]=\"item.id\"\n dragCursor=\"grab\"\n >\n @if (itemTemplate(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n [ngTemplateOutletInjector]=\"dockItem.injector\"\n />\n } @else {\n <div class=\"ax-popup-dock-tab\">\n <span axDragHandle class=\"ax-popup-dock-tab-title\" (click)=\"item.restore()\">\n {{ item.title() }}\n </span>\n <div class=\"ax-popup-dock-tab-actions\" (pointerdown)=\"$event.stopPropagation()\">\n <ax-chrome-button class=\"ax-sm\" title=\"Restore\" (click)=\"item.restore()\">\n <ax-popup-caption-icon name=\"restore\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Maximize\" (click)=\"item.maximize()\">\n <ax-popup-caption-icon name=\"maximize\" />\n </ax-chrome-button>\n <ax-chrome-button class=\"ax-sm\" title=\"Close\" (click)=\"item.close()\">\n <ax-popup-caption-icon name=\"close\" />\n </ax-chrome-button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: ["@layer properties;@layer components{.ax-popup-dock{pointer-events:auto;display:flex;max-width:100%;z-index:10000}.ax-popup-dock.ax-popup-dock-empty{display:none}.ax-popup-dock-list{display:flex;max-width:100%;align-items:stretch;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-horizontal .ax-popup-dock-list{flex-direction:row;overflow:auto}.ax-popup-dock-vertical .ax-popup-dock-list{flex-direction:column}.ax-popup-dock-tab{display:flex;max-width:calc(var(--spacing, .25rem) * 72);min-width:calc(var(--spacing, .25rem) * 40);align-items:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border-default);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 1);--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);background-color:rgba(var(--ax-comp-popup-header-bg-color));color:rgba(var(--ax-comp-popup-body-text-color))}.ax-popup-dock-tab-title{min-width:calc(var(--spacing, .25rem) * 0);flex:1;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none}.ax-popup-dock-tab-actions{display:flex;flex-shrink:0;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.ax-popup-dock-tab-actions .ax-popup-caption-icon{width:.875rem;height:.875rem}.ax-popup-dock-tab-actions ax-chrome-button{--ax-comp-text: rgba(var(--ax-comp-popup-body-text-color))}}.ax-popup-dock-tab-actions ax-chrome-button ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{min-width:1.625rem;min-height:1.625rem;padding:.25rem}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-font-weight: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1148
|
+
}], ctorParameters: () => [], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
1149
|
+
|
|
1150
|
+
class AXPopupFooterComponent {
|
|
1151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXPopupFooterComponent, isStandalone: true, selector: "ax-popup-footer", providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1153
|
+
}
|
|
1154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupFooterComponent, decorators: [{
|
|
1155
|
+
type: Component,
|
|
1156
|
+
args: [{ selector: 'ax-popup-footer', encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXPopupFooterComponent }], template: "<ng-content select=\"ax-prefix\"></ng-content>\n<ng-content select=\"ax-suffix\"></ng-content>\n<ng-content></ng-content>\n", styles: ["@layer components{ax-popup-footer{display:flex;width:100%;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2)}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1157
|
+
}] });
|
|
1158
|
+
|
|
710
1159
|
/**
|
|
711
1160
|
* Declarative popup host. Project content and call `open()` / `close()` on the component instance.
|
|
712
1161
|
*
|
|
@@ -777,14 +1226,14 @@ class AXPopupHostComponent extends NXComponent {
|
|
|
777
1226
|
async restore() {
|
|
778
1227
|
this.ref()?.restore();
|
|
779
1228
|
}
|
|
780
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
781
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.
|
|
1229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupHostComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1230
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.6", type: AXPopupHostComponent, isStandalone: true, selector: "ax-popup-host", providers: [{ provide: AXComponent, useExisting: AXPopupHostComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
782
1231
|
<ng-template #contentTemplate>
|
|
783
1232
|
<ng-content></ng-content>
|
|
784
1233
|
</ng-template>
|
|
785
1234
|
`, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
786
1235
|
}
|
|
787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupHostComponent, decorators: [{
|
|
788
1237
|
type: Component,
|
|
789
1238
|
args: [{
|
|
790
1239
|
selector: 'ax-popup-host',
|
|
@@ -798,14 +1247,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
798
1247
|
}]
|
|
799
1248
|
}], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
|
|
800
1249
|
|
|
801
|
-
const COMPONENT = [
|
|
802
|
-
|
|
1250
|
+
const COMPONENT = [
|
|
1251
|
+
AXPopupComponent,
|
|
1252
|
+
AXPopupHostComponent,
|
|
1253
|
+
AXPopupFooterComponent,
|
|
1254
|
+
AXPopupDockComponent,
|
|
1255
|
+
AXPopupCaptionIconComponent,
|
|
1256
|
+
];
|
|
1257
|
+
const MODULES = [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule];
|
|
803
1258
|
class AXPopupModule {
|
|
804
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.
|
|
805
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.
|
|
806
|
-
|
|
1259
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1260
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, imports: [CommonModule, AXCommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXPopupComponent,
|
|
1261
|
+
AXPopupHostComponent,
|
|
1262
|
+
AXPopupFooterComponent,
|
|
1263
|
+
AXPopupDockComponent,
|
|
1264
|
+
AXPopupCaptionIconComponent], exports: [AXPopupComponent,
|
|
1265
|
+
AXPopupHostComponent,
|
|
1266
|
+
AXPopupFooterComponent,
|
|
1267
|
+
AXPopupDockComponent,
|
|
1268
|
+
AXPopupCaptionIconComponent] }); }
|
|
1269
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, providers: [AXPopupService], imports: [MODULES, AXPopupComponent,
|
|
1270
|
+
AXPopupDockComponent] }); }
|
|
807
1271
|
}
|
|
808
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.
|
|
1272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXPopupModule, decorators: [{
|
|
809
1273
|
type: NgModule,
|
|
810
1274
|
args: [{
|
|
811
1275
|
imports: [...MODULES, ...COMPONENT],
|
|
@@ -818,5 +1282,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
818
1282
|
* Generated bundle index. Do not edit.
|
|
819
1283
|
*/
|
|
820
1284
|
|
|
821
|
-
export { AXPopupComponent, AXPopupComponentBase, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize };
|
|
1285
|
+
export { AXPopupCaptionIconComponent, AXPopupComponent, AXPopupComponentBase, AXPopupDockComponent, AXPopupFooterComponent, AXPopupHostComponent, AXPopupModule, AXPopupService, AX_POPUP_DEFAULT_RESIZE_HANDLES, resolvePopupCloseButton, resolvePopupMaximizable, resolvePopupMinimize, resolvePopupResizable };
|
|
822
1286
|
//# sourceMappingURL=acorex-components-popup.mjs.map
|