@flywheel-io/vision 21.1.3 → 21.2.0-beta.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flywheel-io/vision",
3
- "version": "21.1.3",
3
+ "version": "21.2.0-beta.0",
4
4
  "description": "Flywheel UI elements provided as Angular components and native web components",
5
5
  "author": "Flywheel",
6
6
  "license": "MIT",
@@ -18,6 +18,7 @@
18
18
  "dependencies": {
19
19
  "@date-fns/tz": "^1.4.1",
20
20
  "date-fns": "^2.28.0",
21
+ "json-logic-js": "^2.0.5",
21
22
  "libphonenumber-js": "^1.10.11",
22
23
  "tslib": "^2.4.1"
23
24
  },
@@ -1,4 +1,8 @@
1
+ @use '@angular/cdk' as cdk;
2
+
1
3
  @mixin overlay {
4
+ @include cdk.overlay;
5
+
2
6
  .vision-overlay {
3
7
  background-color: var(--separations-overlay);
4
8
  animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);
package/styles.css CHANGED
@@ -1805,6 +1805,124 @@ a:visited {
1805
1805
  font-style: normal;
1806
1806
  font-display: block;
1807
1807
  }
1808
+ .cdk-overlay-container, .cdk-global-overlay-wrapper {
1809
+ pointer-events: none;
1810
+ top: 0;
1811
+ left: 0;
1812
+ height: 100%;
1813
+ width: 100%;
1814
+ }
1815
+
1816
+ .cdk-overlay-container {
1817
+ position: fixed;
1818
+ z-index: 1000;
1819
+ }
1820
+ .cdk-overlay-container:empty {
1821
+ display: none;
1822
+ }
1823
+
1824
+ .cdk-global-overlay-wrapper {
1825
+ display: flex;
1826
+ position: absolute;
1827
+ z-index: 1000;
1828
+ }
1829
+
1830
+ .cdk-overlay-pane {
1831
+ position: absolute;
1832
+ pointer-events: auto;
1833
+ box-sizing: border-box;
1834
+ display: flex;
1835
+ max-width: 100%;
1836
+ max-height: 100%;
1837
+ z-index: 1000;
1838
+ }
1839
+
1840
+ .cdk-overlay-backdrop {
1841
+ position: absolute;
1842
+ top: 0;
1843
+ bottom: 0;
1844
+ left: 0;
1845
+ right: 0;
1846
+ pointer-events: auto;
1847
+ -webkit-tap-highlight-color: transparent;
1848
+ opacity: 0;
1849
+ touch-action: manipulation;
1850
+ z-index: 1000;
1851
+ transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
1852
+ }
1853
+ @media (prefers-reduced-motion) {
1854
+ .cdk-overlay-backdrop {
1855
+ transition-duration: 1ms;
1856
+ }
1857
+ }
1858
+
1859
+ .cdk-overlay-backdrop-showing {
1860
+ opacity: 1;
1861
+ }
1862
+ @media (forced-colors: active) {
1863
+ .cdk-overlay-backdrop-showing {
1864
+ opacity: 0.6;
1865
+ }
1866
+ }
1867
+
1868
+ .cdk-overlay-dark-backdrop {
1869
+ background: rgba(0, 0, 0, 0.32);
1870
+ }
1871
+
1872
+ .cdk-overlay-transparent-backdrop {
1873
+ transition: visibility 1ms linear, opacity 1ms linear;
1874
+ visibility: hidden;
1875
+ opacity: 1;
1876
+ }
1877
+ .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing, .cdk-high-contrast-active .cdk-overlay-transparent-backdrop {
1878
+ opacity: 0;
1879
+ visibility: visible;
1880
+ }
1881
+
1882
+ .cdk-overlay-backdrop-noop-animation {
1883
+ transition: none;
1884
+ }
1885
+
1886
+ .cdk-overlay-connected-position-bounding-box {
1887
+ position: absolute;
1888
+ display: flex;
1889
+ flex-direction: column;
1890
+ min-width: 1px;
1891
+ min-height: 1px;
1892
+ z-index: 1000;
1893
+ }
1894
+
1895
+ .cdk-global-scrollblock {
1896
+ position: fixed;
1897
+ width: 100%;
1898
+ overflow-y: scroll;
1899
+ }
1900
+
1901
+ .cdk-overlay-popover {
1902
+ background: none;
1903
+ border: none;
1904
+ padding: 0;
1905
+ outline: 0;
1906
+ overflow: visible;
1907
+ position: fixed;
1908
+ pointer-events: none;
1909
+ white-space: normal;
1910
+ color: inherit;
1911
+ text-decoration: none;
1912
+ width: 100%;
1913
+ height: 100%;
1914
+ inset: auto;
1915
+ top: 0;
1916
+ left: 0;
1917
+ }
1918
+ .cdk-overlay-popover::backdrop {
1919
+ display: none;
1920
+ }
1921
+ .cdk-overlay-popover .cdk-overlay-backdrop {
1922
+ position: fixed;
1923
+ z-index: auto;
1924
+ }
1925
+
1808
1926
  .vision-overlay {
1809
1927
  background-color: var(--separations-overlay);
1810
1928
  animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);
@@ -4,11 +4,12 @@ import * as i1 from '@angular/common';
4
4
  import { Location } from '@angular/common';
5
5
  import { SafeStyle } from '@angular/platform-browser';
6
6
  import * as i2 from '@angular/forms';
7
- import { ControlValueAccessor, FormControl, ValidatorFn, AbstractControl, NgControl } from '@angular/forms';
7
+ import { ControlValueAccessor, FormControl, FormControlStatus, FormGroup, ValidatorFn, AbstractControl, NgControl } from '@angular/forms';
8
8
  import * as i2$1 from '@angular/cdk/dialog';
9
- import { DialogRef, Dialog, DialogConfig } from '@angular/cdk/dialog';
9
+ import { DialogRef, DialogConfig, Dialog } from '@angular/cdk/dialog';
10
10
  import * as i3 from '@angular/cdk/overlay';
11
11
  import { OverlayContainer, ComponentType, CdkOverlayOrigin, ConnectedPosition, OverlayConfig, FlexibleConnectedPositionStrategyOrigin, ConnectedOverlayPositionChange } from '@angular/cdk/overlay';
12
+ import { RulesLogic } from 'json-logic-js';
12
13
  import * as i1$1 from '@angular/cdk/menu';
13
14
  import { CdkMenuTrigger } from '@angular/cdk/menu';
14
15
  import * as i4 from '@angular/cdk/table';
@@ -820,6 +821,45 @@ declare class FwDateInputModule {
820
821
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwDateInputModule>;
821
822
  }
822
823
 
824
+ /**
825
+ * Pre-built confirmation dialog with configurable title, icon, content text, and confirm/cancel buttons
826
+ * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-dialog--docs)
827
+ */
828
+ declare class FwDialogConfirmComponent {
829
+ dialogRef: DialogRef<any, any>;
830
+ private elementRef;
831
+ readonly title: _angular_core.InputSignal<string>;
832
+ readonly icon: _angular_core.InputSignal<"filter" | "server" | "3d-sphere-rotate-arrows" | "add-circle" | "add-new-create" | "add-row-above" | "add-row-below" | "add-server" | "add-server-databases-endpoint" | "add-user" | "ai" | "apple" | "apply-copy-duplicate" | "archive-documents-box-big" | "arrange-filter-sort" | "arrow" | "arrow-3d-rotate" | "arrow-annotate" | "arrow-back" | "arrow-back-collapse" | "arrow-down" | "arrow-forward" | "arrow-forward-collapse" | "arrow-redo" | "arrow-rotate" | "arrow-rotate-restore" | "arrow-undo" | "arrow-up" | "arrow-up-high-priority" | "arrow-up-low-priority" | "barcode-serial" | "barcode-stack-scan" | "bell-notification" | "bezier-curve" | "blocks-code-test-checkmark" | "book-lab-flask" | "bookmark" | "bookmark-plus-add" | "brain" | "brightness-photo-edit" | "browser-internet-web-windows" | "brush-edit-create" | "bucket-paint" | "button-form-element" | "calendar-arrow-left-center" | "calendar-schedule" | "camera-photo-capture" | "cash-banknotes" | "certificate" | "chart-square" | "chart-trend-square" | "chat-messages-bubble" | "check-mark-certificate" | "checklist" | "checklist-tasks-chechmark-square" | "chevron-back" | "chevron-down" | "chevron-forward" | "chevron-input-number" | "chevron-up" | "circle" | "circle-ellipses" | "clap-applause-hands" | "clip-attachment" | "clock-history" | "clock-hour-4" | "clock-loading" | "close" | "close-circled" | "closed-freehand-vector-poly" | "cloud-network-add" | "cloud-storage-checkmark" | "cloud-upload" | "code-block-embed" | "code-text" | "color-design-profile" | "color-ven-design-profile-central" | "column-edit" | "computer-chip" | "contract-vertical" | "contrast-photo-edit" | "conversion-exchange" | "copy-item" | "creative-commons" | "crosshair" | "crown-style-circle" | "cursor-click" | "cursor-select" | "curve-object-secet-cursor" | "data-tree" | "delivery-shipment-packages" | "dna-hospital-medical" | "document-file-add-plus-bottom-left" | "document-file-blank" | "document-file-checkmark-bottom-left" | "document-file-deleted-cross-remove-center-cancel" | "document-file-download" | "document-file-list-protocol" | "document-file-tar" | "document-file-upload-bottom-center" | "document-file-zip" | "document-status-done-checkmark" | "document-visible" | "documents-file" | "documents-file-checkmark" | "documents-file-move-arrow-right" | "documents-files" | "done-check" | "done-check-tracked" | "download" | "download-status" | "drag-drop-indicator" | "draw-rectangle" | "earth-globe-fail" | "edit" | "edit-boxed" | "edit-erase" | "email" | "email-mail-checkmark-group" | "embed-circle" | "exchange" | "expand-pathfinder-dot-square-segmentation" | "eye-modern-square-read" | "facebook" | "file-blank-image-load-mask" | "file-blank-search" | "file-download" | "file-text" | "files" | "files-library" | "files-library-content" | "filter-sort-add" | "filter-sort-check-mark" | "filter-sort-delete" | "flag" | "flip-horizontal" | "flip-vertical" | "floppy-save" | "flywheel-mark-logo" | "flywheel-viewer-mark-logo" | "folder-add" | "folder-blank" | "folder-checked" | "folder-copy-expand-arrow-down" | "folder-copy-expand-arrow-up" | "folder-group" | "folder-move" | "folder-open" | "folder-share" | "form-metadata-element" | "free-rights" | "freehand-vector-poly" | "full-screen-zoom" | "git-add-branch" | "git-branch" | "git-merge" | "git-merge-draft" | "git-pull-request-2" | "github-color-login" | "gitlab" | "graduate-hat" | "grid-dot-square" | "grid-layout" | "grid-layout-9-square" | "hammer-legal-square" | "hammer-screwdriver" | "hand-money-currency" | "header-form-element" | "home-modern-door" | "home-modern-option-lines" | "human-artificial-intelligence" | "icon-placeholder" | "image-photo-copy-left-down" | "image-picture-square" | "information-circle" | "invoice" | "invoice-checkmark-paid" | "italic" | "items-group-elements" | "key" | "keyboard" | "keychain" | "label-tag" | "laptop-health-medical-cross" | "layers" | "layout" | "layout-grid" | "line" | "link" | "link-unlink" | "linkedin" | "linux" | "list-paragraph" | "list-paragraph-number" | "list-test-lab-flask" | "livewire-tool" | "loading-status-checkmark" | "lock" | "lock-unlock" | "logout" | "lungs" | "maps-protection-target" | "markdown" | "measure-angle" | "measure-ruler-calibration" | "media-library-imports-dowload" | "menu-burger-handle" | "menu-horizontal" | "menu-list-form-square" | "menu-vertical" | "message-chat-add-plus" | "message-chat-info" | "message-chat-question-support" | "message-checkmark-sent" | "message-question-checkmark" | "microphone-mic-rec" | "microphone-mic-rec-circle" | "microphone-mic-recording-circle" | "minus" | "modalities" | "molecule" | "money" | "money-coin" | "money-dollar" | "monitor-computer" | "moon-night-mode" | "mouse-big" | "mouse-scroll" | "move" | "music-play-resume" | "music-stop" | "mute" | "network-storage-alert" | "notebook" | "notebook-add-plus" | "notebook-open" | "notebook-pen-edit" | "notes-pen" | "object-search-zoom-plus" | "open" | "orientation-3d-axial-acquisition" | "orientation-3d-coronal" | "orientation-3d-reformat" | "orientation-3d-sagittal" | "paint-roller" | "pause" | "pen-edit-circle" | "pen-edit-compose-new" | "pencil-edit-create" | "photo-edit-brightness-invert" | "pie-chart" | "pie-graph-chart-sample" | "plus-add-rectangle" | "polygon" | "private-mode-protection-circle" | "protection-target" | "protective-mask" | "question-circle" | "quote" | "radiology-scan" | "radiology-scan-circle" | "reader-studies" | "rotate" | "rotate-arrow-manual" | "rotate-item-left" | "rotate-item-right" | "rotate-refresh" | "ruler" | "ruler-bidirectional" | "scanner" | "search" | "search-loop" | "search-user-profile-person" | "search-zoom-minus" | "search-zoom-plus" | "section-form-element" | "send-message-share" | "server-checkmark" | "server-database-endpoint" | "server-databases-checkmark-user" | "server-databases-connect" | "server-databases-download" | "server-databases-key-protection" | "server-databases-minimal-download" | "server-databases-sync" | "server-databases-sync-import" | "server-upload" | "servers-database" | "setting-gear" | "settings-adjust" | "settings-gear" | "settings-gear-square" | "settings-select" | "shapes-objects" | "share" | "shield-protect" | "show-visible" | "smiley-emoji-face" | "speed-dashboard" | "square-fill" | "square-fill-outline" | "square-outline" | "star" | "star-ai-artificial-intelligence" | "stars-light-sparkle" | "stomach" | "stop-minus" | "stretch-vertical" | "substract-group" | "switch" | "target" | "target-space-object-select" | "task-list-add-checkmark" | "tasklist-to-do-checkmark" | "technology-cube-3d" | "test-lab-flask" | "text-bold" | "text-cross" | "text-h1" | "text-h2" | "text-input-form" | "text-long" | "text-short-form-element" | "text-underline" | "thumbs-down-dislike" | "thumbs-up-like" | "timer-clock-style" | "trash-bin-warning" | "trash-delete" | "twitter" | "undone-uncheck-untracked" | "unlimited-repeat-subscription-circle" | "upload" | "user" | "user-checked" | "user-delete-cross" | "user-document" | "user-group" | "user-key" | "user-lock" | "user-profile-cards-pool" | "user-profile-group-discovery" | "user-setting-gear" | "video-player-controls" | "visible-eye-hidden" | "volume-full" | "warning" | "warning-circle" | "window-finder-resize-arrow-down" | "window-finder-resize-arrow-up" | "window-resize-left" | "window-resize-right" | "window-zoom-plus-loupe" | "windows" | "workspace-mode" | "youtube" | "zendesk-logo">;
833
+ readonly iconColor: _angular_core.InputSignal<"primary" | "secondary" | "red" | "orange" | "green" | "slate">;
834
+ readonly confirmColor: _angular_core.InputSignal<"primary" | "secondary" | "slate" | "warning" | "success" | "danger">;
835
+ readonly cancelColor: _angular_core.InputSignal<"primary" | "secondary" | "slate" | "warning" | "success" | "danger">;
836
+ readonly confirmButtonText: _angular_core.InputSignal<string>;
837
+ readonly confirmButtonIcon: _angular_core.InputSignal<"filter" | "server" | "3d-sphere-rotate-arrows" | "add-circle" | "add-new-create" | "add-row-above" | "add-row-below" | "add-server" | "add-server-databases-endpoint" | "add-user" | "ai" | "apple" | "apply-copy-duplicate" | "archive-documents-box-big" | "arrange-filter-sort" | "arrow" | "arrow-3d-rotate" | "arrow-annotate" | "arrow-back" | "arrow-back-collapse" | "arrow-down" | "arrow-forward" | "arrow-forward-collapse" | "arrow-redo" | "arrow-rotate" | "arrow-rotate-restore" | "arrow-undo" | "arrow-up" | "arrow-up-high-priority" | "arrow-up-low-priority" | "barcode-serial" | "barcode-stack-scan" | "bell-notification" | "bezier-curve" | "blocks-code-test-checkmark" | "book-lab-flask" | "bookmark" | "bookmark-plus-add" | "brain" | "brightness-photo-edit" | "browser-internet-web-windows" | "brush-edit-create" | "bucket-paint" | "button-form-element" | "calendar-arrow-left-center" | "calendar-schedule" | "camera-photo-capture" | "cash-banknotes" | "certificate" | "chart-square" | "chart-trend-square" | "chat-messages-bubble" | "check-mark-certificate" | "checklist" | "checklist-tasks-chechmark-square" | "chevron-back" | "chevron-down" | "chevron-forward" | "chevron-input-number" | "chevron-up" | "circle" | "circle-ellipses" | "clap-applause-hands" | "clip-attachment" | "clock-history" | "clock-hour-4" | "clock-loading" | "close" | "close-circled" | "closed-freehand-vector-poly" | "cloud-network-add" | "cloud-storage-checkmark" | "cloud-upload" | "code-block-embed" | "code-text" | "color-design-profile" | "color-ven-design-profile-central" | "column-edit" | "computer-chip" | "contract-vertical" | "contrast-photo-edit" | "conversion-exchange" | "copy-item" | "creative-commons" | "crosshair" | "crown-style-circle" | "cursor-click" | "cursor-select" | "curve-object-secet-cursor" | "data-tree" | "delivery-shipment-packages" | "dna-hospital-medical" | "document-file-add-plus-bottom-left" | "document-file-blank" | "document-file-checkmark-bottom-left" | "document-file-deleted-cross-remove-center-cancel" | "document-file-download" | "document-file-list-protocol" | "document-file-tar" | "document-file-upload-bottom-center" | "document-file-zip" | "document-status-done-checkmark" | "document-visible" | "documents-file" | "documents-file-checkmark" | "documents-file-move-arrow-right" | "documents-files" | "done-check" | "done-check-tracked" | "download" | "download-status" | "drag-drop-indicator" | "draw-rectangle" | "earth-globe-fail" | "edit" | "edit-boxed" | "edit-erase" | "email" | "email-mail-checkmark-group" | "embed-circle" | "exchange" | "expand-pathfinder-dot-square-segmentation" | "eye-modern-square-read" | "facebook" | "file-blank-image-load-mask" | "file-blank-search" | "file-download" | "file-text" | "files" | "files-library" | "files-library-content" | "filter-sort-add" | "filter-sort-check-mark" | "filter-sort-delete" | "flag" | "flip-horizontal" | "flip-vertical" | "floppy-save" | "flywheel-mark-logo" | "flywheel-viewer-mark-logo" | "folder-add" | "folder-blank" | "folder-checked" | "folder-copy-expand-arrow-down" | "folder-copy-expand-arrow-up" | "folder-group" | "folder-move" | "folder-open" | "folder-share" | "form-metadata-element" | "free-rights" | "freehand-vector-poly" | "full-screen-zoom" | "git-add-branch" | "git-branch" | "git-merge" | "git-merge-draft" | "git-pull-request-2" | "github-color-login" | "gitlab" | "graduate-hat" | "grid-dot-square" | "grid-layout" | "grid-layout-9-square" | "hammer-legal-square" | "hammer-screwdriver" | "hand-money-currency" | "header-form-element" | "home-modern-door" | "home-modern-option-lines" | "human-artificial-intelligence" | "icon-placeholder" | "image-photo-copy-left-down" | "image-picture-square" | "information-circle" | "invoice" | "invoice-checkmark-paid" | "italic" | "items-group-elements" | "key" | "keyboard" | "keychain" | "label-tag" | "laptop-health-medical-cross" | "layers" | "layout" | "layout-grid" | "line" | "link" | "link-unlink" | "linkedin" | "linux" | "list-paragraph" | "list-paragraph-number" | "list-test-lab-flask" | "livewire-tool" | "loading-status-checkmark" | "lock" | "lock-unlock" | "logout" | "lungs" | "maps-protection-target" | "markdown" | "measure-angle" | "measure-ruler-calibration" | "media-library-imports-dowload" | "menu-burger-handle" | "menu-horizontal" | "menu-list-form-square" | "menu-vertical" | "message-chat-add-plus" | "message-chat-info" | "message-chat-question-support" | "message-checkmark-sent" | "message-question-checkmark" | "microphone-mic-rec" | "microphone-mic-rec-circle" | "microphone-mic-recording-circle" | "minus" | "modalities" | "molecule" | "money" | "money-coin" | "money-dollar" | "monitor-computer" | "moon-night-mode" | "mouse-big" | "mouse-scroll" | "move" | "music-play-resume" | "music-stop" | "mute" | "network-storage-alert" | "notebook" | "notebook-add-plus" | "notebook-open" | "notebook-pen-edit" | "notes-pen" | "object-search-zoom-plus" | "open" | "orientation-3d-axial-acquisition" | "orientation-3d-coronal" | "orientation-3d-reformat" | "orientation-3d-sagittal" | "paint-roller" | "pause" | "pen-edit-circle" | "pen-edit-compose-new" | "pencil-edit-create" | "photo-edit-brightness-invert" | "pie-chart" | "pie-graph-chart-sample" | "plus-add-rectangle" | "polygon" | "private-mode-protection-circle" | "protection-target" | "protective-mask" | "question-circle" | "quote" | "radiology-scan" | "radiology-scan-circle" | "reader-studies" | "rotate" | "rotate-arrow-manual" | "rotate-item-left" | "rotate-item-right" | "rotate-refresh" | "ruler" | "ruler-bidirectional" | "scanner" | "search" | "search-loop" | "search-user-profile-person" | "search-zoom-minus" | "search-zoom-plus" | "section-form-element" | "send-message-share" | "server-checkmark" | "server-database-endpoint" | "server-databases-checkmark-user" | "server-databases-connect" | "server-databases-download" | "server-databases-key-protection" | "server-databases-minimal-download" | "server-databases-sync" | "server-databases-sync-import" | "server-upload" | "servers-database" | "setting-gear" | "settings-adjust" | "settings-gear" | "settings-gear-square" | "settings-select" | "shapes-objects" | "share" | "shield-protect" | "show-visible" | "smiley-emoji-face" | "speed-dashboard" | "square-fill" | "square-fill-outline" | "square-outline" | "star" | "star-ai-artificial-intelligence" | "stars-light-sparkle" | "stomach" | "stop-minus" | "stretch-vertical" | "substract-group" | "switch" | "target" | "target-space-object-select" | "task-list-add-checkmark" | "tasklist-to-do-checkmark" | "technology-cube-3d" | "test-lab-flask" | "text-bold" | "text-cross" | "text-h1" | "text-h2" | "text-input-form" | "text-long" | "text-short-form-element" | "text-underline" | "thumbs-down-dislike" | "thumbs-up-like" | "timer-clock-style" | "trash-bin-warning" | "trash-delete" | "twitter" | "undone-uncheck-untracked" | "unlimited-repeat-subscription-circle" | "upload" | "user" | "user-checked" | "user-delete-cross" | "user-document" | "user-group" | "user-key" | "user-lock" | "user-profile-cards-pool" | "user-profile-group-discovery" | "user-setting-gear" | "video-player-controls" | "visible-eye-hidden" | "volume-full" | "warning" | "warning-circle" | "window-finder-resize-arrow-down" | "window-finder-resize-arrow-up" | "window-resize-left" | "window-resize-right" | "window-zoom-plus-loupe" | "windows" | "workspace-mode" | "youtube" | "zendesk-logo">;
838
+ readonly cancelButtonText: _angular_core.InputSignal<string>;
839
+ readonly contentIcon: _angular_core.InputSignal<string>;
840
+ readonly contentTitle: _angular_core.InputSignal<string>;
841
+ readonly contentText: _angular_core.InputSignal<string>;
842
+ readonly contentTextAlignment: _angular_core.InputSignal<"start" | "end" | "center">;
843
+ readonly showConfirmButtonIcon: _angular_core.InputSignal<boolean>;
844
+ readonly showClose: _angular_core.InputSignal<boolean>;
845
+ readonly width: _angular_core.InputSignal<"large" | "medium" | "small" | "extra-small" | "extra-large" | "responsive">;
846
+ readonly externalClasses: _angular_core.InputSignal<string | string[] | {
847
+ [key: string]: boolean;
848
+ }>;
849
+ close: EventEmitter<void>;
850
+ confirm: EventEmitter<void>;
851
+ private isClosing;
852
+ get classes(): {
853
+ [key: string]: boolean;
854
+ };
855
+ get dialogClasses(): string;
856
+ handleCloseButton(): void;
857
+ protected handleConfirm(): void;
858
+ private closeWithAnimation;
859
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwDialogConfirmComponent, never>;
860
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwDialogConfirmComponent, "fw-dialog-confirm", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "confirmColor": { "alias": "confirmColor"; "required": false; "isSignal": true; }; "cancelColor": { "alias": "cancelColor"; "required": false; "isSignal": true; }; "confirmButtonText": { "alias": "confirmButtonText"; "required": false; "isSignal": true; }; "confirmButtonIcon": { "alias": "confirmButtonIcon"; "required": false; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; "isSignal": true; }; "contentIcon": { "alias": "contentIcon"; "required": false; "isSignal": true; }; "contentTitle": { "alias": "contentTitle"; "required": false; "isSignal": true; }; "contentText": { "alias": "contentText"; "required": false; "isSignal": true; }; "contentTextAlignment": { "alias": "contentTextAlignment"; "required": false; "isSignal": true; }; "showConfirmButtonIcon": { "alias": "showConfirmButtonIcon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "externalClasses": { "alias": "class"; "required": false; "isSignal": true; }; }, { "close": "close"; "confirm": "confirm"; }, never, never, true, never>;
861
+ }
862
+
823
863
  declare enum DialogWidth {
824
864
  ExtraSmall = "extra-small",
825
865
  Small = "small",
@@ -861,6 +901,21 @@ declare class FwDialogComponent implements OnInit, OnDestroy {
861
901
 
862
902
  interface FwDialogRef<R = unknown, C = unknown> extends DialogRef<R, C> {
863
903
  }
904
+ /**
905
+ * Dialog configuration interface for the FwDialogService. Extends the Angular CDK DialogConfig with additional properties.
906
+ * @template D - The type of data passed to the dialog component.
907
+ * @template R - The type of the result returned from the dialog component.
908
+ */
909
+ interface FwDialogConfig<D = unknown, R = unknown> extends DialogConfig<D, R> {
910
+ canCloseCheck?: () => boolean;
911
+ responsive?: boolean;
912
+ topOffset?: string;
913
+ }
914
+ /**
915
+ * Wrapper class for the Angular CDK Dialog Service. Manages the opening and closing of dialogs.
916
+ * @see [Vision Storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-dialogs--docs)
917
+ * @see [Angular CDK Dialog Docs](https://material.angular.dev/cdk/dialog/api#services)
918
+ */
864
919
  declare class FwDialogService extends Dialog {
865
920
  private overlay;
866
921
  _overlayContainerRef: OverlayContainer;
@@ -869,12 +924,10 @@ declare class FwDialogService extends Dialog {
869
924
  /**
870
925
  * Open a custom component in an overlay and positioned near the top
871
926
  */
872
- openDialog<T>(component: ComponentType<T>, config?: DialogConfig & {
873
- canCloseCheck?: () => boolean;
874
- responsive?: boolean;
875
- }, topOffset?: string): FwDialogRef<unknown, any>;
876
- openModalDialog<T>(component: ComponentType<T>, config?: DialogConfig, topOffset?: string): FwDialogRef<unknown, any>;
877
- closeWithAnimation(dialogRef: FwDialogRef<any>): void;
927
+ openDialog<C, D = any, R = unknown>(component: ComponentType<C>, config?: FwDialogConfig<D, DialogRef<R, C>>, topOffset?: string): FwDialogRef<R, C>;
928
+ openModalDialog<C, D = any, R = unknown>(component: ComponentType<C>, config?: FwDialogConfig<D, DialogRef<R, C>>, topOffset?: string): FwDialogRef<R, C>;
929
+ closeWithAnimation(dialogRef: FwDialogRef<any, any>): void;
930
+ private parseFwDialogConfig;
878
931
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwDialogService, never>;
879
932
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FwDialogService>;
880
933
  }
@@ -890,45 +943,6 @@ declare class FwDialogActionsComponent {
890
943
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwDialogActionsComponent, "fw-dialog-actions", never, {}, {}, never, ["*"], true, never>;
891
944
  }
892
945
 
893
- /**
894
- * Pre-built confirmation dialog with configurable title, icon, content text, and confirm/cancel buttons
895
- * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-dialog--docs)
896
- */
897
- declare class FwDialogConfirmComponent {
898
- dialogRef: DialogRef<any, any>;
899
- private elementRef;
900
- readonly title: _angular_core.InputSignal<string>;
901
- readonly icon: _angular_core.InputSignal<"filter" | "server" | "3d-sphere-rotate-arrows" | "add-circle" | "add-new-create" | "add-row-above" | "add-row-below" | "add-server" | "add-server-databases-endpoint" | "add-user" | "ai" | "apple" | "apply-copy-duplicate" | "archive-documents-box-big" | "arrange-filter-sort" | "arrow" | "arrow-3d-rotate" | "arrow-annotate" | "arrow-back" | "arrow-back-collapse" | "arrow-down" | "arrow-forward" | "arrow-forward-collapse" | "arrow-redo" | "arrow-rotate" | "arrow-rotate-restore" | "arrow-undo" | "arrow-up" | "arrow-up-high-priority" | "arrow-up-low-priority" | "barcode-serial" | "barcode-stack-scan" | "bell-notification" | "bezier-curve" | "blocks-code-test-checkmark" | "book-lab-flask" | "bookmark" | "bookmark-plus-add" | "brain" | "brightness-photo-edit" | "browser-internet-web-windows" | "brush-edit-create" | "bucket-paint" | "button-form-element" | "calendar-arrow-left-center" | "calendar-schedule" | "camera-photo-capture" | "cash-banknotes" | "certificate" | "chart-square" | "chart-trend-square" | "chat-messages-bubble" | "check-mark-certificate" | "checklist" | "checklist-tasks-chechmark-square" | "chevron-back" | "chevron-down" | "chevron-forward" | "chevron-input-number" | "chevron-up" | "circle" | "circle-ellipses" | "clap-applause-hands" | "clip-attachment" | "clock-history" | "clock-hour-4" | "clock-loading" | "close" | "close-circled" | "closed-freehand-vector-poly" | "cloud-network-add" | "cloud-storage-checkmark" | "cloud-upload" | "code-block-embed" | "code-text" | "color-design-profile" | "color-ven-design-profile-central" | "column-edit" | "computer-chip" | "contract-vertical" | "contrast-photo-edit" | "conversion-exchange" | "copy-item" | "creative-commons" | "crosshair" | "crown-style-circle" | "cursor-click" | "cursor-select" | "curve-object-secet-cursor" | "data-tree" | "delivery-shipment-packages" | "dna-hospital-medical" | "document-file-add-plus-bottom-left" | "document-file-blank" | "document-file-checkmark-bottom-left" | "document-file-deleted-cross-remove-center-cancel" | "document-file-download" | "document-file-list-protocol" | "document-file-tar" | "document-file-upload-bottom-center" | "document-file-zip" | "document-status-done-checkmark" | "document-visible" | "documents-file" | "documents-file-checkmark" | "documents-file-move-arrow-right" | "documents-files" | "done-check" | "done-check-tracked" | "download" | "download-status" | "drag-drop-indicator" | "draw-rectangle" | "earth-globe-fail" | "edit" | "edit-boxed" | "edit-erase" | "email" | "email-mail-checkmark-group" | "embed-circle" | "exchange" | "expand-pathfinder-dot-square-segmentation" | "eye-modern-square-read" | "facebook" | "file-blank-image-load-mask" | "file-blank-search" | "file-download" | "file-text" | "files" | "files-library" | "files-library-content" | "filter-sort-add" | "filter-sort-check-mark" | "filter-sort-delete" | "flag" | "flip-horizontal" | "flip-vertical" | "floppy-save" | "flywheel-mark-logo" | "flywheel-viewer-mark-logo" | "folder-add" | "folder-blank" | "folder-checked" | "folder-copy-expand-arrow-down" | "folder-copy-expand-arrow-up" | "folder-group" | "folder-move" | "folder-open" | "folder-share" | "form-metadata-element" | "free-rights" | "freehand-vector-poly" | "full-screen-zoom" | "git-add-branch" | "git-branch" | "git-merge" | "git-merge-draft" | "git-pull-request-2" | "github-color-login" | "gitlab" | "graduate-hat" | "grid-dot-square" | "grid-layout" | "grid-layout-9-square" | "hammer-legal-square" | "hammer-screwdriver" | "hand-money-currency" | "header-form-element" | "home-modern-door" | "home-modern-option-lines" | "human-artificial-intelligence" | "icon-placeholder" | "image-photo-copy-left-down" | "image-picture-square" | "information-circle" | "invoice" | "invoice-checkmark-paid" | "italic" | "items-group-elements" | "key" | "keyboard" | "keychain" | "label-tag" | "laptop-health-medical-cross" | "layers" | "layout" | "layout-grid" | "line" | "link" | "link-unlink" | "linkedin" | "linux" | "list-paragraph" | "list-paragraph-number" | "list-test-lab-flask" | "livewire-tool" | "loading-status-checkmark" | "lock" | "lock-unlock" | "logout" | "lungs" | "maps-protection-target" | "markdown" | "measure-angle" | "measure-ruler-calibration" | "media-library-imports-dowload" | "menu-burger-handle" | "menu-horizontal" | "menu-list-form-square" | "menu-vertical" | "message-chat-add-plus" | "message-chat-info" | "message-chat-question-support" | "message-checkmark-sent" | "message-question-checkmark" | "microphone-mic-rec" | "microphone-mic-rec-circle" | "microphone-mic-recording-circle" | "minus" | "modalities" | "molecule" | "money" | "money-coin" | "money-dollar" | "monitor-computer" | "moon-night-mode" | "mouse-big" | "mouse-scroll" | "move" | "music-play-resume" | "music-stop" | "mute" | "network-storage-alert" | "notebook" | "notebook-add-plus" | "notebook-open" | "notebook-pen-edit" | "notes-pen" | "object-search-zoom-plus" | "open" | "orientation-3d-axial-acquisition" | "orientation-3d-coronal" | "orientation-3d-reformat" | "orientation-3d-sagittal" | "paint-roller" | "pause" | "pen-edit-circle" | "pen-edit-compose-new" | "pencil-edit-create" | "photo-edit-brightness-invert" | "pie-chart" | "pie-graph-chart-sample" | "plus-add-rectangle" | "polygon" | "private-mode-protection-circle" | "protection-target" | "protective-mask" | "question-circle" | "quote" | "radiology-scan" | "radiology-scan-circle" | "reader-studies" | "rotate" | "rotate-arrow-manual" | "rotate-item-left" | "rotate-item-right" | "rotate-refresh" | "ruler" | "ruler-bidirectional" | "scanner" | "search" | "search-loop" | "search-user-profile-person" | "search-zoom-minus" | "search-zoom-plus" | "section-form-element" | "send-message-share" | "server-checkmark" | "server-database-endpoint" | "server-databases-checkmark-user" | "server-databases-connect" | "server-databases-download" | "server-databases-key-protection" | "server-databases-minimal-download" | "server-databases-sync" | "server-databases-sync-import" | "server-upload" | "servers-database" | "setting-gear" | "settings-adjust" | "settings-gear" | "settings-gear-square" | "settings-select" | "shapes-objects" | "share" | "shield-protect" | "show-visible" | "smiley-emoji-face" | "speed-dashboard" | "square-fill" | "square-fill-outline" | "square-outline" | "star" | "star-ai-artificial-intelligence" | "stars-light-sparkle" | "stomach" | "stop-minus" | "stretch-vertical" | "substract-group" | "switch" | "target" | "target-space-object-select" | "task-list-add-checkmark" | "tasklist-to-do-checkmark" | "technology-cube-3d" | "test-lab-flask" | "text-bold" | "text-cross" | "text-h1" | "text-h2" | "text-input-form" | "text-long" | "text-short-form-element" | "text-underline" | "thumbs-down-dislike" | "thumbs-up-like" | "timer-clock-style" | "trash-bin-warning" | "trash-delete" | "twitter" | "undone-uncheck-untracked" | "unlimited-repeat-subscription-circle" | "upload" | "user" | "user-checked" | "user-delete-cross" | "user-document" | "user-group" | "user-key" | "user-lock" | "user-profile-cards-pool" | "user-profile-group-discovery" | "user-setting-gear" | "video-player-controls" | "visible-eye-hidden" | "volume-full" | "warning" | "warning-circle" | "window-finder-resize-arrow-down" | "window-finder-resize-arrow-up" | "window-resize-left" | "window-resize-right" | "window-zoom-plus-loupe" | "windows" | "workspace-mode" | "youtube" | "zendesk-logo">;
902
- readonly iconColor: _angular_core.InputSignal<"primary" | "secondary" | "red" | "orange" | "green" | "slate">;
903
- readonly confirmColor: _angular_core.InputSignal<"primary" | "secondary" | "slate" | "warning" | "success" | "danger">;
904
- readonly cancelColor: _angular_core.InputSignal<"primary" | "secondary" | "slate" | "warning" | "success" | "danger">;
905
- readonly confirmButtonText: _angular_core.InputSignal<string>;
906
- readonly confirmButtonIcon: _angular_core.InputSignal<"filter" | "server" | "3d-sphere-rotate-arrows" | "add-circle" | "add-new-create" | "add-row-above" | "add-row-below" | "add-server" | "add-server-databases-endpoint" | "add-user" | "ai" | "apple" | "apply-copy-duplicate" | "archive-documents-box-big" | "arrange-filter-sort" | "arrow" | "arrow-3d-rotate" | "arrow-annotate" | "arrow-back" | "arrow-back-collapse" | "arrow-down" | "arrow-forward" | "arrow-forward-collapse" | "arrow-redo" | "arrow-rotate" | "arrow-rotate-restore" | "arrow-undo" | "arrow-up" | "arrow-up-high-priority" | "arrow-up-low-priority" | "barcode-serial" | "barcode-stack-scan" | "bell-notification" | "bezier-curve" | "blocks-code-test-checkmark" | "book-lab-flask" | "bookmark" | "bookmark-plus-add" | "brain" | "brightness-photo-edit" | "browser-internet-web-windows" | "brush-edit-create" | "bucket-paint" | "button-form-element" | "calendar-arrow-left-center" | "calendar-schedule" | "camera-photo-capture" | "cash-banknotes" | "certificate" | "chart-square" | "chart-trend-square" | "chat-messages-bubble" | "check-mark-certificate" | "checklist" | "checklist-tasks-chechmark-square" | "chevron-back" | "chevron-down" | "chevron-forward" | "chevron-input-number" | "chevron-up" | "circle" | "circle-ellipses" | "clap-applause-hands" | "clip-attachment" | "clock-history" | "clock-hour-4" | "clock-loading" | "close" | "close-circled" | "closed-freehand-vector-poly" | "cloud-network-add" | "cloud-storage-checkmark" | "cloud-upload" | "code-block-embed" | "code-text" | "color-design-profile" | "color-ven-design-profile-central" | "column-edit" | "computer-chip" | "contract-vertical" | "contrast-photo-edit" | "conversion-exchange" | "copy-item" | "creative-commons" | "crosshair" | "crown-style-circle" | "cursor-click" | "cursor-select" | "curve-object-secet-cursor" | "data-tree" | "delivery-shipment-packages" | "dna-hospital-medical" | "document-file-add-plus-bottom-left" | "document-file-blank" | "document-file-checkmark-bottom-left" | "document-file-deleted-cross-remove-center-cancel" | "document-file-download" | "document-file-list-protocol" | "document-file-tar" | "document-file-upload-bottom-center" | "document-file-zip" | "document-status-done-checkmark" | "document-visible" | "documents-file" | "documents-file-checkmark" | "documents-file-move-arrow-right" | "documents-files" | "done-check" | "done-check-tracked" | "download" | "download-status" | "drag-drop-indicator" | "draw-rectangle" | "earth-globe-fail" | "edit" | "edit-boxed" | "edit-erase" | "email" | "email-mail-checkmark-group" | "embed-circle" | "exchange" | "expand-pathfinder-dot-square-segmentation" | "eye-modern-square-read" | "facebook" | "file-blank-image-load-mask" | "file-blank-search" | "file-download" | "file-text" | "files" | "files-library" | "files-library-content" | "filter-sort-add" | "filter-sort-check-mark" | "filter-sort-delete" | "flag" | "flip-horizontal" | "flip-vertical" | "floppy-save" | "flywheel-mark-logo" | "flywheel-viewer-mark-logo" | "folder-add" | "folder-blank" | "folder-checked" | "folder-copy-expand-arrow-down" | "folder-copy-expand-arrow-up" | "folder-group" | "folder-move" | "folder-open" | "folder-share" | "form-metadata-element" | "free-rights" | "freehand-vector-poly" | "full-screen-zoom" | "git-add-branch" | "git-branch" | "git-merge" | "git-merge-draft" | "git-pull-request-2" | "github-color-login" | "gitlab" | "graduate-hat" | "grid-dot-square" | "grid-layout" | "grid-layout-9-square" | "hammer-legal-square" | "hammer-screwdriver" | "hand-money-currency" | "header-form-element" | "home-modern-door" | "home-modern-option-lines" | "human-artificial-intelligence" | "icon-placeholder" | "image-photo-copy-left-down" | "image-picture-square" | "information-circle" | "invoice" | "invoice-checkmark-paid" | "italic" | "items-group-elements" | "key" | "keyboard" | "keychain" | "label-tag" | "laptop-health-medical-cross" | "layers" | "layout" | "layout-grid" | "line" | "link" | "link-unlink" | "linkedin" | "linux" | "list-paragraph" | "list-paragraph-number" | "list-test-lab-flask" | "livewire-tool" | "loading-status-checkmark" | "lock" | "lock-unlock" | "logout" | "lungs" | "maps-protection-target" | "markdown" | "measure-angle" | "measure-ruler-calibration" | "media-library-imports-dowload" | "menu-burger-handle" | "menu-horizontal" | "menu-list-form-square" | "menu-vertical" | "message-chat-add-plus" | "message-chat-info" | "message-chat-question-support" | "message-checkmark-sent" | "message-question-checkmark" | "microphone-mic-rec" | "microphone-mic-rec-circle" | "microphone-mic-recording-circle" | "minus" | "modalities" | "molecule" | "money" | "money-coin" | "money-dollar" | "monitor-computer" | "moon-night-mode" | "mouse-big" | "mouse-scroll" | "move" | "music-play-resume" | "music-stop" | "mute" | "network-storage-alert" | "notebook" | "notebook-add-plus" | "notebook-open" | "notebook-pen-edit" | "notes-pen" | "object-search-zoom-plus" | "open" | "orientation-3d-axial-acquisition" | "orientation-3d-coronal" | "orientation-3d-reformat" | "orientation-3d-sagittal" | "paint-roller" | "pause" | "pen-edit-circle" | "pen-edit-compose-new" | "pencil-edit-create" | "photo-edit-brightness-invert" | "pie-chart" | "pie-graph-chart-sample" | "plus-add-rectangle" | "polygon" | "private-mode-protection-circle" | "protection-target" | "protective-mask" | "question-circle" | "quote" | "radiology-scan" | "radiology-scan-circle" | "reader-studies" | "rotate" | "rotate-arrow-manual" | "rotate-item-left" | "rotate-item-right" | "rotate-refresh" | "ruler" | "ruler-bidirectional" | "scanner" | "search" | "search-loop" | "search-user-profile-person" | "search-zoom-minus" | "search-zoom-plus" | "section-form-element" | "send-message-share" | "server-checkmark" | "server-database-endpoint" | "server-databases-checkmark-user" | "server-databases-connect" | "server-databases-download" | "server-databases-key-protection" | "server-databases-minimal-download" | "server-databases-sync" | "server-databases-sync-import" | "server-upload" | "servers-database" | "setting-gear" | "settings-adjust" | "settings-gear" | "settings-gear-square" | "settings-select" | "shapes-objects" | "share" | "shield-protect" | "show-visible" | "smiley-emoji-face" | "speed-dashboard" | "square-fill" | "square-fill-outline" | "square-outline" | "star" | "star-ai-artificial-intelligence" | "stars-light-sparkle" | "stomach" | "stop-minus" | "stretch-vertical" | "substract-group" | "switch" | "target" | "target-space-object-select" | "task-list-add-checkmark" | "tasklist-to-do-checkmark" | "technology-cube-3d" | "test-lab-flask" | "text-bold" | "text-cross" | "text-h1" | "text-h2" | "text-input-form" | "text-long" | "text-short-form-element" | "text-underline" | "thumbs-down-dislike" | "thumbs-up-like" | "timer-clock-style" | "trash-bin-warning" | "trash-delete" | "twitter" | "undone-uncheck-untracked" | "unlimited-repeat-subscription-circle" | "upload" | "user" | "user-checked" | "user-delete-cross" | "user-document" | "user-group" | "user-key" | "user-lock" | "user-profile-cards-pool" | "user-profile-group-discovery" | "user-setting-gear" | "video-player-controls" | "visible-eye-hidden" | "volume-full" | "warning" | "warning-circle" | "window-finder-resize-arrow-down" | "window-finder-resize-arrow-up" | "window-resize-left" | "window-resize-right" | "window-zoom-plus-loupe" | "windows" | "workspace-mode" | "youtube" | "zendesk-logo">;
907
- readonly cancelButtonText: _angular_core.InputSignal<string>;
908
- readonly contentIcon: _angular_core.InputSignal<string>;
909
- readonly contentTitle: _angular_core.InputSignal<string>;
910
- readonly contentText: _angular_core.InputSignal<string>;
911
- readonly contentTextAlignment: _angular_core.InputSignal<"start" | "end" | "center">;
912
- readonly showConfirmButtonIcon: _angular_core.InputSignal<boolean>;
913
- readonly showClose: _angular_core.InputSignal<boolean>;
914
- readonly width: _angular_core.InputSignal<"large" | "medium" | "small" | "extra-small" | "extra-large" | "responsive">;
915
- readonly externalClasses: _angular_core.InputSignal<string | string[] | {
916
- [key: string]: boolean;
917
- }>;
918
- close: EventEmitter<void>;
919
- confirm: EventEmitter<void>;
920
- private isClosing;
921
- get classes(): {
922
- [key: string]: boolean;
923
- };
924
- get dialogClasses(): string;
925
- handleCloseButton(): void;
926
- protected handleConfirm(): void;
927
- private closeWithAnimation;
928
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwDialogConfirmComponent, never>;
929
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwDialogConfirmComponent, "fw-dialog-confirm", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "confirmColor": { "alias": "confirmColor"; "required": false; "isSignal": true; }; "cancelColor": { "alias": "cancelColor"; "required": false; "isSignal": true; }; "confirmButtonText": { "alias": "confirmButtonText"; "required": false; "isSignal": true; }; "confirmButtonIcon": { "alias": "confirmButtonIcon"; "required": false; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; "isSignal": true; }; "contentIcon": { "alias": "contentIcon"; "required": false; "isSignal": true; }; "contentTitle": { "alias": "contentTitle"; "required": false; "isSignal": true; }; "contentText": { "alias": "contentText"; "required": false; "isSignal": true; }; "contentTextAlignment": { "alias": "contentTextAlignment"; "required": false; "isSignal": true; }; "showConfirmButtonIcon": { "alias": "showConfirmButtonIcon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "externalClasses": { "alias": "class"; "required": false; "isSignal": true; }; }, { "close": "close"; "confirm": "confirm"; }, never, never, true, never>;
930
- }
931
-
932
946
  /**
933
947
  * Sub-component for rendering the scrollable content area of a dialog, with optional padding
934
948
  * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-dialog--docs)
@@ -988,11 +1002,12 @@ declare class FwDialogSimpleComponent {
988
1002
  }
989
1003
 
990
1004
  /**
991
- * @deprecated import component directly, intent to remove in v20
1005
+ * Module for easily importing all the dialog components
1006
+ * @see [Vision Storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/components-dialogs--docs)
992
1007
  */
993
1008
  declare class FwDialogsModule {
994
1009
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwDialogsModule, never>;
995
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwDialogsModule, never, [typeof i1.CommonModule, typeof i2$1.DialogModule, typeof FwButtonModule, typeof FwIconButtonModule, typeof FwIconModule, typeof FwDialogActionsComponent, typeof FwDialogComponent, typeof FwDialogConfirmComponent, typeof FwDialogContentComponent, typeof FwDialogHeaderComponent, typeof FwDialogSimpleComponent], [typeof FwDialogActionsComponent, typeof FwDialogComponent, typeof FwDialogConfirmComponent, typeof FwDialogContentComponent, typeof FwDialogHeaderComponent, typeof FwDialogSimpleComponent]>;
1010
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FwDialogsModule, never, [typeof i1.CommonModule, typeof i2$1.DialogModule, typeof FwButtonComponent, typeof FwIconButtonComponent, typeof FwIconComponent, typeof FwDialogActionsComponent, typeof FwDialogComponent, typeof FwDialogConfirmComponent, typeof FwDialogContentComponent, typeof FwDialogHeaderComponent, typeof FwDialogSimpleComponent], [typeof FwDialogActionsComponent, typeof FwDialogComponent, typeof FwDialogConfirmComponent, typeof FwDialogContentComponent, typeof FwDialogHeaderComponent, typeof FwDialogSimpleComponent]>;
996
1011
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwDialogsModule>;
997
1012
  }
998
1013
 
@@ -1043,6 +1058,117 @@ declare class FwFormHeadingModule {
1043
1058
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwFormHeadingModule>;
1044
1059
  }
1045
1060
 
1061
+ declare enum FieldType {
1062
+ Checkbox = "checkbox",
1063
+ Switch = "switch",
1064
+ Radio = "radio",
1065
+ Text = "text",
1066
+ TextArea = "text-area",
1067
+ Date = "date",
1068
+ Phone = "phone",
1069
+ Select = "select",
1070
+ Paragraph = "paragraph",
1071
+ Instruction = "instruction",
1072
+ Int = "int",
1073
+ Float = "float"
1074
+ }
1075
+ interface LogicRule {
1076
+ logic: RulesLogic;
1077
+ message?: string;
1078
+ }
1079
+ interface CustomField {
1080
+ type: string;
1081
+ label?: string;
1082
+ description?: string;
1083
+ placeholder?: string;
1084
+ key: string;
1085
+ helperText?: string;
1086
+ errorText?: string;
1087
+ requiredWhenVisible?: RulesLogic[];
1088
+ validation?: LogicRule[];
1089
+ visible?: RulesLogic[];
1090
+ options?: {
1091
+ value: string;
1092
+ label?: string;
1093
+ }[];
1094
+ }
1095
+ interface CustomSection {
1096
+ title: string;
1097
+ description?: string | null;
1098
+ key: string;
1099
+ fields: CustomField[];
1100
+ }
1101
+ interface CustomForm {
1102
+ fields: (CustomField | CustomSection)[];
1103
+ }
1104
+
1105
+ /**
1106
+ * Renders a {@link CustomForm} schema as a reactive form, resolving JSONLogic-driven
1107
+ * visibility and validation rules for each field.
1108
+ * @see [Vision storybook](https://cdn.flywheel.io/docs/vision/master/?path=/docs/form-controls-form-renderer--docs)
1109
+ */
1110
+ declare class FwFormRendererComponent {
1111
+ readonly formData: _angular_core.InputSignal<CustomForm>;
1112
+ /** Whether accordion sections render with an outer border. Defaults to `false`. */
1113
+ readonly sectionBorder: _angular_core.InputSignal<boolean>;
1114
+ /** Emits the normalized `{ [fieldKey]: value }` record whenever any field's value changes. */
1115
+ readonly valueChange: _angular_core.OutputEmitterRef<Record<string, unknown>>;
1116
+ /** Emits the FormGroup's overall status whenever it changes. */
1117
+ readonly statusChange: _angular_core.OutputEmitterRef<FormControlStatus>;
1118
+ /**
1119
+ * The underlying FormGroup, exposed as an escape hatch for consumers that need to bind
1120
+ * `[formGroup]` directly (e.g. to call `.patchValue()` or read `.status`/`.value` themselves)
1121
+ * rather than relying solely on `valueChange`/`statusChange`.
1122
+ */
1123
+ readonly form: _angular_core.WritableSignal<FormGroup<any>>;
1124
+ readonly flatFields: _angular_core.WritableSignal<CustomField[]>;
1125
+ readonly FieldType: typeof FieldType;
1126
+ private readonly submitted;
1127
+ private readonly hideByKey;
1128
+ private readonly requiredByKey;
1129
+ private readonly expandedSectionKeys;
1130
+ structuredItems: _angular_core.Signal<(CustomField | CustomSection)[]>;
1131
+ isHidden(field: CustomField): boolean;
1132
+ isRequired(field: CustomField): boolean;
1133
+ isSection(item: CustomField | CustomSection): item is CustomSection;
1134
+ isSectionExpanded(section: CustomSection): boolean;
1135
+ onSectionToggle(section: CustomSection, expanded: boolean): void;
1136
+ /**
1137
+ * Forces a section back open when focus lands on one of its fields while it's collapsed
1138
+ * — e.g. tabbing through the form shouldn't leave focus inside a hidden (height: 0)
1139
+ * section. Wired to `focusin` on each section's content wrapper.
1140
+ */
1141
+ onSectionContentFocusIn(section: CustomSection): void;
1142
+ private destroyRef;
1143
+ private currentKeys;
1144
+ private currentFields;
1145
+ private readonly formRebuilt$;
1146
+ constructor();
1147
+ private flattenFields;
1148
+ private buildForm;
1149
+ /**
1150
+ * Recomputes field visibility and requiredWhenVisible from the form's current values, and
1151
+ * re-runs validation so the field that was just blurred shows its errorText immediately
1152
+ * (validateFields only assigns errorText for touched controls, and the blurred control's
1153
+ * CVA already marked it touched before this native `focusout` handler runs). Wired to the
1154
+ * form's `focusout` so fields only appear/disappear/error once a field loses focus, rather
1155
+ * than on every keystroke.
1156
+ */
1157
+ onFieldBlur(): void;
1158
+ /**
1159
+ * Marks every control touched/dirty and triggers validation immediately, then flips
1160
+ * validation into live (onChange) mode for the remainder of the form's lifetime. Call
1161
+ * this from the consumer's submit handler; returns whether the form is currently valid.
1162
+ */
1163
+ validateOnSubmit(): boolean;
1164
+ private validateFields;
1165
+ private isEmpty;
1166
+ private evaluateRule;
1167
+ private normalizeValues;
1168
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwFormRendererComponent, never>;
1169
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwFormRendererComponent, "fw-form-renderer", never, { "formData": { "alias": "formData"; "required": false; "isSignal": true; }; "sectionBorder": { "alias": "sectionBorder"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "statusChange": "statusChange"; }, never, never, true, never>;
1170
+ }
1171
+
1046
1172
  declare class FwValidators {
1047
1173
  static phone: ValidatorFn;
1048
1174
  static email: ValidatorFn;
@@ -2953,7 +3079,7 @@ declare class FwWrappedInputComponent {
2953
3079
  get hostTitle(): null;
2954
3080
  class: boolean;
2955
3081
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FwWrappedInputComponent, never>;
2956
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwWrappedInputComponent, "fw-wrapped-input", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusColor": { "alias": "statusColor"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, ["fw-form-heading", "fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-typeahead, fw-time-zone-select"], true, never>;
3082
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FwWrappedInputComponent, "fw-wrapped-input", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "statusColor": { "alias": "statusColor"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, ["fw-form-heading", "fw-button-toggle, fw-date-input, fw-text-input, fw-number-input, fw-phone-input, fw-textarea-input, fw-select, fw-multi-select, fw-checkbox, fw-checkbox-group, fw-radio-group, fw-typeahead, fw-time-zone-select"], true, never>;
2957
3083
  }
2958
3084
 
2959
3085
  /**
@@ -2965,5 +3091,5 @@ declare class FwWrappedInputModule {
2965
3091
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<FwWrappedInputModule>;
2966
3092
  }
2967
3093
 
2968
- export { DialogWidth, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxGroupComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTagComponent, FwTagModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTimeZoneSelectComponent, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, NoopValueAccessorDirective, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
2969
- export type { DelayLength$3 as DelayLength, FwButtonColorOption, FwDialogRef, FwPaginatorEvent, FwSnackbarMessage, IconSize, IconType, MenuFilterFn, PaginationPage, PopoverPosition, SimplePosition };
3094
+ export { DialogWidth, FieldType, FwAlertComponent, FwAlertModule, FwAppIconComponent, FwAppIconModule, FwAvatarComponent, FwAvatarListComponent, FwAvatarModule, FwBackButtonComponent, FwBadgeComponent, FwBadgeModule, FwBreadcrumbsComponent, FwBreadcrumbsModule, FwButtonComponent, FwButtonDangerDirective, FwButtonDirective, FwButtonGroupComponent, FwButtonGroupModule, FwButtonModule, FwButtonPrimaryDirective, FwButtonSecondaryDirective, FwButtonSuccessDirective, FwButtonToggleComponent, FwButtonToggleItemComponent, FwButtonToggleModule, FwCardAttributeComponent, FwCardAuthorComponent, FwCardComponent, FwCardContentComponent, FwCardFooterComponent, FwCardHeaderComponent, FwCardModule, FwCell, FwCellDef, FwCheckboxComponent, FwCheckboxGroupComponent, FwCheckboxModule, FwChipComponent, FwChipModule, FwColumnDef, FwContainedInputComponent, FwContainedInputModule, FwCrumbComponent, FwDateInputComponent, FwDateInputModule, FwDialogActionsComponent, FwDialogComponent, FwDialogConfirmComponent, FwDialogContentComponent, FwDialogHeaderComponent, FwDialogService, FwDialogSimpleComponent, FwDialogsModule, FwFooterCell, FwFooterCellDef, FwFooterRow, FwFooterRowDef, FwFormHeadingComponent, FwFormHeadingModule, FwFormRendererComponent, FwGridComponent, FwGridItemComponent, FwHeaderCell, FwHeaderCellDef, FwHeaderRow, FwHeaderRowDef, FwIconButtonComponent, FwIconButtonModule, FwIconComponent, FwIconModule, FwLayoutContextComponent, FwLayoutGroupComponent, FwLayoutPanelComponent, FwLayoutSidebarComponent, FwLayoutToolbarComponent, FwLayoutsModule, FwMenuCloseTriggersDirective, FwMenuComponent, FwMenuContainerComponent, FwMenuHeaderComponent, FwMenuItemComponent, FwMenuItemGroupComponent, FwMenuModule, FwMenuSeparatorComponent, FwMenuSubItemComponent, FwMultiSelectMenuComponent, FwNavbarComponent, FwNavbarHeaderComponent, FwNavbarItemComponent, FwNavbarModule, FwNavbarSubItemComponent, FwNoDataRow, FwNumberInputComponent, FwNumberInputModule, FwPaginatorAdvancedComponent, FwPaginatorComponent, FwPaginatorModule, FwPhoneInputComponent, FwPhoneInputModule, FwPopoverComponent, FwPopoverModule, FwPopoverPanelComponent, FwProgressBarComponent, FwProgressModule, FwProgressSpinnerComponent, FwRadioComponent, FwRadioGroupComponent, FwRadioModule, FwRow, FwRowDef, FwSectionHeadingComponent, FwSectionHeadingModule, FwSelectMenuComponent, FwSelectMenuModule, FwSnackbarComponent, FwSnackbarContainerComponent, FwSnackbarModule, FwSnackbarService, FwStepComponent, FwStepDecoratorComponent, FwStepperComponent, FwStepperModule, FwSubsectionHeadingComponent, FwSwitchComponent, FwSwitchModule, FwTabComponent, FwTabPanelComponent, FwTableComponent, FwTableDenseComponent, FwTableModule, FwTabsComponent, FwTabsModule, FwTagComponent, FwTagModule, FwTextAreaInputComponent, FwTextAreaInputModule, FwTextComponent, FwTextInputComponent, FwTextInputModule, FwTimeZoneSelectComponent, FwTooltipComponent, FwTooltipDirective, FwTooltipModule, FwTooltipPanelComponent, FwTypeaheadComponent, FwValidators, FwWrappedInputComponent, FwWrappedInputModule, LayoutWidth, MenuManagerService, MenuRegisterDirective, MinimalTranslationService, NoopValueAccessorDirective, TranslationService, allIcons, genMessageId, notBeforeDate, notFutureDate };
3095
+ export type { CustomField, CustomForm, CustomSection, DelayLength$3 as DelayLength, FwButtonColorOption, FwDialogConfig, FwDialogRef, FwPaginatorEvent, FwSnackbarMessage, IconSize, IconType, LogicRule, MenuFilterFn, PaginationPage, PopoverPosition, SimplePosition };