@tinya-code/gas-admin-ui 0.2.0-alpha.12 → 0.2.0-alpha.15
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/README.md +222 -0
- package/ng-package.json +7 -0
- package/package.json +3 -15
- package/src/lib/actions/action-registry.spec.ts +52 -0
- package/src/lib/actions/action-registry.ts +126 -0
- package/src/lib/actions/action-service.spec.ts +215 -0
- package/src/lib/actions/action-service.ts +87 -0
- package/src/lib/actions/descriptors.spec.ts +155 -0
- package/src/lib/actions/descriptors.ts +154 -0
- package/src/lib/columns/column-cell.ts +33 -0
- package/src/lib/columns/column-defaults.spec.ts +99 -0
- package/src/lib/columns/column-defaults.ts +84 -0
- package/src/lib/columns/column-format.spec.ts +274 -0
- package/src/lib/columns/descriptors.ts +113 -0
- package/src/lib/columns/format-badge.ts +51 -0
- package/src/lib/columns/format-boolean.ts +58 -0
- package/src/lib/columns/format-currency.ts +30 -0
- package/src/lib/columns/format-date.ts +35 -0
- package/src/lib/columns/format-number.ts +32 -0
- package/src/lib/columns/format-text.ts +23 -0
- package/src/lib/columns/format-thumbnail.ts +63 -0
- package/src/lib/core/adapters/firebase-auth.adapter.ts +6 -0
- package/src/lib/core/guards/auth.guard.spec.ts +88 -0
- package/src/lib/core/guards/auth.guard.ts +48 -0
- package/src/lib/core/guards/unsaved-changes.guard.ts +16 -0
- package/src/lib/core/interceptors/api-error.interceptor.spec.ts +182 -0
- package/src/lib/core/interceptors/api-error.interceptor.ts +87 -0
- package/src/lib/core/models/api.model.ts +104 -0
- package/src/lib/core/models/schema-descriptions.ts +118 -0
- package/src/lib/core/models/schema.model.ts +1097 -0
- package/src/lib/core/registry/composition-validator.spec.ts +358 -0
- package/src/lib/core/registry/composition-validator.ts +270 -0
- package/src/lib/core/registry/field-validators.spec.ts +199 -0
- package/src/lib/core/registry/field-validators.ts +440 -0
- package/src/lib/core/registry/render-host.spec.ts +208 -0
- package/src/lib/core/registry/render-host.ts +646 -0
- package/src/lib/core/registry/render-registry.spec.ts +96 -0
- package/src/lib/core/registry/render-registry.ts +312 -0
- package/src/lib/core/registry/schema-catalog.ts +156 -0
- package/src/lib/core/services/api.service.spec.ts +1142 -0
- package/src/lib/core/services/api.service.ts +371 -0
- package/src/lib/core/services/auth.service.spec.ts +653 -0
- package/src/lib/core/services/auth.service.ts +503 -0
- package/src/lib/core/services/config.service.spec.ts +121 -0
- package/src/lib/core/services/config.service.ts +119 -0
- package/src/lib/core/services/data-source.service.spec.ts +179 -0
- package/src/lib/core/services/data-source.service.ts +142 -0
- package/src/lib/core/services/error-mapper.service.spec.ts +50 -0
- package/src/lib/core/services/error-mapper.service.ts +49 -0
- package/src/lib/core/services/notification.service.ts +73 -0
- package/src/lib/core/services/relation-drawer.service.ts +41 -0
- package/src/lib/core/services/theme.service.spec.ts +106 -0
- package/src/lib/core/services/theme.service.ts +86 -0
- package/src/lib/core/services/transport.spec.ts +198 -0
- package/src/lib/core/services/transport.ts +164 -0
- package/src/lib/core/services/upload.service.ts +81 -0
- package/src/lib/core/testing/categories.schema.ts +125 -0
- package/src/lib/core/testing/orders.schema.ts +372 -0
- package/src/lib/core/testing/products.schema.ts +258 -0
- package/src/lib/core/testing/site.schema.ts +195 -0
- package/src/lib/core/testing/test-catalog.ts +21 -0
- package/src/lib/core/tokens.ts +112 -0
- package/src/lib/core/utils/clipboard.spec.ts +55 -0
- package/src/lib/core/utils/clipboard.ts +90 -0
- package/src/lib/core/utils/context-resolver.spec.ts +95 -0
- package/src/lib/core/utils/context-resolver.ts +101 -0
- package/src/lib/core/utils/response-unwrapper.spec.ts +70 -0
- package/src/lib/core/utils/response-unwrapper.ts +103 -0
- package/src/lib/core/utils/source-options.spec.ts +96 -0
- package/src/lib/core/utils/source-options.ts +54 -0
- package/src/lib/core/utils/template-interpolator.spec.ts +59 -0
- package/src/lib/core/utils/template-interpolator.ts +56 -0
- package/src/lib/core/view-navigation/view-navigation.service.spec.ts +207 -0
- package/src/lib/core/view-navigation/view-navigation.service.ts +132 -0
- package/src/lib/fields/boolean/boolean.descriptor.ts +11 -0
- package/src/lib/fields/boolean/boolean.ts +40 -0
- package/src/lib/fields/color/color.descriptor.ts +12 -0
- package/src/lib/fields/color/color.ts +34 -0
- package/src/lib/fields/currency/currency.descriptor.ts +12 -0
- package/src/lib/fields/currency/currency.ts +67 -0
- package/src/lib/fields/date/date.descriptor.ts +12 -0
- package/src/lib/fields/date/date.ts +36 -0
- package/src/lib/fields/descriptors.ts +122 -0
- package/src/lib/fields/display/display-badge.ts +65 -0
- package/src/lib/fields/display/display-date.ts +39 -0
- package/src/lib/fields/display/display-defaults.ts +84 -0
- package/src/lib/fields/display/display-file.ts +41 -0
- package/src/lib/fields/display/display-image.ts +54 -0
- package/src/lib/fields/display/display-list.ts +107 -0
- package/src/lib/fields/display/display-number.ts +41 -0
- package/src/lib/fields/display/display-text.ts +42 -0
- package/src/lib/fields/display/display.spec.ts +242 -0
- package/src/lib/fields/dropdown/dropdown.descriptor.ts +12 -0
- package/src/lib/fields/dropdown/dropdown.ts +45 -0
- package/src/lib/fields/email/email.descriptor.ts +12 -0
- package/src/lib/fields/email/email.ts +28 -0
- package/src/lib/fields/field-aria.ts +60 -0
- package/src/lib/fields/field-host/field-host.spec.ts +118 -0
- package/src/lib/fields/field-host/field-host.ts +47 -0
- package/src/lib/fields/field-node.ts +88 -0
- package/src/lib/fields/file/file.descriptor.ts +14 -0
- package/src/lib/fields/file/file.spec.ts +134 -0
- package/src/lib/fields/file/file.ts +281 -0
- package/src/lib/fields/group/group.descriptor.ts +21 -0
- package/src/lib/fields/group/group.ts +110 -0
- package/src/lib/fields/image/image.descriptor.ts +12 -0
- package/src/lib/fields/image/image.spec.ts +117 -0
- package/src/lib/fields/image/image.ts +281 -0
- package/src/lib/fields/key-value/key-value.descriptor.ts +11 -0
- package/src/lib/fields/key-value/key-value.ts +283 -0
- package/src/lib/fields/list/list.descriptor.ts +21 -0
- package/src/lib/fields/list/list.ts +376 -0
- package/src/lib/fields/multiselect/multiselect.descriptor.ts +11 -0
- package/src/lib/fields/multiselect/multiselect.spec.ts +142 -0
- package/src/lib/fields/multiselect/multiselect.ts +152 -0
- package/src/lib/fields/number/number.descriptor.ts +12 -0
- package/src/lib/fields/number/number.ts +40 -0
- package/src/lib/fields/phone/phone.descriptor.ts +12 -0
- package/src/lib/fields/phone/phone.ts +46 -0
- package/src/lib/fields/readonly-text/readonly-text.descriptor.ts +12 -0
- package/src/lib/fields/readonly-text/readonly-text.ts +58 -0
- package/src/lib/fields/relation/relation.descriptor.ts +12 -0
- package/src/lib/fields/relation/relation.spec.ts +193 -0
- package/src/lib/fields/relation/relation.ts +224 -0
- package/src/lib/fields/rich-select/rich-select.descriptor.ts +12 -0
- package/src/lib/fields/rich-select/rich-select.ts +175 -0
- package/src/lib/fields/select/radio-mode.ts +25 -0
- package/src/lib/fields/select/select.descriptor.ts +12 -0
- package/src/lib/fields/select/select.spec.ts +162 -0
- package/src/lib/fields/select/select.ts +210 -0
- package/src/lib/fields/slug/slug.descriptor.ts +19 -0
- package/src/lib/fields/slug/slug.ts +67 -0
- package/src/lib/fields/string-list/string-list.descriptor.ts +11 -0
- package/src/lib/fields/string-list/string-list.ts +222 -0
- package/src/lib/fields/text/text.descriptor.ts +12 -0
- package/src/lib/fields/text/text.ts +35 -0
- package/src/lib/fields/textarea/textarea.descriptor.ts +12 -0
- package/src/lib/fields/textarea/textarea.spec.ts +117 -0
- package/src/lib/fields/textarea/textarea.ts +126 -0
- package/src/lib/fields/time/time.descriptor.ts +12 -0
- package/src/lib/fields/time/time.ts +28 -0
- package/src/lib/fields/unknown-render/unknown-render.ts +49 -0
- package/src/lib/fields/url/url.descriptor.ts +12 -0
- package/src/lib/fields/url/url.ts +53 -0
- package/src/lib/gas-admin-ui.spec.ts +21 -0
- package/src/lib/gas-admin-ui.ts +9 -0
- package/src/lib/layouts/descriptors.ts +9 -0
- package/src/lib/pages/dashboard/dashboard.ts +167 -0
- package/src/lib/pages/detail-view/detail-view.spec.ts +333 -0
- package/src/lib/pages/detail-view/detail-view.ts +570 -0
- package/src/lib/pages/drawer-form/drawer-form.ts +228 -0
- package/src/lib/pages/form-view/form-model.ts +88 -0
- package/src/lib/pages/form-view/form-schema.ts +255 -0
- package/src/lib/pages/form-view/form-view.ts +1622 -0
- package/src/lib/pages/list-view/list-view.formats.spec.ts +214 -0
- package/src/lib/pages/list-view/list-view.ts +882 -0
- package/src/lib/pages/login/login.spec.ts +109 -0
- package/src/lib/pages/login/login.ts +227 -0
- package/src/lib/pages/resource-page/resource-page.ts +234 -0
- package/src/lib/shared/components/badge/badge.ts +35 -0
- package/src/lib/shared/components/button/button.ts +65 -0
- package/src/lib/shared/components/confirm-dialog/confirm-dialog.ts +48 -0
- package/src/lib/shared/components/copy-button/copy-button.ts +56 -0
- package/src/lib/shared/components/copy-share/copy-share.spec.ts +122 -0
- package/src/lib/shared/components/copy-share/copy-share.ts +107 -0
- package/src/lib/shared/components/drawer/drawer.spec.ts +127 -0
- package/src/lib/shared/components/drawer/drawer.ts +172 -0
- package/src/lib/shared/components/empty-state/empty-state.ts +30 -0
- package/src/lib/shared/components/modal/modal.spec.ts +149 -0
- package/src/lib/shared/components/modal/modal.ts +145 -0
- package/src/lib/shared/components/post-create-modal/post-create-modal.spec.ts +165 -0
- package/src/lib/shared/components/post-create-modal/post-create-modal.ts +159 -0
- package/src/lib/shared/components/skeleton/skeleton.ts +31 -0
- package/src/lib/shared/components/toast/toast.ts +58 -0
- package/src/lib/shared/utils/col-span.ts +25 -0
- package/src/lib/shared/utils/condition-evaluator.ts +53 -0
- package/src/lib/shared/utils/depends-on.ts +48 -0
- package/src/lib/shared/utils/dialog-focus.ts +28 -0
- package/src/lib/shared/utils/field-path.ts +49 -0
- package/src/lib/shared/utils/gap-sorting.ts +144 -0
- package/src/lib/shared/utils/seed.spec.ts +64 -0
- package/src/lib/shared/utils/seed.ts +149 -0
- package/src/lib/shared/utils/slugify.ts +13 -0
- package/src/lib/shared/utils/validators.ts +41 -0
- package/src/lib/shell/layout/layout.ts +63 -0
- package/src/lib/shell/shell.routes.spec.ts +59 -0
- package/src/lib/shell/shell.routes.ts +122 -0
- package/src/lib/shell/sidebar/sidebar.ts +139 -0
- package/src/lib/shell/theme-toggle/theme-toggle.ts +74 -0
- package/src/lib/views/calendar-view/calendar-model.ts +426 -0
- package/src/lib/views/calendar-view/calendar-view.spec.ts +557 -0
- package/src/lib/views/calendar-view/calendar-view.ts +568 -0
- package/src/lib/views/composer/composer-host.spec.ts +301 -0
- package/src/lib/views/composer/composer-host.ts +248 -0
- package/src/lib/views/composer/composer-imports.spec.ts +54 -0
- package/src/lib/views/composer/view-context.spec.ts +117 -0
- package/src/lib/views/composer/view-context.ts +109 -0
- package/src/lib/views/composer/view-slot.spec.ts +130 -0
- package/src/lib/views/composer/view-slot.ts +178 -0
- package/src/lib/views/descriptors.ts +46 -0
- package/src/lib/views/kanban-view/kanban-model.ts +173 -0
- package/src/lib/views/kanban-view/kanban-view.spec.ts +540 -0
- package/src/lib/views/kanban-view/kanban-view.ts +327 -0
- package/src/lib/widgets/bar-chart/bar-chart.descriptor.ts +17 -0
- package/src/lib/widgets/bar-chart/bar-chart.spec.ts +66 -0
- package/src/lib/widgets/bar-chart/bar-chart.ts +76 -0
- package/src/lib/widgets/chart-line/chart-line.descriptor.ts +17 -0
- package/src/lib/widgets/chart-line/chart-line.spec.ts +113 -0
- package/src/lib/widgets/chart-line/chart-line.ts +219 -0
- package/src/lib/widgets/descriptors.ts +29 -0
- package/src/lib/widgets/metric-card/metric-card.descriptor.ts +41 -0
- package/src/lib/widgets/metric-card/metric-card.spec.ts +52 -0
- package/src/lib/widgets/metric-card/metric-card.ts +48 -0
- package/src/lib/widgets/quick-actions/quick-actions.descriptor.ts +13 -0
- package/src/lib/widgets/quick-actions/quick-actions.spec.ts +61 -0
- package/src/lib/widgets/quick-actions/quick-actions.ts +100 -0
- package/src/lib/widgets/record-list/record-list.descriptor.ts +16 -0
- package/src/lib/widgets/record-list/record-list.spec.ts +79 -0
- package/src/lib/widgets/record-list/record-list.ts +115 -0
- package/src/lib/widgets/series.spec.ts +42 -0
- package/src/lib/widgets/series.ts +56 -0
- package/src/lib/widgets/status-progress/status-progress.descriptor.ts +19 -0
- package/src/lib/widgets/status-progress/status-progress.spec.ts +63 -0
- package/src/lib/widgets/status-progress/status-progress.ts +104 -0
- package/src/lib/widgets/widget-host/widget-host.spec.ts +179 -0
- package/src/lib/widgets/widget-host/widget-host.ts +99 -0
- package/src/public-api.ts +104 -0
- package/tinya-code-gas-admin-ui-0.2.0-alpha.15.tgz +0 -0
- package/tsconfig.lib.json +13 -0
- package/tsconfig.lib.prod.json +11 -0
- package/tsconfig.spec.json +10 -0
- package/fesm2022/tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs +0 -84
- package/fesm2022/tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs +0 -140
- package/fesm2022/tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs +0 -113
- package/fesm2022/tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-button-BQjNW8KB.mjs +0 -163
- package/fesm2022/tinya-code-gas-admin-ui-button-BQjNW8KB.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-calendar-view-DCY8bj2V.mjs +0 -1027
- package/fesm2022/tinya-code-gas-admin-ui-calendar-view-DCY8bj2V.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-chart-line-BjdlKHoH.mjs +0 -278
- package/fesm2022/tinya-code-gas-admin-ui-chart-line-BjdlKHoH.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-color-Dljh_By3.mjs +0 -107
- package/fesm2022/tinya-code-gas-admin-ui-color-Dljh_By3.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-condition-evaluator-DY2k1M3C.mjs +0 -101
- package/fesm2022/tinya-code-gas-admin-ui-condition-evaluator-DY2k1M3C.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-currency-BvuF3Z63.mjs +0 -141
- package/fesm2022/tinya-code-gas-admin-ui-currency-BvuF3Z63.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-data-source.service-96FSbN72.mjs +0 -88
- package/fesm2022/tinya-code-gas-admin-ui-data-source.service-96FSbN72.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-date-1SJGXZrd.mjs +0 -107
- package/fesm2022/tinya-code-gas-admin-ui-date-1SJGXZrd.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-badge-fwk6sDU7.mjs +0 -140
- package/fesm2022/tinya-code-gas-admin-ui-display-badge-fwk6sDU7.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-date-D7zLiDiG.mjs +0 -119
- package/fesm2022/tinya-code-gas-admin-ui-display-date-D7zLiDiG.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs +0 -125
- package/fesm2022/tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs +0 -152
- package/fesm2022/tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs +0 -211
- package/fesm2022/tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs +0 -116
- package/fesm2022/tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-display-text-B8CdVNpv.mjs +0 -111
- package/fesm2022/tinya-code-gas-admin-ui-display-text-B8CdVNpv.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-dropdown-C3blvmE1.mjs +0 -122
- package/fesm2022/tinya-code-gas-admin-ui-dropdown-C3blvmE1.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-email-CT_O5ihA.mjs +0 -107
- package/fesm2022/tinya-code-gas-admin-ui-email-CT_O5ihA.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-empty-state-BMc0QtoT.mjs +0 -109
- package/fesm2022/tinya-code-gas-admin-ui-empty-state-BMc0QtoT.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-error-mapper.service-DY5y1FjE.mjs +0 -45
- package/fesm2022/tinya-code-gas-admin-ui-error-mapper.service-DY5y1FjE.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-field-aria-BD1Wiggc.mjs +0 -50
- package/fesm2022/tinya-code-gas-admin-ui-field-aria-BD1Wiggc.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-field-node-CIK6KNN_.mjs +0 -24
- package/fesm2022/tinya-code-gas-admin-ui-field-node-CIK6KNN_.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-field-path-B4-FTBGZ.mjs +0 -27
- package/fesm2022/tinya-code-gas-admin-ui-field-path-B4-FTBGZ.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-file-Dmxioog7.mjs +0 -408
- package/fesm2022/tinya-code-gas-admin-ui-file-Dmxioog7.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-form-view-C709rc57.mjs +0 -4516
- package/fesm2022/tinya-code-gas-admin-ui-form-view-C709rc57.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-badge-CK8ct5Wk.mjs +0 -82
- package/fesm2022/tinya-code-gas-admin-ui-format-badge-CK8ct5Wk.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-boolean-ClzezZz-.mjs +0 -105
- package/fesm2022/tinya-code-gas-admin-ui-format-boolean-ClzezZz-.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-currency-CVmniKml.mjs +0 -65
- package/fesm2022/tinya-code-gas-admin-ui-format-currency-CVmniKml.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-date-Dr1YsDd_.mjs +0 -65
- package/fesm2022/tinya-code-gas-admin-ui-format-date-Dr1YsDd_.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-number-CWCjpI4n.mjs +0 -65
- package/fesm2022/tinya-code-gas-admin-ui-format-number-CWCjpI4n.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-text-DBOgJkH0.mjs +0 -59
- package/fesm2022/tinya-code-gas-admin-ui-format-text-DBOgJkH0.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-format-thumbnail-PCRvxWKt.mjs +0 -94
- package/fesm2022/tinya-code-gas-admin-ui-format-thumbnail-PCRvxWKt.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-gap-sorting-iTdy_DYG.mjs +0 -72
- package/fesm2022/tinya-code-gas-admin-ui-gap-sorting-iTdy_DYG.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-group-h7-O8tt4.mjs +0 -238
- package/fesm2022/tinya-code-gas-admin-ui-group-h7-O8tt4.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-image-7UhJ7nqI.mjs +0 -416
- package/fesm2022/tinya-code-gas-admin-ui-image-7UhJ7nqI.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-kanban-view-Dl0Ol5Kb.mjs +0 -439
- package/fesm2022/tinya-code-gas-admin-ui-kanban-view-Dl0Ol5Kb.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-key-value-nVdgg5at.mjs +0 -513
- package/fesm2022/tinya-code-gas-admin-ui-key-value-nVdgg5at.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-list-C8ijJHAx.mjs +0 -637
- package/fesm2022/tinya-code-gas-admin-ui-list-C8ijJHAx.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-metric-card-DnGMQL8l.mjs +0 -127
- package/fesm2022/tinya-code-gas-admin-ui-metric-card-DnGMQL8l.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-multiselect-PB28e-jl.mjs +0 -251
- package/fesm2022/tinya-code-gas-admin-ui-multiselect-PB28e-jl.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-notification.service-LjSULER6.mjs +0 -66
- package/fesm2022/tinya-code-gas-admin-ui-notification.service-LjSULER6.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-number-JNr7glc8.mjs +0 -114
- package/fesm2022/tinya-code-gas-admin-ui-number-JNr7glc8.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-phone-jR417hPf.mjs +0 -116
- package/fesm2022/tinya-code-gas-admin-ui-phone-jR417hPf.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-quick-actions-DCQ6emmF.mjs +0 -235
- package/fesm2022/tinya-code-gas-admin-ui-quick-actions-DCQ6emmF.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-radio-mode-DxvN07DY.mjs +0 -8
- package/fesm2022/tinya-code-gas-admin-ui-radio-mode-DxvN07DY.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-readonly-text-BL7-4qie.mjs +0 -124
- package/fesm2022/tinya-code-gas-admin-ui-readonly-text-BL7-4qie.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-record-list-BiZfnd_7.mjs +0 -249
- package/fesm2022/tinya-code-gas-admin-ui-record-list-BiZfnd_7.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-relation-drawer.service-B0kT8EiW.mjs +0 -39
- package/fesm2022/tinya-code-gas-admin-ui-relation-drawer.service-B0kT8EiW.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-relation-ykpJ3PYl.mjs +0 -309
- package/fesm2022/tinya-code-gas-admin-ui-relation-ykpJ3PYl.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-render-registry-CULkxrSt.mjs +0 -576
- package/fesm2022/tinya-code-gas-admin-ui-render-registry-CULkxrSt.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-rich-select-CIHaOrbU.mjs +0 -161
- package/fesm2022/tinya-code-gas-admin-ui-rich-select-CIHaOrbU.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-rolldown-runtime-DpJrqANO.mjs +0 -11
- package/fesm2022/tinya-code-gas-admin-ui-schema-catalog-D0Pk0wAN.mjs +0 -685
- package/fesm2022/tinya-code-gas-admin-ui-schema-catalog-D0Pk0wAN.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-seed-CcCA3FdQ.mjs +0 -80
- package/fesm2022/tinya-code-gas-admin-ui-seed-CcCA3FdQ.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-select-CDwX9yNO.mjs +0 -296
- package/fesm2022/tinya-code-gas-admin-ui-select-CDwX9yNO.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-skeleton-DnWK0tcZ.mjs +0 -119
- package/fesm2022/tinya-code-gas-admin-ui-skeleton-DnWK0tcZ.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-slug-DU58cbiY.mjs +0 -158
- package/fesm2022/tinya-code-gas-admin-ui-slug-DU58cbiY.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-source-options-B9R4mw8-.mjs +0 -26
- package/fesm2022/tinya-code-gas-admin-ui-source-options-B9R4mw8-.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-status-progress-DmeG8htE.mjs +0 -205
- package/fesm2022/tinya-code-gas-admin-ui-status-progress-DmeG8htE.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-string-list-gleasqzD.mjs +0 -432
- package/fesm2022/tinya-code-gas-admin-ui-string-list-gleasqzD.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-template-interpolator-ewv7CkNX.mjs +0 -36
- package/fesm2022/tinya-code-gas-admin-ui-template-interpolator-ewv7CkNX.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-text-CUPmL7W_.mjs +0 -107
- package/fesm2022/tinya-code-gas-admin-ui-text-CUPmL7W_.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-textarea-CGLSIW13.mjs +0 -223
- package/fesm2022/tinya-code-gas-admin-ui-textarea-CGLSIW13.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-time-BcHzsTWf.mjs +0 -107
- package/fesm2022/tinya-code-gas-admin-ui-time-BcHzsTWf.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-upload.service-CZPEPCeN.mjs +0 -60
- package/fesm2022/tinya-code-gas-admin-ui-upload.service-CZPEPCeN.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui-url-GO4LZi__.mjs +0 -141
- package/fesm2022/tinya-code-gas-admin-ui-url-GO4LZi__.mjs.map +0 -1
- package/fesm2022/tinya-code-gas-admin-ui.mjs +0 -4599
- package/fesm2022/tinya-code-gas-admin-ui.mjs.map +0 -1
- package/types/tinya-code-gas-admin-ui.d.ts +0 -3632
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of @tinya-code/gas-admin-ui
|
|
3
|
+
* (G-F2: todo lo demás es privado — FESM sin deep imports.)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ── Catálogo y wiring del motor ────────────────────────────────────────
|
|
7
|
+
export {
|
|
8
|
+
GAS_SCHEMAS,
|
|
9
|
+
allSchemas,
|
|
10
|
+
getAuth,
|
|
11
|
+
getSchema,
|
|
12
|
+
provideFirebaseAdapter,
|
|
13
|
+
provideGasAdmin,
|
|
14
|
+
setSchemaCatalog,
|
|
15
|
+
} from './lib/core/registry/schema-catalog';
|
|
16
|
+
export type { GasAdminConfig } from './lib/core/registry/schema-catalog';
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
// ── Contratos (tipos que declara el consumidor en sus schemas) ─────────
|
|
20
|
+
export * from './lib/core/models/schema.model';
|
|
21
|
+
export { ApiError } from './lib/core/models/api.model';
|
|
22
|
+
|
|
23
|
+
// ── Token del Web App y autenticación externa ──────────────────────────
|
|
24
|
+
export { API_DRIVER, API_URL, DEFAULT_RESPONSE_UNWRAP, FIREBASE_AUTH_ADAPTER, VALUE_SOURCES } from './lib/core/tokens';
|
|
25
|
+
export type { ValueSources } from './lib/core/tokens';
|
|
26
|
+
export type { FirebaseAuthAdapter } from './lib/core/tokens';
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// ── Guard y rutas del shell ────────────────────────────────────────────
|
|
30
|
+
export { authGuard } from './lib/core/guards/auth.guard';
|
|
31
|
+
export { resourceRoutes, shellRoutes } from './lib/shell/shell.routes';
|
|
32
|
+
|
|
33
|
+
// ── Página de login (lazy en el app.routes del consumidor) ─────────────
|
|
34
|
+
export { Login } from './lib/pages/login/login';
|
|
35
|
+
|
|
36
|
+
// ── Servicios y wiring internos (integración y composición) ────────────
|
|
37
|
+
export { NotificationService } from './lib/core/services/notification.service';
|
|
38
|
+
export { ApiService } from './lib/core/services/api.service';
|
|
39
|
+
export { AuthService, SESSION_TOKEN_KEY, SESSION_USER_KEY } from './lib/core/services/auth.service';
|
|
40
|
+
export { DataSourceService } from './lib/core/services/data-source.service';
|
|
41
|
+
export { ErrorMapperService } from './lib/core/services/error-mapper.service';
|
|
42
|
+
export { UploadService } from './lib/core/services/upload.service';
|
|
43
|
+
export { apiErrorInterceptor } from './lib/core/interceptors/api-error.interceptor';
|
|
44
|
+
|
|
45
|
+
// ── Componentes del motor (reutilizables en composiciones custom) ──────
|
|
46
|
+
export { Sidebar } from './lib/shell/sidebar/sidebar';
|
|
47
|
+
export { Dashboard } from './lib/pages/dashboard/dashboard';
|
|
48
|
+
export { ListView } from './lib/pages/list-view/list-view';
|
|
49
|
+
export { FormView } from './lib/pages/form-view/form-view';
|
|
50
|
+
export { buildFormSchema } from './lib/pages/form-view/form-schema';
|
|
51
|
+
export { seedModel, buildPayload } from './lib/pages/form-view/form-model';
|
|
52
|
+
export { ResourcePage } from './lib/pages/resource-page/resource-page';
|
|
53
|
+
export { ComposerHost } from './lib/views/composer/composer-host';
|
|
54
|
+
export { FieldHost } from './lib/fields/field-host/field-host';
|
|
55
|
+
export { ConfirmDialog } from './lib/shared/components/confirm-dialog/confirm-dialog';
|
|
56
|
+
export { Toast } from './lib/shared/components/toast/toast';
|
|
57
|
+
|
|
58
|
+
// ── Registros de catálogo (campos, formatos de columna) ────────────────
|
|
59
|
+
export {
|
|
60
|
+
SUPPORTED_FIELD_TYPE_LIST,
|
|
61
|
+
fieldDescriptors,
|
|
62
|
+
} from './lib/fields/descriptors';
|
|
63
|
+
export {
|
|
64
|
+
COLUMN_FORMAT_TYPES,
|
|
65
|
+
columnFormatDescriptors,
|
|
66
|
+
} from './lib/columns/descriptors';
|
|
67
|
+
|
|
68
|
+
// ── Modelos API y árbol de layouts (especificados por los specs de dominio) ──
|
|
69
|
+
export * from './lib/core/models/api.model';
|
|
70
|
+
export * from './lib/core/models/schema-descriptions';
|
|
71
|
+
export * from './lib/fields/field-node';
|
|
72
|
+
export * from './lib/layouts/descriptors';
|
|
73
|
+
export * from './lib/views/descriptors';
|
|
74
|
+
|
|
75
|
+
// ── Composición de vistas (validación + profundidad máxima) ─────────────
|
|
76
|
+
export {
|
|
77
|
+
MAX_DEPTH,
|
|
78
|
+
SchemaCompositionError,
|
|
79
|
+
validateComposition,
|
|
80
|
+
} from './lib/core/registry/composition-validator';
|
|
81
|
+
|
|
82
|
+
// ── Vocabulario de validadores (contract-check back ↔ front) ──────────
|
|
83
|
+
export type { ValidatorName } from './lib/core/registry/field-validators';
|
|
84
|
+
|
|
85
|
+
// ── Utilidades públicas (interpolación de templates en schemas) ────────
|
|
86
|
+
export { interpolateTemplate } from './lib/core/utils/template-interpolator';
|
|
87
|
+
|
|
88
|
+
// ── Registro público de render (campos/widgets/vistas/columnas custom) ─
|
|
89
|
+
export {
|
|
90
|
+
get as getRenderDescriptor,
|
|
91
|
+
isSupported,
|
|
92
|
+
isSupported as isRenderSupported,
|
|
93
|
+
provideRenderDescriptors,
|
|
94
|
+
register as registerRenderDescriptor,
|
|
95
|
+
renderKinds,
|
|
96
|
+
unregister as unregisterRenderDescriptor,
|
|
97
|
+
} from './lib/core/registry/render-registry';
|
|
98
|
+
export type {
|
|
99
|
+
ComponentRenderKind,
|
|
100
|
+
RenderKind,
|
|
101
|
+
} from './lib/core/registry/render-registry';
|
|
102
|
+
|
|
103
|
+
// ── Acciones (registro y tipos) ────────────────────────────────────────
|
|
104
|
+
export * from './lib/actions/action-registry';
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
+
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
+
{
|
|
4
|
+
"extends": "../../tsconfig.json",
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"outDir": "../../out-tsc/lib",
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationMap": true,
|
|
9
|
+
"types": []
|
|
10
|
+
},
|
|
11
|
+
"include": ["src/**/*.ts"],
|
|
12
|
+
"exclude": ["**/*.spec.ts"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
+
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
+
{
|
|
4
|
+
"extends": "./tsconfig.lib.json",
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"declarationMap": false
|
|
7
|
+
},
|
|
8
|
+
"angularCompilerOptions": {
|
|
9
|
+
"compilationMode": "partial"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
|
2
|
+
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
|
3
|
+
{
|
|
4
|
+
"extends": "../../tsconfig.json",
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"outDir": "../../out-tsc/spec",
|
|
7
|
+
"types": ["vitest/globals"]
|
|
8
|
+
},
|
|
9
|
+
"include": ["src/**/*.d.ts", "src/**/*.spec.ts"]
|
|
10
|
+
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import { Component, computed, input } from "@angular/core";
|
|
3
|
-
const KINDS = {
|
|
4
|
-
success: "bg-success text-surface",
|
|
5
|
-
danger: "bg-danger text-surface",
|
|
6
|
-
warning: "bg-accent/20 text-accent-text font-semibold",
|
|
7
|
-
info: "bg-primary text-surface",
|
|
8
|
-
neutral: "bg-neutral text-surface"
|
|
9
|
-
};
|
|
10
|
-
var Badge = class Badge {
|
|
11
|
-
label = input.required(...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
12
|
-
kind = input("neutral", ...ngDevMode ? [{ debugName: "kind" }] : /* istanbul ignore next */ []);
|
|
13
|
-
classes = computed(() => `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${KINDS[this.kind()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
14
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
15
|
-
minVersion: "12.0.0",
|
|
16
|
-
version: "22.2.3",
|
|
17
|
-
ngImport: i0,
|
|
18
|
-
type: Badge,
|
|
19
|
-
deps: [],
|
|
20
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
21
|
-
});
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
23
|
-
minVersion: "17.1.0",
|
|
24
|
-
version: "22.2.3",
|
|
25
|
-
type: Badge,
|
|
26
|
-
isStandalone: true,
|
|
27
|
-
selector: "app-badge",
|
|
28
|
-
inputs: {
|
|
29
|
-
label: {
|
|
30
|
-
classPropertyName: "label",
|
|
31
|
-
publicName: "label",
|
|
32
|
-
isSignal: true,
|
|
33
|
-
isRequired: true,
|
|
34
|
-
transformFunction: null
|
|
35
|
-
},
|
|
36
|
-
kind: {
|
|
37
|
-
classPropertyName: "kind",
|
|
38
|
-
publicName: "kind",
|
|
39
|
-
isSignal: true,
|
|
40
|
-
isRequired: false,
|
|
41
|
-
transformFunction: null
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
host: { properties: { "class": "classes()" } },
|
|
45
|
-
ngImport: i0,
|
|
46
|
-
template: `{{ label() }}`,
|
|
47
|
-
isInline: true
|
|
48
|
-
});
|
|
49
|
-
};
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
51
|
-
minVersion: "12.0.0",
|
|
52
|
-
version: "22.2.3",
|
|
53
|
-
ngImport: i0,
|
|
54
|
-
type: Badge,
|
|
55
|
-
decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{
|
|
58
|
-
selector: "app-badge",
|
|
59
|
-
host: { "[class]": "classes()" },
|
|
60
|
-
template: `{{ label() }}`
|
|
61
|
-
}]
|
|
62
|
-
}],
|
|
63
|
-
propDecorators: {
|
|
64
|
-
label: [{
|
|
65
|
-
type: i0.Input,
|
|
66
|
-
args: [{
|
|
67
|
-
isSignal: true,
|
|
68
|
-
alias: "label",
|
|
69
|
-
required: true
|
|
70
|
-
}]
|
|
71
|
-
}],
|
|
72
|
-
kind: [{
|
|
73
|
-
type: i0.Input,
|
|
74
|
-
args: [{
|
|
75
|
-
isSignal: true,
|
|
76
|
-
alias: "kind",
|
|
77
|
-
required: false
|
|
78
|
-
}]
|
|
79
|
-
}]
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
export { Badge as t };
|
|
83
|
-
|
|
84
|
-
//# sourceMappingURL=tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/shared/components/badge/badge.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nexport type BadgeKind = 'success' | 'danger' | 'warning' | 'info' | 'neutral';\n\nconst KINDS: Record<BadgeKind, string> = {\n success: 'bg-success text-surface',\n danger: 'bg-danger text-surface',\n warning: 'bg-accent/20 text-accent-text font-semibold',\n info: 'bg-primary text-surface',\n neutral: 'bg-neutral text-surface',\n};\n\n/**\n * Etiqueta compacta (booleanos, estados).\n *\n * El texto va con `text-surface` y no `text-white` porque el fondo lo da\n * el token y en oscuro se aclara: blanco sobre `--color-danger` oscuro\n * sería 2,8:1. `--color-surface` vale #fff en claro, así que el render\n * actual no cambia, y en oscuro el texto se vuelve oscuro sobre el tono\n * aclarado (6,4–9,2:1).\n */\n@Component({\n selector: 'app-badge',\n host: { '[class]': 'classes()' },\n template: `{{ label() }}`,\n})\nexport class Badge {\n readonly label = input.required<string>();\n readonly kind = input<BadgeKind>('neutral');\n\n readonly classes = computed(\n () =>\n `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${KINDS[this.kind()]}`,\n );\n}\n"],"mappings":";;AAIA,MAAM,QAAmC;CACvC,SAAS;CACT,QAAQ;CACR,SAAS;CACT,MAAM;CACN,SAAS;AACV;AAgBD,IAAa,QAAb,MAAa,MAAK;CACP,QAAQ,MAAM,SAAkB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAChC,OAAO,MAAiB,WAAU,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAElC,UAAU,eAEf,yEAAyE,MAAM,KAAK,KAAI,MAC3F,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAPU,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAK,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAL,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAK,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,YAAA,EAAA;EAAA,UAAA;EAAA,UAFN;EAAe,UAAA;CAAA,CAAA;;AAEd,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAK,YAAA,CAAA;EALjB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,MAAM,EAAE,WAAW,YAAW;GAC9B,UAAU;EACX,CAAA"}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import { Component, computed, input } from "@angular/core";
|
|
3
|
-
var BarChart = class BarChart {
|
|
4
|
-
label = input.required(...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
|
|
5
|
-
data = input([], ...ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []);
|
|
6
|
-
unit = input("", ...ngDevMode ? [{ debugName: "unit" }] : /* istanbul ignore next */ []);
|
|
7
|
-
max = computed(() => Math.max(0, ...this.data().map((row) => row.value)), ...ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []);
|
|
8
|
-
height(value) {
|
|
9
|
-
if (value === 0) return 0;
|
|
10
|
-
const max = this.max();
|
|
11
|
-
if (max === 0) return 0;
|
|
12
|
-
return Math.max(2, value / max * 100);
|
|
13
|
-
}
|
|
14
|
-
summary = computed(() => {
|
|
15
|
-
const rows = this.data();
|
|
16
|
-
if (rows.length === 0) return "Sin datos.";
|
|
17
|
-
const top = rows.reduce((best, row) => row.value > best.value ? row : best, rows[0]);
|
|
18
|
-
const unit = this.unit();
|
|
19
|
-
return `${rows.length} categorías. Mayor: ${top.label} con ${top.value}${unit}. Menor: ${rows.reduce((low, row) => row.value < low.value ? row : low, rows[0]).label}.`;
|
|
20
|
-
}, ...ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []);
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
22
|
-
minVersion: "12.0.0",
|
|
23
|
-
version: "22.2.3",
|
|
24
|
-
ngImport: i0,
|
|
25
|
-
type: BarChart,
|
|
26
|
-
deps: [],
|
|
27
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
28
|
-
});
|
|
29
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
30
|
-
minVersion: "17.0.0",
|
|
31
|
-
version: "22.2.3",
|
|
32
|
-
type: BarChart,
|
|
33
|
-
isStandalone: true,
|
|
34
|
-
selector: "app-bar-chart",
|
|
35
|
-
inputs: {
|
|
36
|
-
label: {
|
|
37
|
-
classPropertyName: "label",
|
|
38
|
-
publicName: "label",
|
|
39
|
-
isSignal: true,
|
|
40
|
-
isRequired: true,
|
|
41
|
-
transformFunction: null
|
|
42
|
-
},
|
|
43
|
-
data: {
|
|
44
|
-
classPropertyName: "data",
|
|
45
|
-
publicName: "data",
|
|
46
|
-
isSignal: true,
|
|
47
|
-
isRequired: false,
|
|
48
|
-
transformFunction: null
|
|
49
|
-
},
|
|
50
|
-
unit: {
|
|
51
|
-
classPropertyName: "unit",
|
|
52
|
-
publicName: "unit",
|
|
53
|
-
isSignal: true,
|
|
54
|
-
isRequired: false,
|
|
55
|
-
transformFunction: null
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
ngImport: i0,
|
|
59
|
-
template: `
|
|
60
|
-
<div class="rounded-lg border border-neutral/20 bg-surface p-4">
|
|
61
|
-
<p class="mb-3 text-sm text-neutral">{{ label() }}</p>
|
|
62
|
-
|
|
63
|
-
@if (data().length === 0) {
|
|
64
|
-
<p class="text-sm text-neutral/60" data-testid="empty">Sin datos.</p>
|
|
65
|
-
} @else {
|
|
66
|
-
<div role="img" [attr.aria-label]="summary()" class="flex h-32 items-end gap-2">
|
|
67
|
-
@for (row of data(); track row.label) {
|
|
68
|
-
<div class="flex min-w-0 flex-1 flex-col items-center justify-end gap-1">
|
|
69
|
-
<span class="text-xs tabular-nums text-neutral"> {{ row.value }}{{ unit() }} </span>
|
|
70
|
-
<div class="w-full rounded-t bg-primary" [style.height.%]="height(row.value)"></div>
|
|
71
|
-
<span class="w-full truncate text-center text-xs text-neutral">{{ row.label }}</span>
|
|
72
|
-
</div>
|
|
73
|
-
}
|
|
74
|
-
</div>
|
|
75
|
-
}
|
|
76
|
-
</div>
|
|
77
|
-
`,
|
|
78
|
-
isInline: true
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
82
|
-
minVersion: "12.0.0",
|
|
83
|
-
version: "22.2.3",
|
|
84
|
-
ngImport: i0,
|
|
85
|
-
type: BarChart,
|
|
86
|
-
decorators: [{
|
|
87
|
-
type: Component,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: "app-bar-chart",
|
|
90
|
-
template: `
|
|
91
|
-
<div class="rounded-lg border border-neutral/20 bg-surface p-4">
|
|
92
|
-
<p class="mb-3 text-sm text-neutral">{{ label() }}</p>
|
|
93
|
-
|
|
94
|
-
@if (data().length === 0) {
|
|
95
|
-
<p class="text-sm text-neutral/60" data-testid="empty">Sin datos.</p>
|
|
96
|
-
} @else {
|
|
97
|
-
<div role="img" [attr.aria-label]="summary()" class="flex h-32 items-end gap-2">
|
|
98
|
-
@for (row of data(); track row.label) {
|
|
99
|
-
<div class="flex min-w-0 flex-1 flex-col items-center justify-end gap-1">
|
|
100
|
-
<span class="text-xs tabular-nums text-neutral"> {{ row.value }}{{ unit() }} </span>
|
|
101
|
-
<div class="w-full rounded-t bg-primary" [style.height.%]="height(row.value)"></div>
|
|
102
|
-
<span class="w-full truncate text-center text-xs text-neutral">{{ row.label }}</span>
|
|
103
|
-
</div>
|
|
104
|
-
}
|
|
105
|
-
</div>
|
|
106
|
-
}
|
|
107
|
-
</div>
|
|
108
|
-
`
|
|
109
|
-
}]
|
|
110
|
-
}],
|
|
111
|
-
propDecorators: {
|
|
112
|
-
label: [{
|
|
113
|
-
type: i0.Input,
|
|
114
|
-
args: [{
|
|
115
|
-
isSignal: true,
|
|
116
|
-
alias: "label",
|
|
117
|
-
required: true
|
|
118
|
-
}]
|
|
119
|
-
}],
|
|
120
|
-
data: [{
|
|
121
|
-
type: i0.Input,
|
|
122
|
-
args: [{
|
|
123
|
-
isSignal: true,
|
|
124
|
-
alias: "data",
|
|
125
|
-
required: false
|
|
126
|
-
}]
|
|
127
|
-
}],
|
|
128
|
-
unit: [{
|
|
129
|
-
type: i0.Input,
|
|
130
|
-
args: [{
|
|
131
|
-
isSignal: true,
|
|
132
|
-
alias: "unit",
|
|
133
|
-
required: false
|
|
134
|
-
}]
|
|
135
|
-
}]
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
export { BarChart };
|
|
139
|
-
|
|
140
|
-
//# sourceMappingURL=tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/widgets/bar-chart/bar-chart.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nexport interface BarDatum {\n label: string;\n value: number;\n}\n\n/**\n * Barras por categoría, sin librería: se dibujan con CSS y un `@for` de\n * Angular (~1 K gz frente a los 61,4 K de Chart.js — viabilidad B2.1).\n *\n * Accesibilidad (plan 3.2): la grilla es `role=\"img\"` con un `aria-label`\n * que resume los datos, de modo que un lector de pantalla no recorra cada\n * barra suelta sino que escuche «8 categorías. Mayor: …».\n */\n@Component({\n selector: 'app-bar-chart',\n template: `\n <div class=\"rounded-lg border border-neutral/20 bg-surface p-4\">\n <p class=\"mb-3 text-sm text-neutral\">{{ label() }}</p>\n\n @if (data().length === 0) {\n <p class=\"text-sm text-neutral/60\" data-testid=\"empty\">Sin datos.</p>\n } @else {\n <div role=\"img\" [attr.aria-label]=\"summary()\" class=\"flex h-32 items-end gap-2\">\n @for (row of data(); track row.label) {\n <div class=\"flex min-w-0 flex-1 flex-col items-center justify-end gap-1\">\n <span class=\"text-xs tabular-nums text-neutral\"> {{ row.value }}{{ unit() }} </span>\n <div class=\"w-full rounded-t bg-primary\" [style.height.%]=\"height(row.value)\"></div>\n <span class=\"w-full truncate text-center text-xs text-neutral\">{{ row.label }}</span>\n </div>\n }\n </div>\n }\n </div>\n `,\n})\nexport class BarChart {\n /** Título del gráfico. */\n readonly label = input.required<string>();\n /** Series a dibujar; vacío ⇒ estado «Sin datos». */\n readonly data = input<BarDatum[]>([]);\n /** Sufijo de las cifras del eje («unidades», «S/»). */\n readonly unit = input('');\n\n private readonly max = computed(() => Math.max(0, ...this.data().map((row) => row.value)));\n\n /**\n * Altura relativa de una barra. `max = 0` ⇒ 0 % (nada de división por\n * cero); un valor de 0 se queda en 0, y los demás bajan a un 2 % mínimo\n * para que la barra siga siendo visible.\n */\n protected height(value: number): number {\n if (value === 0) {\n return 0;\n }\n const max = this.max();\n if (max === 0) {\n return 0;\n }\n return Math.max(2, (value / max) * 100);\n }\n\n protected readonly summary = computed(() => {\n const rows = this.data();\n if (rows.length === 0) {\n return 'Sin datos.';\n }\n const top = rows.reduce((best, row) => (row.value > best.value ? row : best), rows[0]);\n const unit = this.unit();\n return (\n `${rows.length} categorías. Mayor: ${top.label} con ${top.value}${unit}. ` +\n `Menor: ${rows.reduce((low, row) => (row.value < low.value ? row : low), rows[0]).label}.`\n );\n });\n}\n"],"mappings":";;AAqCA,IAAa,WAAb,MAAa,SAAQ;CAEV,QAAQ,MAAM,SAAkB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAEhC,OAAO,MAAkB,CAAA,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAER,MAAM,eAAe,KAAK,IAAI,GAAG,GAAG,KAAK,KAAI,CAAE,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,+BAAA,CAAA,CAAA;CAOhF,OAAO,OAAa;EAC5B,IAAI,UAAU,GACZ,OAAO;EAET,MAAM,MAAM,KAAK,IAAG;EACpB,IAAI,QAAQ,GACV,OAAO;EAET,OAAO,KAAK,IAAI,GAAI,QAAQ,MAAO,GAAG;CACxC;CAEmB,UAAU,eAAc;EACzC,MAAM,OAAO,KAAK,KAAI;EACtB,IAAI,KAAK,WAAW,GAClB,OAAO;EAET,MAAM,MAAM,KAAK,QAAQ,MAAM,QAAS,IAAI,QAAQ,KAAK,QAAQ,MAAM,MAAO,KAAK,EAAE;EACrF,MAAM,OAAO,KAAK,KAAI;EACtB,OACE,GAAG,KAAK,OAAM,sBAAuB,IAAI,MAAK,OAAQ,IAAI,QAAQ,KAAI,WAC5D,KAAK,QAAQ,KAAK,QAAS,IAAI,QAAQ,IAAI,QAAQ,MAAM,KAAM,KAAK,EAAE,CAAC,CAAC,MAAK;CAE3F,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CArCS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAQ,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAR,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAQ,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UApBT;;;;;;;;;;;;;;;;;;;EAkBT,UAAA;CAAA,CAAA;;AAEU,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAQ,YAAA,CAAA;EAtBpB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,UAAU;;;;;;;;;;;;;;;;;;;EAmBX,CAAA"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { n as FieldAria } from "./tinya-code-gas-admin-ui-field-aria-BD1Wiggc.mjs";
|
|
2
|
-
import { t as childTree } from "./tinya-code-gas-admin-ui-field-node-CIK6KNN_.mjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import { Component, computed, input } from "@angular/core";
|
|
5
|
-
import { FormField } from "@angular/forms/signals";
|
|
6
|
-
var FieldBoolean = class FieldBoolean {
|
|
7
|
-
field = input.required(...ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []);
|
|
8
|
-
tree = input.required(...ngDevMode ? [{ debugName: "tree" }] : /* istanbul ignore next */ []);
|
|
9
|
-
node = computed(() => childTree(this.tree(), this.field().key), ...ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []);
|
|
10
|
-
state = computed(() => this.node()(), ...ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []);
|
|
11
|
-
currentLabel = computed(() => {
|
|
12
|
-
const on = this.state().value() === true;
|
|
13
|
-
const field = this.field();
|
|
14
|
-
if (on) return field.trueLabel ?? "Sí";
|
|
15
|
-
return field.falseLabel ?? "No";
|
|
16
|
-
}, ...ngDevMode ? [{ debugName: "currentLabel" }] : /* istanbul ignore next */ []);
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
18
|
-
minVersion: "12.0.0",
|
|
19
|
-
version: "22.2.3",
|
|
20
|
-
ngImport: i0,
|
|
21
|
-
type: FieldBoolean,
|
|
22
|
-
deps: [],
|
|
23
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
24
|
-
});
|
|
25
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
26
|
-
minVersion: "17.1.0",
|
|
27
|
-
version: "22.2.3",
|
|
28
|
-
type: FieldBoolean,
|
|
29
|
-
isStandalone: true,
|
|
30
|
-
selector: "app-field-boolean",
|
|
31
|
-
inputs: {
|
|
32
|
-
field: {
|
|
33
|
-
classPropertyName: "field",
|
|
34
|
-
publicName: "field",
|
|
35
|
-
isSignal: true,
|
|
36
|
-
isRequired: true,
|
|
37
|
-
transformFunction: null
|
|
38
|
-
},
|
|
39
|
-
tree: {
|
|
40
|
-
classPropertyName: "tree",
|
|
41
|
-
publicName: "tree",
|
|
42
|
-
isSignal: true,
|
|
43
|
-
isRequired: true,
|
|
44
|
-
transformFunction: null
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
ngImport: i0,
|
|
48
|
-
template: `
|
|
49
|
-
<label class="inline-flex cursor-pointer items-center gap-2">
|
|
50
|
-
<input type="checkbox" class="peer sr-only" [id]="state().name()" [formField]="node()" />
|
|
51
|
-
<span
|
|
52
|
-
class="relative h-5 w-9 shrink-0 rounded-full bg-neutral/30 transition-colors peer-checked:bg-primary after:absolute after:top-0.5 after:left-0.5 after:h-4 after:w-4 after:rounded-full after:bg-white after:transition-transform after:content-[''] peer-checked:after:translate-x-4"
|
|
53
|
-
></span>
|
|
54
|
-
<span class="text-sm">{{ currentLabel() }}</span>
|
|
55
|
-
</label>
|
|
56
|
-
`,
|
|
57
|
-
isInline: true,
|
|
58
|
-
dependencies: [{
|
|
59
|
-
kind: "directive",
|
|
60
|
-
type: FieldAria,
|
|
61
|
-
selector: "input[id], select[id], textarea[id], output[id]"
|
|
62
|
-
}, {
|
|
63
|
-
kind: "directive",
|
|
64
|
-
type: FormField,
|
|
65
|
-
selector: "[formField]",
|
|
66
|
-
inputs: ["formField"],
|
|
67
|
-
exportAs: ["formField"]
|
|
68
|
-
}]
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
72
|
-
minVersion: "12.0.0",
|
|
73
|
-
version: "22.2.3",
|
|
74
|
-
ngImport: i0,
|
|
75
|
-
type: FieldBoolean,
|
|
76
|
-
decorators: [{
|
|
77
|
-
type: Component,
|
|
78
|
-
args: [{
|
|
79
|
-
selector: "app-field-boolean",
|
|
80
|
-
imports: [FieldAria, FormField],
|
|
81
|
-
template: `
|
|
82
|
-
<label class="inline-flex cursor-pointer items-center gap-2">
|
|
83
|
-
<input type="checkbox" class="peer sr-only" [id]="state().name()" [formField]="node()" />
|
|
84
|
-
<span
|
|
85
|
-
class="relative h-5 w-9 shrink-0 rounded-full bg-neutral/30 transition-colors peer-checked:bg-primary after:absolute after:top-0.5 after:left-0.5 after:h-4 after:w-4 after:rounded-full after:bg-white after:transition-transform after:content-[''] peer-checked:after:translate-x-4"
|
|
86
|
-
></span>
|
|
87
|
-
<span class="text-sm">{{ currentLabel() }}</span>
|
|
88
|
-
</label>
|
|
89
|
-
`
|
|
90
|
-
}]
|
|
91
|
-
}],
|
|
92
|
-
propDecorators: {
|
|
93
|
-
field: [{
|
|
94
|
-
type: i0.Input,
|
|
95
|
-
args: [{
|
|
96
|
-
isSignal: true,
|
|
97
|
-
alias: "field",
|
|
98
|
-
required: true
|
|
99
|
-
}]
|
|
100
|
-
}],
|
|
101
|
-
tree: [{
|
|
102
|
-
type: i0.Input,
|
|
103
|
-
args: [{
|
|
104
|
-
isSignal: true,
|
|
105
|
-
alias: "tree",
|
|
106
|
-
required: true
|
|
107
|
-
}]
|
|
108
|
-
}]
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
export { FieldBoolean };
|
|
112
|
-
|
|
113
|
-
//# sourceMappingURL=tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/boolean/boolean.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { FormField } from '@angular/forms/signals';\n\nimport type { BooleanField } from '../../core/models/schema.model';\nimport { FieldAria } from '../field-aria';\nimport { childTree, type RootTree } from '../field-node';\n\n/**\n * Interruptor booleano (base.md §5.1) con `trueLabel`/`falseLabel`.\n * Checkbox nativo + `formField` (se estiliza como switch con `peer-checked`).\n */\n@Component({\n selector: 'app-field-boolean',\n imports: [FieldAria, FormField],\n template: `\n <label class=\"inline-flex cursor-pointer items-center gap-2\">\n <input type=\"checkbox\" class=\"peer sr-only\" [id]=\"state().name()\" [formField]=\"node()\" />\n <span\n class=\"relative h-5 w-9 shrink-0 rounded-full bg-neutral/30 transition-colors peer-checked:bg-primary after:absolute after:top-0.5 after:left-0.5 after:h-4 after:w-4 after:rounded-full after:bg-white after:transition-transform after:content-[''] peer-checked:after:translate-x-4\"\n ></span>\n <span class=\"text-sm\">{{ currentLabel() }}</span>\n </label>\n `,\n})\nexport class FieldBoolean {\n readonly field = input.required<BooleanField>();\n readonly tree = input.required<RootTree>();\n\n protected readonly node = computed(() => childTree<boolean>(this.tree(), this.field().key));\n protected readonly state = computed(() => this.node()());\n\n protected readonly currentLabel = computed(() => {\n const on = this.state().value() === true;\n const field = this.field();\n if (on) {\n return field.trueLabel ?? 'Sí';\n }\n return field.falseLabel ?? 'No';\n });\n}\n"],"mappings":";;;;;AAwBA,IAAa,eAAb,MAAa,aAAY;CACd,QAAQ,MAAM,SAAwB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACtC,OAAO,MAAM,SAAoB,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAEvB,OAAO,eAAe,UAAmB,KAAK,KAAI,GAAI,KAAK,MAAK,CAAE,CAAC,GAAG,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CACxE,QAAQ,eAAe,KAAK,KAAI,CAAE,CAAA,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAErC,eAAe,eAAc;EAC9C,MAAM,KAAK,KAAK,MAAK,CAAE,CAAC,MAAK,MAAO;EACpC,MAAM,QAAQ,KAAK,MAAK;EACxB,IAAI,IACF,OAAO,MAAM,aAAa;EAE5B,OAAO,MAAM,cAAc;CAC7B,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,eAAA,CAAA,+BAAA,CAAA,CAAA;CAdS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAY,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAZ,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAY,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UAVb;;;;;;;;;EAQT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MATS;GAAS,UAAA;EAAA,GAAA;GAAA,MAAA;GAAA,MAAE;GAAS,UAAA;GAAA,QAAA,CAAA,WAAA;GAAA,UAAA,CAAA,WAAA;EAAA,CAAA;CAAA,CAAA;;AAWnB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAY,YAAA,CAAA;EAbxB,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,WAAW,SAAS;GAC9B,UAAU;;;;;;;;;EASX,CAAA"}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import { Component, computed, input } from "@angular/core";
|
|
3
|
-
const BASE = "inline-flex cursor-pointer items-center justify-center gap-2 rounded-lg font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:cursor-not-allowed disabled:opacity-50";
|
|
4
|
-
const VARIANTS = {
|
|
5
|
-
primary: "bg-primary text-surface hover:bg-primary/90",
|
|
6
|
-
outline: "border border-neutral/40 bg-surface text-neutral hover:bg-neutral/10",
|
|
7
|
-
danger: "bg-danger text-surface hover:bg-danger/90",
|
|
8
|
-
ghost: "text-neutral hover:bg-neutral/10"
|
|
9
|
-
};
|
|
10
|
-
const SIZES = {
|
|
11
|
-
md: "px-4 py-2 text-sm min-h-11 lg:min-h-0",
|
|
12
|
-
sm: "px-2 py-1 text-xs min-h-11 lg:min-h-0",
|
|
13
|
-
icon: "p-1 min-h-11 min-w-11 lg:min-h-0 lg:min-w-0"
|
|
14
|
-
};
|
|
15
|
-
var Button = class Button {
|
|
16
|
-
variant = input("primary", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
|
|
17
|
-
size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
|
|
18
|
-
type = input("button", ...ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []);
|
|
19
|
-
disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
|
|
20
|
-
loading = input(false, ...ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []);
|
|
21
|
-
classes = computed(() => `${BASE} ${VARIANTS[this.variant()]} ${SIZES[this.size()]}`, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
23
|
-
minVersion: "12.0.0",
|
|
24
|
-
version: "22.2.3",
|
|
25
|
-
ngImport: i0,
|
|
26
|
-
type: Button,
|
|
27
|
-
deps: [],
|
|
28
|
-
target: i0.ɵɵFactoryTarget.Component
|
|
29
|
-
});
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
31
|
-
minVersion: "17.0.0",
|
|
32
|
-
version: "22.2.3",
|
|
33
|
-
type: Button,
|
|
34
|
-
isStandalone: true,
|
|
35
|
-
selector: "button[app-button]",
|
|
36
|
-
inputs: {
|
|
37
|
-
variant: {
|
|
38
|
-
classPropertyName: "variant",
|
|
39
|
-
publicName: "variant",
|
|
40
|
-
isSignal: true,
|
|
41
|
-
isRequired: false,
|
|
42
|
-
transformFunction: null
|
|
43
|
-
},
|
|
44
|
-
size: {
|
|
45
|
-
classPropertyName: "size",
|
|
46
|
-
publicName: "size",
|
|
47
|
-
isSignal: true,
|
|
48
|
-
isRequired: false,
|
|
49
|
-
transformFunction: null
|
|
50
|
-
},
|
|
51
|
-
type: {
|
|
52
|
-
classPropertyName: "type",
|
|
53
|
-
publicName: "type",
|
|
54
|
-
isSignal: true,
|
|
55
|
-
isRequired: false,
|
|
56
|
-
transformFunction: null
|
|
57
|
-
},
|
|
58
|
-
disabled: {
|
|
59
|
-
classPropertyName: "disabled",
|
|
60
|
-
publicName: "disabled",
|
|
61
|
-
isSignal: true,
|
|
62
|
-
isRequired: false,
|
|
63
|
-
transformFunction: null
|
|
64
|
-
},
|
|
65
|
-
loading: {
|
|
66
|
-
classPropertyName: "loading",
|
|
67
|
-
publicName: "loading",
|
|
68
|
-
isSignal: true,
|
|
69
|
-
isRequired: false,
|
|
70
|
-
transformFunction: null
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
host: { properties: {
|
|
74
|
-
"class": "classes()",
|
|
75
|
-
"type": "type()",
|
|
76
|
-
"disabled": "disabled() || loading()",
|
|
77
|
-
"attr.aria-busy": "loading() || null"
|
|
78
|
-
} },
|
|
79
|
-
ngImport: i0,
|
|
80
|
-
template: `
|
|
81
|
-
@if (loading()) {
|
|
82
|
-
<span
|
|
83
|
-
class="size-4 animate-spin rounded-full border-2 border-current border-t-transparent"
|
|
84
|
-
aria-hidden="true"
|
|
85
|
-
></span>
|
|
86
|
-
}
|
|
87
|
-
<ng-content />
|
|
88
|
-
`,
|
|
89
|
-
isInline: true
|
|
90
|
-
});
|
|
91
|
-
};
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({
|
|
93
|
-
minVersion: "12.0.0",
|
|
94
|
-
version: "22.2.3",
|
|
95
|
-
ngImport: i0,
|
|
96
|
-
type: Button,
|
|
97
|
-
decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{
|
|
100
|
-
selector: "button[app-button]",
|
|
101
|
-
host: {
|
|
102
|
-
"[class]": "classes()",
|
|
103
|
-
"[type]": "type()",
|
|
104
|
-
"[disabled]": "disabled() || loading()",
|
|
105
|
-
"[attr.aria-busy]": "loading() || null"
|
|
106
|
-
},
|
|
107
|
-
template: `
|
|
108
|
-
@if (loading()) {
|
|
109
|
-
<span
|
|
110
|
-
class="size-4 animate-spin rounded-full border-2 border-current border-t-transparent"
|
|
111
|
-
aria-hidden="true"
|
|
112
|
-
></span>
|
|
113
|
-
}
|
|
114
|
-
<ng-content />
|
|
115
|
-
`
|
|
116
|
-
}]
|
|
117
|
-
}],
|
|
118
|
-
propDecorators: {
|
|
119
|
-
variant: [{
|
|
120
|
-
type: i0.Input,
|
|
121
|
-
args: [{
|
|
122
|
-
isSignal: true,
|
|
123
|
-
alias: "variant",
|
|
124
|
-
required: false
|
|
125
|
-
}]
|
|
126
|
-
}],
|
|
127
|
-
size: [{
|
|
128
|
-
type: i0.Input,
|
|
129
|
-
args: [{
|
|
130
|
-
isSignal: true,
|
|
131
|
-
alias: "size",
|
|
132
|
-
required: false
|
|
133
|
-
}]
|
|
134
|
-
}],
|
|
135
|
-
type: [{
|
|
136
|
-
type: i0.Input,
|
|
137
|
-
args: [{
|
|
138
|
-
isSignal: true,
|
|
139
|
-
alias: "type",
|
|
140
|
-
required: false
|
|
141
|
-
}]
|
|
142
|
-
}],
|
|
143
|
-
disabled: [{
|
|
144
|
-
type: i0.Input,
|
|
145
|
-
args: [{
|
|
146
|
-
isSignal: true,
|
|
147
|
-
alias: "disabled",
|
|
148
|
-
required: false
|
|
149
|
-
}]
|
|
150
|
-
}],
|
|
151
|
-
loading: [{
|
|
152
|
-
type: i0.Input,
|
|
153
|
-
args: [{
|
|
154
|
-
isSignal: true,
|
|
155
|
-
alias: "loading",
|
|
156
|
-
required: false
|
|
157
|
-
}]
|
|
158
|
-
}]
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
export { Button as t };
|
|
162
|
-
|
|
163
|
-
//# sourceMappingURL=tinya-code-gas-admin-ui-button-BQjNW8KB.mjs.map
|