@koobiq/components 20.4.1 → 21.0.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/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +486 -165
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -187
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# input-number-surface
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@20`
|
|
4
|
+
(registered for `21.0.0-0`). Rewrites reads of the four `KbqNumberInput` members that became signals,
|
|
5
|
+
and reports everything else: the members that disappeared with the `KbqFormFieldControl` surface the
|
|
6
|
+
directive declared and never populated, the validator directives that gained a `Kbq` prefix, and the
|
|
7
|
+
behaviors that changed without a call site to point at.
|
|
8
|
+
|
|
9
|
+
## `min`, `max`, `step` and `bigStep` are `input()` signals
|
|
10
|
+
|
|
11
|
+
A read becomes a call. The value is unchanged, so this part is auto-fixed:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
// before
|
|
15
|
+
const span = numberInput.max - numberInput.min;
|
|
16
|
+
// after
|
|
17
|
+
const span = numberInput.max() - numberInput.min();
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The rewrite is scoped, not textual. `min`, `max` and `step` are among the most common property names
|
|
21
|
+
there are, so a bare `\.min\b` match would rewrite a plain object literal's bounds. Only two receivers
|
|
22
|
+
qualify:
|
|
23
|
+
|
|
24
|
+
- an identifier this file **annotates** as `KbqNumberInput` — a parameter, a field, a local, or a
|
|
25
|
+
`viewChild(KbqNumberInput)` initializer. There is no cross-package type resolution, so a receiver
|
|
26
|
+
whose type is only inferred is left alone.
|
|
27
|
+
- a template reference bound through the directive's `exportAs`: `#ref="kbqNumberInput"` or the
|
|
28
|
+
`kbqNumericalInput` alias. Both external and inline templates.
|
|
29
|
+
|
|
30
|
+
Template **bindings** are otherwise untouched — `[min]="lower"` and `min="3"` still work.
|
|
31
|
+
|
|
32
|
+
The one exception is `bigStep`, which had a second spelling: the legacy `big-step` attribute, read once
|
|
33
|
+
at construction and deaf to every later change. Keeping both would mean maintaining the same input
|
|
34
|
+
twice, so the kebab-case one is dropped and renamed here, scoped to the `<input>` tag that carries the
|
|
35
|
+
directive.
|
|
36
|
+
|
|
37
|
+
A programmatic **write** (`numberInput.min = 0`) is reported, not rewritten: an `input()` is read-only
|
|
38
|
+
and has no `.set()`, so the binding has to take over. The rewrite is idempotent — an already-migrated
|
|
39
|
+
`min()` is left alone, so running it twice is safe.
|
|
40
|
+
|
|
41
|
+
## `KbqInputPassword` mints its ids in its own namespace
|
|
42
|
+
|
|
43
|
+
It shared the `kbq-input-` counter with `KbqInput`, so any page holding both controls emitted two
|
|
44
|
+
elements with the same id, and the form field's `<label for>` resolved to whichever came first. A
|
|
45
|
+
password field now renders `id="kbq-input-password-7"` where it used to render `id="kbq-input-7"`.
|
|
46
|
+
|
|
47
|
+
Reported, not rewritten: a hand-written reference to a generated id is a symptom, and the fix is
|
|
48
|
+
usually to stop depending on the generated value rather than to renumber it.
|
|
49
|
+
|
|
50
|
+
## The unprefixed validator exports are gone
|
|
51
|
+
|
|
52
|
+
`MinValidator`, `MaxValidator`, `MIN_VALIDATOR` and `MAX_VALIDATOR` were deprecated aliases of the
|
|
53
|
+
`Kbq`-prefixed names. They are removed, and rewritten here — a pure rename has one mechanical
|
|
54
|
+
translation.
|
|
55
|
+
|
|
56
|
+
The rewrite is scoped to the names a file imports from `@koobiq/components/input`, because
|
|
57
|
+
`@angular/forms` exports `MinValidator` and `MaxValidator` under exactly those spellings — which is
|
|
58
|
+
why the koobiq ones were renamed in the first place. A file importing the framework's is left alone.
|
|
59
|
+
|
|
60
|
+
## `valueChange` and `disabledChange` are Subjects
|
|
61
|
+
|
|
62
|
+
Both were `EventEmitter`. Subscribing is unchanged; a call to `.emit()` becomes `.next()`. Reported
|
|
63
|
+
rather than rewritten: those two names are far too common to match blind.
|
|
64
|
+
|
|
65
|
+
## Background
|
|
66
|
+
|
|
67
|
+
`KbqNumberInput` declared `implements KbqFormFieldControl<any>` and then assigned none of it. The
|
|
68
|
+
private `control` field behind `ngControl` had no writer anywhere in the file, so `ngControl` was
|
|
69
|
+
permanently `undefined`, and `id`, `placeholder`, `empty`, `required` and `errorState` were declared
|
|
70
|
+
only to satisfy the interface. Nothing broke, because the `KbqFormFieldControl` provider lives on the
|
|
71
|
+
sibling `KbqInput` — which matches the same host and supplies the real implementation — but the
|
|
72
|
+
members were public, so a consumer reading `numberInputRef.errorState` got `undefined` with no type
|
|
73
|
+
error.
|
|
74
|
+
|
|
75
|
+
| Member | Before | After |
|
|
76
|
+
| ------------------------------------------------------------------- | -------------------------- | ------------------ |
|
|
77
|
+
| `ngControl`, `id`, `placeholder`, `empty`, `required`, `errorState` | public, always `undefined` | removed |
|
|
78
|
+
| `MinValidator`, `MaxValidator` | deprecated aliases | removed, rewritten |
|
|
79
|
+
| `MIN_VALIDATOR`, `MAX_VALIDATOR` | deprecated aliases | removed, rewritten |
|
|
80
|
+
|
|
81
|
+
The unprefixed validator names are the exact names `@angular/forms` exports, so importing both in one
|
|
82
|
+
file shadowed the framework's.
|
|
83
|
+
|
|
84
|
+
## Two behaviors that changed with no call site
|
|
85
|
+
|
|
86
|
+
`type="number"` on a `kbqNumberInput` is now reset to `type="text"` with a console warning. A native
|
|
87
|
+
number field runs the value sanitization algorithm on assignment and rejects everything the directive
|
|
88
|
+
renders once a group separator or a comma fraction separator is in it, so the field went blank while
|
|
89
|
+
the model still held the value; it also reports `selectionStart` as `null`, which disabled caret
|
|
90
|
+
preservation entirely.
|
|
91
|
+
|
|
92
|
+
`HTMLInputElement.prototype.valueAsNumber` is no longer redefined. The constructor used to call
|
|
93
|
+
`Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', …)` — that is the
|
|
94
|
+
prototype, not the element, so constructing one koobiq number input replaced the platform accessor for
|
|
95
|
+
every `<input>` in the application, permanently and with no teardown. A locale-aware numeric read is
|
|
96
|
+
now a member of the directive: `numberInput.valueAsNumber`.
|
|
97
|
+
|
|
98
|
+
## What it does _not_ rewrite
|
|
99
|
+
|
|
100
|
+
A member that was always `undefined` has no replacement expression, and the validator rename is safe to
|
|
101
|
+
leave in place until the deprecated aliases are dropped.
|
|
102
|
+
|
|
103
|
+
| Pattern | Manual migration |
|
|
104
|
+
| ---------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
105
|
+
| `numberInput.errorState` / `.ngControl` / `.empty` / `.required` | Read them off the sibling `KbqInput` or off the `<kbq-form-field>` |
|
|
106
|
+
| `numberInput.min = 0` | Bind `[min]="0"` — an `input()` has no `.set()` |
|
|
107
|
+
| `numberInput.valueChange.emit(v)` | `numberInput.valueChange.next(v)` |
|
|
108
|
+
| `<input kbqNumberInput type="number">` | Drop the attribute |
|
|
109
|
+
| `inputElement.valueAsNumber` | `numberInput.valueAsNumber`, or read the form control |
|
|
110
|
+
| `#kbq-input-7` on a password field | Stop keying on a generated id, or use `kbq-input-password-7` |
|
|
111
|
+
|
|
112
|
+
A receiver whose `KbqNumberInput` type is inferred rather than written down is also out of reach, as
|
|
113
|
+
are the forms no structural match can see — an index read (`refs['input'].min`) and destructuring
|
|
114
|
+
(`const { min } = numberInput`). Nothing about those is reported, so check them by hand.
|
|
115
|
+
|
|
116
|
+
## Also in the release, with nothing to migrate
|
|
117
|
+
|
|
118
|
+
- The numeric inputs coerce their value, so a static attribute (`min="3"`) holds the number `3` rather
|
|
119
|
+
than the string `"3"`. The `ngAcceptInputType_*` declarations that used to carry that are gone: a
|
|
120
|
+
signal input types what it accepts through its transform's parameter.
|
|
121
|
+
- The validators no longer `parseInt` their bound value, so `[min]="0.5"` validates against `0.5`
|
|
122
|
+
instead of `0`, and a bound `[min]="0"` reaches the DOM instead of being dropped by a falsy check.
|
|
123
|
+
- Stepping runs in integer space against a decimal scale, so one arrow press on `1.005` with
|
|
124
|
+
`step="0.001"` renders `1,006` rather than `1,0059999999999998`.
|
|
125
|
+
- `KbqNumberInput` carries spinbutton semantics: `role`, `aria-valuenow`, `aria-valuetext`,
|
|
126
|
+
`aria-valuemin`, `aria-valuemax` and `inputmode`.
|
|
127
|
+
- `startFormattingFrom` is read from the input as well as from the locale, instead of being declared
|
|
128
|
+
and ignored.
|
|
129
|
+
|
|
130
|
+
## Usage
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
ng update @koobiq/components
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Or standalone:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
ng generate @koobiq/components:input-number-surface --project=my-app
|
|
140
|
+
```
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `input-number-surface` migration.
|
|
5
|
+
*
|
|
6
|
+
* The input review stripped the `KbqFormFieldControl` surface `KbqNumberInput` declared and never
|
|
7
|
+
* populated, and prefixed the two validator directives whose unprefixed names shadow the identically
|
|
8
|
+
* named exports of `@angular/forms`:
|
|
9
|
+
*
|
|
10
|
+
* - `KbqNumberInput` no longer `implements KbqFormFieldControl`. `ngControl`, `errorState`, `id`,
|
|
11
|
+
* `placeholder`, `empty` and `required` are gone; every one of them was `undefined` for the whole
|
|
12
|
+
* lifetime of the directive, because the backing `control` field was never assigned. The real
|
|
13
|
+
* implementation always lived on the sibling `KbqInput`, which is what the form field resolves.
|
|
14
|
+
* - `MinValidator` / `MaxValidator` / `MIN_VALIDATOR` / `MAX_VALIDATOR` → `KbqMinValidator` /
|
|
15
|
+
* `KbqMaxValidator` / `KBQ_MIN_VALIDATOR` / `KBQ_MAX_VALIDATOR`. The old names stay as deprecated
|
|
16
|
+
* aliases for one minor, so nothing breaks today.
|
|
17
|
+
*
|
|
18
|
+
* It then finished the signal migration: `min`, `max`, `step` and `bigStep` became `input()`, so a read
|
|
19
|
+
* has to become a call. That part *is* rewritten — scoped to a receiver whose type is provably
|
|
20
|
+
* `KbqNumberInput`, because `min`/`max`/`step` are far too common to match on the member name alone.
|
|
21
|
+
*
|
|
22
|
+
* The rest is warn-only. A removed member that was always `undefined` has no replacement expression,
|
|
23
|
+
* and the validator rename is safe to leave until the aliases are dropped.
|
|
24
|
+
*/
|
|
25
|
+
/** Import specifier that marks a file as an input consumer. */
|
|
26
|
+
const INPUT_PACKAGE = '@koobiq/components/input';
|
|
27
|
+
/** Identifier and attribute shapes that mark a consumer without an import. */
|
|
28
|
+
const INPUT_TYPE = '\\bKbqNumberInput\\b|\\bkbqNumberInput\\b';
|
|
29
|
+
/** The password directive, which owns the id-namespace change. Anchors its own warning. */
|
|
30
|
+
const PASSWORD_TYPE = '\\bKbqInputPassword\\b|\\bkbqInputPassword\\b';
|
|
31
|
+
/** TypeScript type annotation that marks a receiver as a number input. */
|
|
32
|
+
const NUMBER_INPUT_TYPE = 'KbqNumberInput';
|
|
33
|
+
/** `exportAs` names a template reference variable can bind the directive under. */
|
|
34
|
+
const NUMBER_INPUT_EXPORT_AS = ['kbqNumberInput', 'kbqNumericalInput'];
|
|
35
|
+
/**
|
|
36
|
+
* `KbqNumberInput` members that became `input()` signals. The value is unchanged — only the call
|
|
37
|
+
* syntax — so a read is rewritten to a call. Every one of these is read-only: a programmatic write
|
|
38
|
+
* has no `.set()` and is warned about instead.
|
|
39
|
+
*/
|
|
40
|
+
const SIGNAL_MEMBERS = ['min', 'max', 'step', 'bigStep'];
|
|
41
|
+
/**
|
|
42
|
+
* The `KbqFormFieldControl` member-access pattern, handled separately from {@link warnPatterns}: `KbqInput`
|
|
43
|
+
* — the sibling directive that also matches `input[kbqNumberInput]` — still exposes every one of these
|
|
44
|
+
* members, so a bare text match would also flag a file that correctly reads them off a `KbqInput`-typed
|
|
45
|
+
* reference. `index.ts` resolves the receiver of each match against the file's AST before reporting it.
|
|
46
|
+
*/
|
|
47
|
+
const FORM_FIELD_CONTROL_MEMBER_PATTERN = {
|
|
48
|
+
anchor: INPUT_TYPE,
|
|
49
|
+
pattern: '\\b([A-Za-z_$][\\w$]*)\\s*\\.\\s*(?:ngControl|errorState|placeholder|empty|required)\\b',
|
|
50
|
+
message: 'KbqNumberInput no longer implements KbqFormFieldControl: ngControl, errorState, id, placeholder, ' +
|
|
51
|
+
'empty and required were removed. None of them was ever assigned — the private `control` field ' +
|
|
52
|
+
'behind ngControl had no writer — so every read returned undefined. Read them off the sibling ' +
|
|
53
|
+
'KbqInput, which owns the KbqFormFieldControl provider on the same element, or off the form ' +
|
|
54
|
+
'field itself.'
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Removed exports and the prefixed names that replace them. A pure rename with one mechanical
|
|
58
|
+
* translation each, so these are rewritten rather than reported.
|
|
59
|
+
*
|
|
60
|
+
* The unprefixed names were the exact names `@angular/forms` exports, so importing both in one file
|
|
61
|
+
* shadowed the framework validator. They were deprecated aliases; this release drops them.
|
|
62
|
+
*
|
|
63
|
+
* Only rewritten in a file that imports `@koobiq/components/input` — without that anchor, a project
|
|
64
|
+
* importing `MinValidator` from `@angular/forms` would be rewritten to a koobiq name it never imported.
|
|
65
|
+
*/
|
|
66
|
+
const RENAMED_EXPORTS = [
|
|
67
|
+
['MinValidator', 'KbqMinValidator'],
|
|
68
|
+
['MaxValidator', 'KbqMaxValidator'],
|
|
69
|
+
['MIN_VALIDATOR', 'KBQ_MIN_VALIDATOR'],
|
|
70
|
+
['MAX_VALIDATOR', 'KBQ_MAX_VALIDATOR']
|
|
71
|
+
];
|
|
72
|
+
const warnPatterns = [
|
|
73
|
+
{
|
|
74
|
+
anchor: INPUT_TYPE,
|
|
75
|
+
// Both attribute orders, and only within the same `<input>` tag as `kbqNumberInput` — a bare
|
|
76
|
+
// `type\s*=\s*"number"` anywhere in the file also matches an unrelated native input.
|
|
77
|
+
pattern: '<input\\b[^>]*\\bkbqNumberInput\\b[^>]*\\btype\\s*=\\s*[\'"]number[\'"]|' +
|
|
78
|
+
'<input\\b[^>]*\\btype\\s*=\\s*[\'"]number[\'"][^>]*\\bkbqNumberInput\\b',
|
|
79
|
+
message: 'type="number" on a kbqNumberInput is reset to type="text" with a console warning. A native ' +
|
|
80
|
+
'number field runs the value sanitization algorithm on assignment and drops every value the ' +
|
|
81
|
+
'directive formats — anything with a fraction, and anything over 999 while withThousandSeparator ' +
|
|
82
|
+
'is on — so the field went blank while the model still held the value. Drop the attribute.'
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
anchor: INPUT_TYPE,
|
|
86
|
+
pattern: '\\b(?:valueChange|disabledChange)\\s*\\.\\s*emit\\b',
|
|
87
|
+
message: 'KbqNumberInput.valueChange and .disabledChange are RxJS Subjects rather than EventEmitters. ' +
|
|
88
|
+
'Subscribing is unchanged; a call to .emit() becomes .next(). These names are too common to ' +
|
|
89
|
+
'rewrite blind — check whether the receiver is the number input before renaming.'
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
// Anchored on the password directive, not on INPUT_TYPE: the ids belong to KbqInputPassword.
|
|
93
|
+
anchor: PASSWORD_TYPE,
|
|
94
|
+
// A hand-written reference to a generated id, in a selector, a test id or an aria-* attribute.
|
|
95
|
+
pattern: '[\'"#\\[]\\s*kbq-input-\\d|kbq-input-\\d+["\'\\]]|\\bkbq-input-\\d',
|
|
96
|
+
message: 'KbqInputPassword mints its ids in its own kbq-input-password- namespace now, so a password ' +
|
|
97
|
+
'field that used to render id="kbq-input-7" renders id="kbq-input-password-7". It shared the ' +
|
|
98
|
+
'kbq-input- counter with KbqInput before, which produced two elements with the same id on any ' +
|
|
99
|
+
"page holding both controls, and the form field's <label for> then resolved to the wrong one. " +
|
|
100
|
+
'Anything keyed on the generated id — a CSS selector, a test locator, a hand-written ' +
|
|
101
|
+
'aria-labelledby — has to be updated, or better, stop depending on a generated value.'
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
anchor: INPUT_TYPE,
|
|
105
|
+
pattern: '\\bvalueAsNumber\\b',
|
|
106
|
+
message: 'KbqNumberInput no longer redefines HTMLInputElement.prototype.valueAsNumber. The patch replaced ' +
|
|
107
|
+
'the platform accessor for every <input> in the application, returned null where the DOM ' +
|
|
108
|
+
'specification requires NaN, and read a date field as parseFloat of its date string. A ' +
|
|
109
|
+
'locale-aware numeric read is now a member of the directive: numberInput.valueAsNumber.'
|
|
110
|
+
}
|
|
111
|
+
];
|
|
112
|
+
/** Printed once per project, after the per-file reports. */
|
|
113
|
+
const SUMMARY = [
|
|
114
|
+
' min, max, step and bigStep are input() signals that coerce their value, so a static attribute ' +
|
|
115
|
+
'(min="3") holds the number 3 rather than the string "3". Reads on a KbqNumberInput-typed ' +
|
|
116
|
+
'receiver were rewritten to calls; template bindings ([min], big-step="2") are unchanged.',
|
|
117
|
+
' MinValidator/MaxValidator no longer parseInt their bound value, so a fractional [min]="0.5" ' +
|
|
118
|
+
'validates against 0.5 instead of 0, and a bound [min]="0" reaches the DOM instead of being ' +
|
|
119
|
+
'dropped by a falsy check.',
|
|
120
|
+
' Stepping is done in integer space against a decimal scale, so one arrow press on 1.005 with ' +
|
|
121
|
+
'step="0.001" renders 1,006 rather than 1,0059999999999998.',
|
|
122
|
+
' KbqNumberInput carries spinbutton semantics — role, aria-valuenow, aria-valuetext, aria-valuemin, ' +
|
|
123
|
+
'aria-valuemax and inputmode.'
|
|
124
|
+
];
|
|
125
|
+
|
|
126
|
+
exports.FORM_FIELD_CONTROL_MEMBER_PATTERN = FORM_FIELD_CONTROL_MEMBER_PATTERN;
|
|
127
|
+
exports.INPUT_PACKAGE = INPUT_PACKAGE;
|
|
128
|
+
exports.INPUT_TYPE = INPUT_TYPE;
|
|
129
|
+
exports.NUMBER_INPUT_EXPORT_AS = NUMBER_INPUT_EXPORT_AS;
|
|
130
|
+
exports.NUMBER_INPUT_TYPE = NUMBER_INPUT_TYPE;
|
|
131
|
+
exports.PASSWORD_TYPE = PASSWORD_TYPE;
|
|
132
|
+
exports.RENAMED_EXPORTS = RENAMED_EXPORTS;
|
|
133
|
+
exports.SIGNAL_MEMBERS = SIGNAL_MEMBERS;
|
|
134
|
+
exports.SUMMARY = SUMMARY;
|
|
135
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var ts = require('typescript');
|
|
6
|
+
var utils_messages = require('../../utils/messages.js');
|
|
7
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
8
|
+
var migrations_inputNumberSurface_data = require('./data.js');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
|
|
12
|
+
const LABEL = '[input-number-surface]';
|
|
13
|
+
const EXTENSIONS = ['.ts', '.html'];
|
|
14
|
+
const TS_EXT = '.ts';
|
|
15
|
+
/** A file is an input consumer if it imports the package or names one of the directives. */
|
|
16
|
+
function referencesInput(content) {
|
|
17
|
+
return (content.includes(migrations_inputNumberSurface_data.INPUT_PACKAGE) ||
|
|
18
|
+
new RegExp(migrations_inputNumberSurface_data.INPUT_TYPE).test(content) ||
|
|
19
|
+
new RegExp(migrations_inputNumberSurface_data.PASSWORD_TYPE).test(content));
|
|
20
|
+
}
|
|
21
|
+
const createSourceFile = (fileName, content) => ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
22
|
+
/**
|
|
23
|
+
* Identifiers in the file explicitly typed as `typeName` — through a type annotation, or a
|
|
24
|
+
* `viewChild(<typeName>)` / `viewChild.required(<typeName>)` initializer.
|
|
25
|
+
*
|
|
26
|
+
* Used for two opposite purposes. For `KbqInput` it suppresses a false positive: a member access on one
|
|
27
|
+
* of these can never be the `KbqFormFieldControl` surface this migration warns about, because `KbqInput`
|
|
28
|
+
* still owns it. For `KbqNumberInput` it is what scopes the signal-read rewrite, since `min`/`max`/`step`
|
|
29
|
+
* are far too common to match on the member name alone.
|
|
30
|
+
*
|
|
31
|
+
* Only this file's annotations are consulted — there is no cross-package type resolution — so a receiver
|
|
32
|
+
* whose type is inferred rather than written down is left alone.
|
|
33
|
+
*/
|
|
34
|
+
function collectTypedNames(sourceFile, typeName) {
|
|
35
|
+
const names = new Set();
|
|
36
|
+
const isKbqInputTypeNode = (node) => !!node && ts.isTypeReferenceNode(node) && node.typeName.getText(sourceFile) === typeName;
|
|
37
|
+
const referencesKbqInput = (call) => call.arguments.some((argument) => ts.isIdentifier(argument) && argument.text === typeName);
|
|
38
|
+
const visit = (node) => {
|
|
39
|
+
if ((ts.isPropertyDeclaration(node) || ts.isVariableDeclaration(node) || ts.isParameter(node)) &&
|
|
40
|
+
ts.isIdentifier(node.name) &&
|
|
41
|
+
isKbqInputTypeNode(node.type)) {
|
|
42
|
+
names.add(node.name.text);
|
|
43
|
+
}
|
|
44
|
+
if (ts.isCallExpression(node) &&
|
|
45
|
+
/^viewChild(\.required)?$/.test(node.expression.getText(sourceFile)) &&
|
|
46
|
+
referencesKbqInput(node)) {
|
|
47
|
+
const owner = node.parent;
|
|
48
|
+
if ((ts.isPropertyDeclaration(owner) || ts.isVariableDeclaration(owner)) && ts.isIdentifier(owner.name)) {
|
|
49
|
+
names.add(owner.name.text);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ts.forEachChild(node, visit);
|
|
53
|
+
};
|
|
54
|
+
ts.forEachChild(sourceFile, visit);
|
|
55
|
+
return names;
|
|
56
|
+
}
|
|
57
|
+
/** The receiver name (capture group 1) of every `FORM_FIELD_CONTROL_MEMBER_PATTERN` match in `content`. */
|
|
58
|
+
function collectFormFieldControlReceivers(content) {
|
|
59
|
+
const regex = new RegExp(migrations_inputNumberSurface_data.FORM_FIELD_CONTROL_MEMBER_PATTERN.pattern, 'g');
|
|
60
|
+
const receivers = [];
|
|
61
|
+
let match;
|
|
62
|
+
while ((match = regex.exec(content))) {
|
|
63
|
+
receivers.push(match[1]);
|
|
64
|
+
}
|
|
65
|
+
return receivers;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether `content` reads a removed `KbqFormFieldControl` member off something other than a provably
|
|
69
|
+
* `KbqInput`-typed reference. `KbqInput` keeps every one of these members, so a match whose receiver
|
|
70
|
+
* resolves to a `KbqInput`-typed identifier is a false positive, not a call site the rename broke.
|
|
71
|
+
* `.html` templates fall back to the plain existence check: a template-reference receiver (`#ref="kbqInput"`)
|
|
72
|
+
* is not resolved here.
|
|
73
|
+
*/
|
|
74
|
+
function reportsFormFieldControlMember(filePath, content) {
|
|
75
|
+
const receivers = collectFormFieldControlReceivers(content);
|
|
76
|
+
if (receivers.length === 0)
|
|
77
|
+
return false;
|
|
78
|
+
if (!filePath.endsWith(TS_EXT))
|
|
79
|
+
return true;
|
|
80
|
+
const kbqInputTypedNames = collectTypedNames(createSourceFile(filePath, content), 'KbqInput');
|
|
81
|
+
return receivers.some((receiver) => !kbqInputTypedNames.has(receiver));
|
|
82
|
+
}
|
|
83
|
+
/** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
|
|
84
|
+
function applyEdits(content, edits) {
|
|
85
|
+
return [...edits]
|
|
86
|
+
.sort((a, b) => b.start - a.start || b.end - a.end)
|
|
87
|
+
.reduce((result, { start, end, text }) => result.slice(0, start) + text + result.slice(end), content);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Trailing identifier of a receiver expression: `input` for `input`, `numberInput` for
|
|
91
|
+
* `this.numberInput`. Anything else (a call, an index read) has no stable name and is skipped.
|
|
92
|
+
*/
|
|
93
|
+
function receiverName(expression) {
|
|
94
|
+
if (ts.isIdentifier(expression))
|
|
95
|
+
return expression.text;
|
|
96
|
+
if (ts.isPropertyAccessExpression(expression) && ts.isIdentifier(expression.name))
|
|
97
|
+
return expression.name.text;
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Rewrites `numberInput.min` to `numberInput.min()` on every receiver this file annotates as a
|
|
102
|
+
* `KbqNumberInput`. A write (`numberInput.min = 5`) is left alone and reported instead: the members are
|
|
103
|
+
* read-only `input()`s, so there is no `.set()` to rewrite to, and the binding is the replacement.
|
|
104
|
+
*
|
|
105
|
+
* Returns the rewritten content plus the distinct member names written to, for the caller to report.
|
|
106
|
+
*/
|
|
107
|
+
function migrateSignalReads(content, filePath) {
|
|
108
|
+
const written = new Set();
|
|
109
|
+
if (!migrations_inputNumberSurface_data.SIGNAL_MEMBERS.some((member) => content.includes(member)))
|
|
110
|
+
return { content, written };
|
|
111
|
+
const sourceFile = createSourceFile(filePath, content);
|
|
112
|
+
const receivers = collectTypedNames(sourceFile, migrations_inputNumberSurface_data.NUMBER_INPUT_TYPE);
|
|
113
|
+
if (receivers.size === 0)
|
|
114
|
+
return { content, written };
|
|
115
|
+
const edits = [];
|
|
116
|
+
const visit = (node) => {
|
|
117
|
+
if (ts.isPropertyAccessExpression(node) &&
|
|
118
|
+
ts.isIdentifier(node.name) &&
|
|
119
|
+
migrations_inputNumberSurface_data.SIGNAL_MEMBERS.includes(node.name.text)) {
|
|
120
|
+
const name = receiverName(node.expression);
|
|
121
|
+
if (name && receivers.has(name)) {
|
|
122
|
+
const parent = node.parent;
|
|
123
|
+
const isWrite = ts.isBinaryExpression(parent) &&
|
|
124
|
+
parent.left === node &&
|
|
125
|
+
parent.operatorToken.kind === ts.SyntaxKind.EqualsToken;
|
|
126
|
+
// Already a call — `min()` — so the rewrite stays idempotent across repeated runs.
|
|
127
|
+
const isCalled = ts.isCallExpression(parent) && parent.expression === node;
|
|
128
|
+
if (isWrite)
|
|
129
|
+
written.add(node.name.text);
|
|
130
|
+
else if (!isCalled)
|
|
131
|
+
edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
node.forEachChild(visit);
|
|
135
|
+
};
|
|
136
|
+
visit(sourceFile);
|
|
137
|
+
return { content: edits.length > 0 ? applyEdits(content, edits) : content, written };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Template reference variables bound to the number input by `exportAs` — `#ref="kbqNumberInput"` and the
|
|
141
|
+
* `kbqNumericalInput` alias. Matched textually: the templates this runs over are the consumer's, and a
|
|
142
|
+
* full template parse would still not tell us the directive's type.
|
|
143
|
+
*/
|
|
144
|
+
function collectTemplateRefs(template) {
|
|
145
|
+
const pattern = new RegExp(`#([A-Za-z_$][\\w$]*)\\s*=\\s*["'](?:${migrations_inputNumberSurface_data.NUMBER_INPUT_EXPORT_AS.join('|')})["']`, 'g');
|
|
146
|
+
return [...template.matchAll(pattern)].map((match) => match[1]);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Names this file imports from `@koobiq/components/input` that were renamed. A name can only be bound
|
|
150
|
+
* once per module, so a name imported from koobiq here cannot also be the `@angular/forms` export of the
|
|
151
|
+
* same spelling — which is what makes a whole-file rename of it safe.
|
|
152
|
+
*/
|
|
153
|
+
function collectRenamedImports(sourceFile) {
|
|
154
|
+
const imported = new Set();
|
|
155
|
+
for (const statement of sourceFile.statements) {
|
|
156
|
+
if (!ts.isImportDeclaration(statement) ||
|
|
157
|
+
!ts.isStringLiteralLike(statement.moduleSpecifier) ||
|
|
158
|
+
statement.moduleSpecifier.text !== migrations_inputNumberSurface_data.INPUT_PACKAGE) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const bindings = statement.importClause?.namedBindings;
|
|
162
|
+
if (!bindings || !ts.isNamedImports(bindings))
|
|
163
|
+
continue;
|
|
164
|
+
for (const element of bindings.elements) {
|
|
165
|
+
// `import { MinValidator as Lower }` binds a different local name; the import itself is
|
|
166
|
+
// rewritten by the propertyName branch, and the alias keeps working untouched.
|
|
167
|
+
imported.add((element.propertyName ?? element.name).text);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return migrations_inputNumberSurface_data.RENAMED_EXPORTS.filter(([from]) => imported.has(from));
|
|
171
|
+
}
|
|
172
|
+
/** Rewrites the removed export names to their prefixed replacements, scoped to this file's imports. */
|
|
173
|
+
function migrateRenamedExports(content, filePath) {
|
|
174
|
+
if (!migrations_inputNumberSurface_data.RENAMED_EXPORTS.some(([from]) => content.includes(from)))
|
|
175
|
+
return content;
|
|
176
|
+
const renames = collectRenamedImports(createSourceFile(filePath, content));
|
|
177
|
+
if (renames.length === 0)
|
|
178
|
+
return content;
|
|
179
|
+
// Longest first, so `MIN_VALIDATOR` is never matched as part of a longer identifier by a shorter
|
|
180
|
+
// pattern; `\b` on both ends keeps `KbqMinValidator` itself from matching `MinValidator`.
|
|
181
|
+
return [...renames]
|
|
182
|
+
.sort(([a], [b]) => b.length - a.length)
|
|
183
|
+
.reduce((result, [from, to]) => result.replace(new RegExp(`(?<![\\w$])${from}(?![\\w$])`, 'g'), to), content);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Renames the dropped kebab-case `big-step` to `bigStep`, within the same `<input>` tag as the
|
|
187
|
+
* directive so an unrelated element's attribute of that name is untouched. Both binding forms, and
|
|
188
|
+
* both attribute orders — the directive may sit before or after the attribute.
|
|
189
|
+
*/
|
|
190
|
+
function migrateBigStepAttribute(template) {
|
|
191
|
+
if (!template.includes('big-step'))
|
|
192
|
+
return template;
|
|
193
|
+
return template.replace(/<input\b[^>]*>/g, (tag) => /\bkbqNumberInput\b/.test(tag) ? tag.replace(/(\[?)big-step(\]?)\s*=/g, '$1bigStep$2=') : tag);
|
|
194
|
+
}
|
|
195
|
+
/** Rewrites `ref.min` to `ref.min()` for template refs bound to the number input, and renames `big-step`. */
|
|
196
|
+
function migrateTemplate(template) {
|
|
197
|
+
let content = migrateBigStepAttribute(template);
|
|
198
|
+
const refs = collectTemplateRefs(content);
|
|
199
|
+
const members = migrations_inputNumberSurface_data.SIGNAL_MEMBERS.join('|');
|
|
200
|
+
for (const ref of refs) {
|
|
201
|
+
// `(?!\s*\()` skips anything already invoked, so a second run is a no-op.
|
|
202
|
+
content = content.replace(new RegExp(`\\b(${ref})\\.(${members})\\b(?!\\s*\\()`, 'g'), '$1.$2()');
|
|
203
|
+
}
|
|
204
|
+
return { content, changed: content !== template };
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Rewrites reads of the `KbqNumberInput` members that became `input()` signals — `min`, `max`, `step`,
|
|
208
|
+
* `bigStep` — on a receiver this file annotates as a `KbqNumberInput`, and on a template reference bound
|
|
209
|
+
* through the directive's `exportAs`.
|
|
210
|
+
*
|
|
211
|
+
* Reports the rest: the members that disappeared with the unimplemented `KbqFormFieldControl` surface,
|
|
212
|
+
* the validator classes that gained a `Kbq` prefix, the `EventEmitter` → `Subject` change, and the two
|
|
213
|
+
* behaviors that changed without a call site to point at — the `type="number"` reset and the removed
|
|
214
|
+
* `valueAsNumber` prototype patch. A removed member that was always `undefined` has no replacement
|
|
215
|
+
* expression, so none of that half can be written.
|
|
216
|
+
*
|
|
217
|
+
* `.html` is visited as well as `.ts`, because `type="number"` is markup.
|
|
218
|
+
*/
|
|
219
|
+
function inputNumberSurface(options) {
|
|
220
|
+
return async (tree, context) => {
|
|
221
|
+
const { project } = options;
|
|
222
|
+
// `migrations.json` registers this without a schema, so the schema default never reaches us;
|
|
223
|
+
// applying the fix is the intended behavior of `ng update`.
|
|
224
|
+
const fix = options.fix ?? true;
|
|
225
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
226
|
+
const root = projectDefinition?.root ?? '';
|
|
227
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
228
|
+
let consumers = 0;
|
|
229
|
+
let reported = 0;
|
|
230
|
+
let touched = 0;
|
|
231
|
+
const pending = [];
|
|
232
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
233
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
234
|
+
return;
|
|
235
|
+
const content = entry?.content.toString();
|
|
236
|
+
if (!content || !referencesInput(content))
|
|
237
|
+
return;
|
|
238
|
+
consumers++;
|
|
239
|
+
for (const { anchor, pattern, message } of migrations_inputNumberSurface_data.warnPatterns) {
|
|
240
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
241
|
+
continue;
|
|
242
|
+
reported++;
|
|
243
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
244
|
+
}
|
|
245
|
+
if (new RegExp(migrations_inputNumberSurface_data.FORM_FIELD_CONTROL_MEMBER_PATTERN.anchor).test(content) &&
|
|
246
|
+
reportsFormFieldControlMember(filePath, content)) {
|
|
247
|
+
reported++;
|
|
248
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_inputNumberSurface_data.FORM_FIELD_CONTROL_MEMBER_PATTERN.message}`]);
|
|
249
|
+
}
|
|
250
|
+
const isTs = filePath.endsWith(TS_EXT);
|
|
251
|
+
// A `.ts` file carries both programmatic reads and any inline template; an `.html` file only
|
|
252
|
+
// the latter. Both passes run on a `.ts` file, so `#ref="kbqNumberInput"` in an inline
|
|
253
|
+
// template is reached too.
|
|
254
|
+
const { content: afterReads, written } = isTs
|
|
255
|
+
? migrateSignalReads(content, filePath)
|
|
256
|
+
: { content, written: new Set() };
|
|
257
|
+
const afterRenames = isTs ? migrateRenamedExports(afterReads, filePath) : afterReads;
|
|
258
|
+
const { content: updated } = migrateTemplate(afterRenames);
|
|
259
|
+
if (written.size > 0) {
|
|
260
|
+
reported++;
|
|
261
|
+
utils_messages.logMessage(context.logger, [
|
|
262
|
+
`${LABEL} ${filePath}`,
|
|
263
|
+
` ${[...written].join(', ')} on KbqNumberInput ${written.size === 1 ? 'is' : 'are'} a ` +
|
|
264
|
+
'read-only input() and cannot be assigned. Bind the value in the template instead ' +
|
|
265
|
+
'([min]="…"); a programmatic write has no .set() to migrate to.'
|
|
266
|
+
]);
|
|
267
|
+
}
|
|
268
|
+
if (updated === content)
|
|
269
|
+
return;
|
|
270
|
+
touched++;
|
|
271
|
+
if (fix)
|
|
272
|
+
pending.push({ filePath, content: updated });
|
|
273
|
+
else
|
|
274
|
+
utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
|
|
275
|
+
});
|
|
276
|
+
// Written after the walk: overwriting during `visit` re-enters the visitor on some Tree backends.
|
|
277
|
+
for (const { filePath, content } of pending) {
|
|
278
|
+
tree.overwrite(filePath, content);
|
|
279
|
+
}
|
|
280
|
+
// Nothing here uses the input, so the summary would only be noise.
|
|
281
|
+
if (consumers === 0)
|
|
282
|
+
return;
|
|
283
|
+
utils_messages.logMessage(context.logger, [
|
|
284
|
+
`${LABEL} processed kbqInput under "${root || '<workspace root>'}", ` +
|
|
285
|
+
`${consumers} file(s) reference the package, ${reported} call site(s) reported, ` +
|
|
286
|
+
`${fix ? 'updated' : 'would update'} ${touched} file(s).`,
|
|
287
|
+
...migrations_inputNumberSurface_data.SUMMARY
|
|
288
|
+
]);
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
exports.default = inputNumberSurface;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-input-number-surface",
|
|
4
|
+
"title": "Koobiq components input review migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"fix": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": true,
|
|
17
|
+
"description": "When true, applies the signal-read replacements. When false, prints what would change without writing."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# input-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
|
|
4
|
+
Reports programmatic writes to the signal inputs of `KbqNumberInput` and `KbqInput`. It never writes to the tree.
|
|
5
|
+
|
|
6
|
+
## Background
|
|
7
|
+
|
|
8
|
+
`KbqNumberInput.value`, `KbqNumberInput.disabled` and `KbqInput.type` are signal inputs read through a getter. A read
|
|
9
|
+
is unchanged; a write no longer compiles.
|
|
10
|
+
|
|
11
|
+
| Write | Manual migration |
|
|
12
|
+
| --------------------------------------------------- | ------------------------------------------------------ |
|
|
13
|
+
| `numberInput.value = …`, `numberInput.disabled = …` | Bind `[value]` / `[disabled]`, or use the form control |
|
|
14
|
+
| `input.type = …` | Bind `[type]` |
|
|
15
|
+
|
|
16
|
+
## Running it manually
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
ng g @koobiq/components:input-signals --project "<your project>"
|
|
20
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `input-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqNumberInput.value` / `.disabled` and `KbqInput.type` are signal inputs read through a getter now. Reads are
|
|
7
|
+
* unchanged; a programmatic write no longer compiles. Warn-only: the write belongs in a binding or a form control.
|
|
8
|
+
*/
|
|
9
|
+
const warnPatterns = [
|
|
10
|
+
{
|
|
11
|
+
anchor: '\\bKbqNumberInput\\b|\\bkbqNumberInput\\b',
|
|
12
|
+
pattern: '\\.\\s*(?:value|disabled)\\s*=[^=]',
|
|
13
|
+
message: 'KbqNumberInput.value and .disabled are signal inputs read through a getter now, so a programmatic ' +
|
|
14
|
+
'write no longer compiles. Bind [value] / [disabled], or write through the form control. This ' +
|
|
15
|
+
'pattern also matches a write to an unrelated object in the same file — check before changing it.'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
anchor: '\\bKbqInput\\b',
|
|
19
|
+
pattern: '\\.\\s*type\\s*=[^=]',
|
|
20
|
+
message: 'KbqInput.type is a signal input read through a getter now, so a programmatic write no longer ' +
|
|
21
|
+
'compiles. Bind [type] instead. This pattern also matches a write to an unrelated object in the ' +
|
|
22
|
+
'same file — check before changing it.'
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
const SUMMARY = [
|
|
26
|
+
'KbqNumberInput.value / .disabled and KbqInput.type are read as before; only programmatic writes are gone.'
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
exports.SUMMARY = SUMMARY;
|
|
30
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var warnOnlyMigration = require('../../warn-only-migration-BISJBODk.js');
|
|
6
|
+
var migrations_inputSignals_data = require('./data.js');
|
|
7
|
+
require('../../utils/messages.js');
|
|
8
|
+
require('../../package-config-BhU2TfC8.js');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
|
|
12
|
+
/** Reports programmatic writes to the signal inputs of `KbqNumberInput` and `KbqInput`. Never writes. */
|
|
13
|
+
function inputSignals(options) {
|
|
14
|
+
return warnOnlyMigration.warnOnlyRule({ label: '[input-signals]', warnPatterns: migrations_inputSignals_data.warnPatterns, summary: migrations_inputSignals_data.SUMMARY }, options);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.default = inputSignals;
|