@gipisistemas/ngx-core 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -0
- package/animations/fly-in-out.animation.d.ts +24 -0
- package/animations/index.d.ts +2 -0
- package/animations/rotate.animation.d.ts +35 -0
- package/base/components/base-form-dialog.component.d.ts +47 -0
- package/base/components/base-form.component.d.ts +54 -0
- package/base/components/base-list-dialog.component.d.ts +69 -0
- package/base/components/base-list.component.d.ts +77 -0
- package/base/components/base.component.d.ts +62 -0
- package/base/index.d.ts +20 -0
- package/base/models/base-applied-filter.model.d.ts +8 -0
- package/base/models/base-authority.model.d.ts +6 -0
- package/base/models/base-filter.model.d.ts +16 -0
- package/base/models/base-form-dialog-data.model.d.ts +11 -0
- package/base/models/base-list-dialog-data.model.d.ts +10 -0
- package/base/models/base-menu.model.d.ts +25 -0
- package/base/models/base-page.model.d.ts +11 -0
- package/base/models/base-query-params.model.d.ts +12 -0
- package/base/models/base-sort.model.d.ts +8 -0
- package/base/models/base-token.model.d.ts +11 -0
- package/base/models/base-user.model.d.ts +18 -0
- package/base/models/base.model.d.ts +20 -0
- package/base/services/base-auth.service.d.ts +31 -0
- package/base/services/base-crud.service.d.ts +178 -0
- package/base/services/base.service.d.ts +97 -0
- package/components/action-row/action-row.component.d.ts +8 -0
- package/components/action-row/action-row.component.scss +26 -0
- package/components/action-row/index.d.ts +1 -0
- package/components/auto-focus/auto-focus.directive.d.ts +17 -0
- package/components/auto-focus/index.d.ts +1 -0
- package/components/avatar/avatar.component.d.ts +23 -0
- package/components/avatar/avatar.component.scss +155 -0
- package/components/avatar/index.d.ts +1 -0
- package/components/button/button.component.d.ts +74 -0
- package/components/button/button.component.scss +196 -0
- package/components/button/index.d.ts +1 -0
- package/components/button-group/button-group.component.d.ts +39 -0
- package/components/button-group/button-group.component.scss +89 -0
- package/components/button-group/index.d.ts +2 -0
- package/components/button-group/shared/button-group-option.model.d.ts +6 -0
- package/components/checkbox/checkbox.component.d.ts +74 -0
- package/components/checkbox/checkbox.component.scss +147 -0
- package/components/checkbox/index.d.ts +1 -0
- package/components/chips/chips.component.d.ts +46 -0
- package/components/chips/chips.component.scss +127 -0
- package/components/chips/index.d.ts +1 -0
- package/components/confirm-dialog/confirm-dialog.component.d.ts +17 -0
- package/components/confirm-dialog/confirm-dialog.component.scss +121 -0
- package/components/confirm-dialog/index.d.ts +4 -0
- package/components/confirm-dialog/shared/confirm-dialog-types.enum.d.ts +7 -0
- package/components/confirm-dialog/shared/confirm-dialog.model.d.ts +25 -0
- package/components/confirm-dialog/shared/confirm-dialog.service.d.ts +17 -0
- package/components/date-picker/date-picker.component.d.ts +55 -0
- package/components/date-picker/date-picker.component.scss +27 -0
- package/components/date-picker/index.d.ts +1 -0
- package/components/date-range-picker/date-range-picker.component.d.ts +66 -0
- package/components/date-range-picker/date-range-picker.component.scss +89 -0
- package/components/date-range-picker/index.d.ts +6 -0
- package/components/date-range-picker/shared/calendar/calendar.component.d.ts +27 -0
- package/components/date-range-picker/shared/calendar/calendar.component.scss +13 -0
- package/components/date-range-picker/shared/default-preset-date-options.d.ts +2 -0
- package/components/date-range-picker/shared/preset-key.enum.d.ts +11 -0
- package/components/date-range-picker/shared/range-selection-strategy.service.d.ts +11 -0
- package/components/date-range-picker/shared/select-date-option.interface.d.ts +32 -0
- package/components/date-range-picker/shared/selected-date-event.interface.d.ts +6 -0
- package/components/datetime-picker/datetime-picker.component.d.ts +68 -0
- package/components/datetime-picker/datetime-picker.component.scss +28 -0
- package/components/datetime-picker/index.d.ts +3 -0
- package/components/datetime-picker/shared/datetime-picker-intl.d.ts +29 -0
- package/components/datetime-picker/shared/moment-datetime-formats.d.ts +2 -0
- package/components/disable-auto-fill/disable-auto-fill.directive.d.ts +11 -0
- package/components/disable-auto-fill/index.d.ts +1 -0
- package/components/echarts/echarts.directive.d.ts +100 -0
- package/components/echarts/index.d.ts +4 -0
- package/components/echarts/shared/echarts-change-filter.d.ts +11 -0
- package/components/echarts/shared/echarts-config.interface.d.ts +5 -0
- package/components/echarts/shared/echarts-theme.type.d.ts +1 -0
- package/components/empty/empty.component.d.ts +13 -0
- package/components/empty/empty.component.scss +36 -0
- package/components/empty/index.d.ts +1 -0
- package/components/expansion-panel/expansion-panel.component.d.ts +36 -0
- package/components/expansion-panel/expansion-panel.component.scss +99 -0
- package/components/expansion-panel/index.d.ts +1 -0
- package/components/field-error/field-error.component.d.ts +95 -0
- package/components/field-error/field-error.component.scss +7 -0
- package/components/field-error/index.d.ts +2 -0
- package/components/field-error/shared/field-error-custom-validators.type.d.ts +2 -0
- package/components/flex-layout/flex-layout.directive.d.ts +44 -0
- package/components/flex-layout/index.d.ts +1 -0
- package/components/form-wrapper/form-wrapper.component.d.ts +15 -0
- package/components/form-wrapper/form-wrapper.component.scss +121 -0
- package/components/form-wrapper/index.d.ts +1 -0
- package/components/helpful-tip/helpful-tip.component.d.ts +11 -0
- package/components/helpful-tip/helpful-tip.component.scss +14 -0
- package/components/helpful-tip/index.d.ts +1 -0
- package/components/icon/icon.component.d.ts +61 -0
- package/components/icon/icon.component.scss +29 -0
- package/components/icon/index.d.ts +1 -0
- package/components/index.d.ts +46 -0
- package/components/input/index.d.ts +4 -0
- package/components/input/input.component.d.ts +81 -0
- package/components/input/input.component.scss +27 -0
- package/components/input/shared/input-prefix.directive.d.ts +5 -0
- package/components/input/shared/input-suffix.directive.d.ts +5 -0
- package/components/input/shared/input.directive.d.ts +26 -0
- package/components/input-currency/index.d.ts +1 -0
- package/components/input-currency/input-currency.component.d.ts +64 -0
- package/components/input-currency/input-currency.component.scss +27 -0
- package/components/input-group/index.d.ts +2 -0
- package/components/input-group/input-group-addon.component.d.ts +8 -0
- package/components/input-group/input-group.component.d.ts +14 -0
- package/components/input-group/input-group.component.scss +118 -0
- package/components/input-phone/index.d.ts +1 -0
- package/components/input-phone/input-phone.component.d.ts +62 -0
- package/components/input-phone/input-phone.component.scss +27 -0
- package/components/loading/index.d.ts +1 -0
- package/components/loading/loading.component.d.ts +13 -0
- package/components/loading/loading.component.scss +145 -0
- package/components/lozenge/index.d.ts +3 -0
- package/components/lozenge/lozenge.component.d.ts +20 -0
- package/components/lozenge/lozenge.component.scss +99 -0
- package/components/lozenge/shared/lozenge-fill.type.d.ts +4 -0
- package/components/lozenge/shared/lozenge-variant.type.d.ts +1 -0
- package/components/password-requeriments/index.d.ts +3 -0
- package/components/password-requeriments/password-requeriments.component.d.ts +27 -0
- package/components/password-requeriments/password-requeriments.component.scss +53 -0
- package/components/password-requeriments/shared/password-requeriments.interface.d.ts +5 -0
- package/components/password-requeriments/shared/password-validation.util.d.ts +71 -0
- package/components/popover/index.d.ts +4 -0
- package/components/popover/popover-target.directive.d.ts +8 -0
- package/components/popover/popover-trigger.directive.d.ts +135 -0
- package/components/popover/popover.component.d.ts +121 -0
- package/components/popover/popover.component.scss +26 -0
- package/components/popover/popover.module.d.ts +9 -0
- package/components/popover/shared/popover-animations.d.ts +14 -0
- package/components/popover/shared/popover-errors.d.ts +14 -0
- package/components/popover/shared/popover-types.type.d.ts +4 -0
- package/components/popover/shared/popover.interface.d.ts +24 -0
- package/components/radio-button/radio-button.component.scss +0 -0
- package/components/radio-group/index.d.ts +2 -0
- package/components/radio-group/radio-group.component.d.ts +57 -0
- package/components/radio-group/radio-group.component.scss +69 -0
- package/components/radio-group/shared/option-radio-group.type.d.ts +1 -0
- package/components/scroll-fade/index.d.ts +1 -0
- package/components/scroll-fade/scroll-fade.directive.d.ts +24 -0
- package/components/select/index.d.ts +4 -0
- package/components/select/select.component.d.ts +85 -0
- package/components/select/select.component.scss +52 -0
- package/components/select/shared/mat-select-media-tracker.d.ts +15 -0
- package/components/select/shared/mat-select-options-helper.d.ts +6 -0
- package/components/select/shared/mat-select-styles.scss +429 -0
- package/components/select/shared/mat-select.directive.d.ts +127 -0
- package/components/select-enum/index.d.ts +3 -0
- package/components/select-enum/select-enum.component.d.ts +65 -0
- package/components/select-enum/select-enum.component.scss +41 -0
- package/components/select-enum/shared/option-select-enum.type.d.ts +6 -0
- package/components/select-enum/shared/select-check-all.component.d.ts +15 -0
- package/components/sidenav/index.d.ts +1 -0
- package/components/sidenav/shared/sidenav-arrow-animations.d.ts +1 -0
- package/components/sidenav/sidenav.component.d.ts +47 -0
- package/components/sidenav/sidenav.component.scss +187 -0
- package/components/skeleton/index.d.ts +1 -0
- package/components/skeleton/skeleton.component.d.ts +37 -0
- package/components/skeleton/skeleton.component.scss +76 -0
- package/components/stepper/index.d.ts +2 -0
- package/components/stepper/step.component.d.ts +24 -0
- package/components/stepper/stepper.component.d.ts +20 -0
- package/components/stepper/stepper.component.scss +120 -0
- package/components/table/index.d.ts +9 -0
- package/components/table/shared/table-column-action-type.enum.d.ts +1 -0
- package/components/table/shared/table-column-align-type.enum.d.ts +6 -0
- package/components/table/shared/table-column-builder.model.d.ts +109 -0
- package/components/table/shared/table-column-condition.enum.d.ts +2 -0
- package/components/table/shared/table-column-partial.model.d.ts +6 -0
- package/components/table/shared/table-column.model.d.ts +80 -0
- package/components/table/shared/table-menu-item-context-builder.model.d.ts +61 -0
- package/components/table/shared/table-menu-item-context.model.d.ts +45 -0
- package/components/table/table.component.d.ts +184 -0
- package/components/table/table.component.scss +255 -0
- package/components/tabs/index.d.ts +2 -0
- package/components/tabs/tab-group.component.d.ts +24 -0
- package/components/tabs/tab.component.d.ts +30 -0
- package/components/tabs/tabs.component.scss +170 -0
- package/components/tag/index.d.ts +1 -0
- package/components/tag/tag.component.d.ts +26 -0
- package/components/tag/tag.component.scss +78 -0
- package/components/text-ellipsis/index.d.ts +1 -0
- package/components/text-ellipsis/text-ellipsis.directive.d.ts +15 -0
- package/components/textarea/index.d.ts +1 -0
- package/components/textarea/textarea.component.d.ts +72 -0
- package/components/textarea/textarea.component.scss +31 -0
- package/components/toast/index.d.ts +4 -0
- package/components/toast/shared/toast-types.enum.d.ts +7 -0
- package/components/toast/shared/toast.model.d.ts +7 -0
- package/components/toast/shared/toast.service.d.ts +12 -0
- package/components/toast/toast.component.d.ts +18 -0
- package/components/toast/toast.component.scss +135 -0
- package/components/toggle-switch/index.d.ts +1 -0
- package/components/toggle-switch/toggle-switch.component.d.ts +49 -0
- package/components/toggle-switch/toggle-switch.component.scss +105 -0
- package/components/toolbar/index.d.ts +1 -0
- package/components/toolbar/toolbar.component.d.ts +9 -0
- package/components/toolbar/toolbar.component.scss +22 -0
- package/components/top-nav/index.d.ts +1 -0
- package/components/top-nav/top-nav.component.d.ts +9 -0
- package/components/top-nav/top-nav.component.scss +18 -0
- package/components/tree-table/index.d.ts +8 -0
- package/components/tree-table/shared/tree-table-arrow-animations.d.ts +1 -0
- package/components/tree-table/shared/tree-table-column-builder.model.d.ts +55 -0
- package/components/tree-table/shared/tree-table-column-condition.enum.d.ts +2 -0
- package/components/tree-table/shared/tree-table-column-partial.model.d.ts +6 -0
- package/components/tree-table/shared/tree-table-column.model.d.ts +40 -0
- package/components/tree-table/shared/tree-table-menu-item-context-builder.model.d.ts +61 -0
- package/components/tree-table/shared/tree-table-menu-item-context.model.d.ts +45 -0
- package/components/tree-table/tree-table.component.d.ts +91 -0
- package/components/tree-table/tree-table.component.scss +216 -0
- package/components/user-profile/index.d.ts +1 -0
- package/components/user-profile/shared/user-profile-arrow-animations.d.ts +1 -0
- package/components/user-profile/user-profile.component.d.ts +28 -0
- package/components/user-profile/user-profile.component.scss +76 -0
- package/decorators/debounce.decorator.d.ts +33 -0
- package/decorators/index.d.ts +1 -0
- package/enums/index.d.ts +3 -0
- package/enums/menu-type.enum.d.ts +6 -0
- package/enums/sort-direction.enum.d.ts +5 -0
- package/enums/type-operation-dialog.enum.d.ts +12 -0
- package/fesm2022/gipisistemas-ngx-core.mjs +19132 -0
- package/fesm2022/gipisistemas-ngx-core.mjs.map +1 -0
- package/guards/auth.guard.d.ts +3 -0
- package/guards/index.d.ts +2 -0
- package/guards/public.guard.d.ts +3 -0
- package/index.d.ts +5 -0
- package/interceptors/auth.interceptor.d.ts +2 -0
- package/interceptors/error.interceptor.d.ts +13 -0
- package/interceptors/index.d.ts +2 -0
- package/interfaces/index.d.ts +1 -0
- package/interfaces/permissions.interface.d.ts +10 -0
- package/package.json +59 -0
- package/pipes/index.d.ts +1 -0
- package/pipes/money.pipe.d.ts +20 -0
- package/public-api.d.ts +13 -0
- package/services/cacheable.service.d.ts +41 -0
- package/services/dialog.service.d.ts +65 -0
- package/services/file-saver.service.d.ts +11 -0
- package/services/filter-indexed-db.service.d.ts +100 -0
- package/services/filter-url.service.d.ts +81 -0
- package/services/index.d.ts +8 -0
- package/services/moment-date-adapter.service.d.ts +8 -0
- package/services/native-date-adapter.service.d.ts +8 -0
- package/services/svg-register.service.d.ts +33 -0
- package/theming/_breakpoints.scss +20 -0
- package/theming/_index.scss +19 -0
- package/theming/_palettes.scss +112 -0
- package/theming/_theme.scss +189 -0
- package/theming/_utils.scss +1424 -0
- package/tokens/allowed-public-routes.token.d.ts +26 -0
- package/tokens/app-messages.token.d.ts +13 -0
- package/tokens/base-auth-service.token.d.ts +5 -0
- package/tokens/echarts-core.token.d.ts +4 -0
- package/tokens/index.d.ts +6 -0
- package/tokens/ngx-currency-options.token.d.ts +5 -0
- package/tokens/paginator-intl.token.d.ts +5 -0
- package/types/booleanish.type.d.ts +1 -0
- package/types/implicit-template.type.d.ts +4 -0
- package/types/index.d.ts +8 -0
- package/types/mixable-object.type.d.ts +1 -0
- package/types/nullable.type.d.ts +1 -0
- package/types/numberish.type.d.ts +1 -0
- package/types/page-event.type.d.ts +6 -0
- package/types/uuid.type.d.ts +1 -0
- package/types/void-listener.type.d.ts +1 -0
- package/utils/array.util.d.ts +13 -0
- package/utils/css.util.d.ts +12 -0
- package/utils/currency.util.d.ts +83 -0
- package/utils/date.util.d.ts +166 -0
- package/utils/document.util.d.ts +126 -0
- package/utils/email.util.d.ts +19 -0
- package/utils/index.d.ts +14 -0
- package/utils/number-to-words.util.d.ts +17 -0
- package/utils/number.util.d.ts +40 -0
- package/utils/object.util.d.ts +83 -0
- package/utils/phone.util.d.ts +103 -0
- package/utils/states.util.d.ts +182 -0
- package/utils/storage.util.d.ts +78 -0
- package/utils/string.util.d.ts +89 -0
- package/utils/uuid.util.d.ts +33 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HttpInterceptorFn } from '@angular/common/http';
|
|
2
|
+
export interface iAPIError {
|
|
3
|
+
debugMessage: string;
|
|
4
|
+
message: string;
|
|
5
|
+
status: string;
|
|
6
|
+
subErrorList: {
|
|
7
|
+
object: string;
|
|
8
|
+
filed: string;
|
|
9
|
+
rejectedValue: any;
|
|
10
|
+
rejectedMessage: string;
|
|
11
|
+
}[];
|
|
12
|
+
}
|
|
13
|
+
export declare const errorInterceptor: HttpInterceptorFn;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './permissions.interface';
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gipisistemas/ngx-core",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Componentes e utilitários para projetos da GIPI Sistemas.",
|
|
5
|
+
"author": "GIPI Sistemas",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"angular",
|
|
8
|
+
"angular19",
|
|
9
|
+
"lib",
|
|
10
|
+
"gipi-sistemas",
|
|
11
|
+
"gipi"
|
|
12
|
+
],
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/gipi-sistemas/gipi-ngx-core.git"
|
|
16
|
+
},
|
|
17
|
+
"publishConfig": {
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"private": false,
|
|
21
|
+
"types": "index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"sass": "./theming/_index.scss",
|
|
25
|
+
"types": "./index.d.ts",
|
|
26
|
+
"default": "./fesm2022/gipisistemas-ngx-core.mjs"
|
|
27
|
+
},
|
|
28
|
+
"./utils/*": {
|
|
29
|
+
"sass": "./theming/_utils.scss"
|
|
30
|
+
},
|
|
31
|
+
"./package.json": {
|
|
32
|
+
"default": "./package.json"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"@angular/animations": "^19.1.0",
|
|
37
|
+
"@angular/cdk": "^19.2.3",
|
|
38
|
+
"@angular/common": "^19.1.0",
|
|
39
|
+
"@angular/compiler": "^19.1.0",
|
|
40
|
+
"@angular/core": "^19.1.0",
|
|
41
|
+
"@angular/forms": "^19.1.0",
|
|
42
|
+
"@angular/material": "^19.2.3",
|
|
43
|
+
"@angular/router": "^19.1.0",
|
|
44
|
+
"moment-timezone": "^0.5.47",
|
|
45
|
+
"echarts": "^5.6.0",
|
|
46
|
+
"rxjs": "~7.8.0",
|
|
47
|
+
"@ng-matero/extensions": "^19.3.3",
|
|
48
|
+
"@ng-matero/extensions-moment-adapter": "^19.1.0",
|
|
49
|
+
"ngx-currency": "^19.0.0",
|
|
50
|
+
"ngx-mask": "^19.0.7",
|
|
51
|
+
"libphonenumber-js": "^1.12.9"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"tslib": "^2.3.0"
|
|
55
|
+
},
|
|
56
|
+
"sideEffects": false,
|
|
57
|
+
"module": "fesm2022/gipisistemas-ngx-core.mjs",
|
|
58
|
+
"typings": "index.d.ts"
|
|
59
|
+
}
|
package/pipes/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './money.pipe';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class MoneyPipe implements PipeTransform {
|
|
4
|
+
private _locale;
|
|
5
|
+
/**
|
|
6
|
+
* Converte um número ou string em um formato de moeda.
|
|
7
|
+
*
|
|
8
|
+
* @param value O valor a ser formatado. Pode ser um número ou uma string representando um número.
|
|
9
|
+
* @param digitsInfo Define o número de casas decimais e a formatação dos dígitos.
|
|
10
|
+
* - Formato: `{mínimo de dígitos inteiros}.{mínimo de casas decimais}-{máximo de casas decimais}`
|
|
11
|
+
* - Exemplo: `'1.2-2'` (padrão) → Garante pelo menos 1 dígito inteiro e de 2 a 2 casas decimais.
|
|
12
|
+
* @param displaySymbol Define se o símbolo da moeda (`R$`) deve ser exibido.
|
|
13
|
+
* - `true` (padrão) → Exibe o símbolo da moeda.
|
|
14
|
+
* - `false` → Oculta o símbolo da moeda, exibindo apenas o valor numérico.
|
|
15
|
+
* @returns Uma string formatada como moeda ou `null` se o valor for inválido.
|
|
16
|
+
*/
|
|
17
|
+
transform(value: number | string | null | undefined, digitsInfo?: string, displaySymbol?: boolean): string | null;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MoneyPipe, never>;
|
|
19
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<MoneyPipe, "gMoney", true>;
|
|
20
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './animations';
|
|
2
|
+
export * from './base';
|
|
3
|
+
export * from './components';
|
|
4
|
+
export * from './decorators';
|
|
5
|
+
export * from './enums';
|
|
6
|
+
export * from './guards';
|
|
7
|
+
export * from './interceptors';
|
|
8
|
+
export * from './interfaces';
|
|
9
|
+
export * from './pipes';
|
|
10
|
+
export * from './services';
|
|
11
|
+
export * from './tokens';
|
|
12
|
+
export * from './types';
|
|
13
|
+
export * from './utils';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class CacheableService {
|
|
4
|
+
private _cacheMap;
|
|
5
|
+
constructor();
|
|
6
|
+
/**
|
|
7
|
+
* Cacheia um `Observable` com base na chave.
|
|
8
|
+
* A chave pode ser estática ou gerada dinamicamente (ex: string de params).
|
|
9
|
+
*
|
|
10
|
+
* @param key - Chave exclusiva para identificar o `Observable` armazenado em cache.
|
|
11
|
+
* @param observableFn - Função que retorna um `Observable` para ser armazenado em cache.
|
|
12
|
+
* @returns Observable<T> - O `Observable` armazenado em cache ou recém-criado.
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Exemplo 1: cache com chave fixa
|
|
16
|
+
* this.cacheable('myUniqueKey', () => this.httpClient.get<MyDataType>('api/data'))
|
|
17
|
+
* .subscribe(...);
|
|
18
|
+
*
|
|
19
|
+
* // Exemplo 2: cache com chave dinâmica baseada em parâmetros
|
|
20
|
+
* const key = `cities-state-${stateId}`;
|
|
21
|
+
* this.cacheable(key, () => this.cityService.findByState(stateId))
|
|
22
|
+
* .subscribe(...);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
cacheable<T = any>(key: string, observableFn: () => Observable<T>): Observable<T>;
|
|
26
|
+
/**
|
|
27
|
+
* Limpa o cache para uma chave específica ou todas se nenhuma chave for passada.
|
|
28
|
+
* @param key - Chave opcional para limpar um `Observable` em cache específico.
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Exemplo 1: limpa o cache de um observable específico
|
|
32
|
+
* this.clearCache('myUniqueKey');
|
|
33
|
+
*
|
|
34
|
+
* // Exemplo 2: limpa o cache de todos os observables
|
|
35
|
+
* this.clearCache();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
clearCache(key?: string): void;
|
|
39
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CacheableService, never>;
|
|
40
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CacheableService>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ComponentType } from '@angular/cdk/overlay';
|
|
2
|
+
import { DialogPosition, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { tTypeOperationCloseDialog } from '../enums/type-operation-dialog.enum';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class DialogConfig<TData> {
|
|
6
|
+
/** Classes para o dialog */
|
|
7
|
+
panelClass: string | string[];
|
|
8
|
+
/** Usar `escape` ou `clique no backdrop` para fechar o dialog */
|
|
9
|
+
disableClose: boolean;
|
|
10
|
+
/** Largura do dialog */
|
|
11
|
+
width: string;
|
|
12
|
+
/** Altura do dialog */
|
|
13
|
+
height: string;
|
|
14
|
+
/** Largura mínima do dialog. Se um número for fornecido, serão assumidas unidades de pixels. */
|
|
15
|
+
minWidth: string;
|
|
16
|
+
/** Altura mínima do dialog. Se um número for fornecido, serão assumidas unidades de pixels. */
|
|
17
|
+
minHeight: string;
|
|
18
|
+
/** Largura máxima do dialog. Se um número for fornecido, serão assumidas unidades de pixels. O padrão é 80vw */
|
|
19
|
+
maxWidth: string;
|
|
20
|
+
/** Altura máxima do dialog. Se um número for fornecido, serão assumidas unidades de pixels. */
|
|
21
|
+
maxHeight: string;
|
|
22
|
+
/** Posição do dialog, `left`, `top`, `right` e `bottom` */
|
|
23
|
+
position: DialogPosition;
|
|
24
|
+
/** Se o dialog deve focar o primeiro elemento focável ao ser aberto */
|
|
25
|
+
autoFocus: boolean;
|
|
26
|
+
/** Se o dialog deve restaurar o foco para o elemento previamente focado, depois de fechado. */
|
|
27
|
+
restoreFocus: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Se o dialog deve fechar quando o usuário retrocede/avança no histórico.
|
|
30
|
+
* Observe que isso geralmente não inclui clicar em links (a menos que o usuário esteja usando a `HashLocationStrategy`).
|
|
31
|
+
*/
|
|
32
|
+
closeOnNavigation: boolean;
|
|
33
|
+
constructor(dialogConfig?: Partial<DialogConfig<TData>>);
|
|
34
|
+
}
|
|
35
|
+
export declare class DialogService {
|
|
36
|
+
private _destroyRef;
|
|
37
|
+
private _breakpointObserver;
|
|
38
|
+
private _matDialog;
|
|
39
|
+
constructor();
|
|
40
|
+
/**
|
|
41
|
+
* Abre um componente como um `MatDialog`.
|
|
42
|
+
*
|
|
43
|
+
* @template TData Tipo dos dados que serão injetados no dialog (via `MAT_DIALOG_DATA`).
|
|
44
|
+
* @template TResult Tipo do valor retornado quando o dialog é fechado (`dialogRef.close(value)`).
|
|
45
|
+
*
|
|
46
|
+
* @param componentRef Componente que será exibido dentro do dialog.
|
|
47
|
+
* @param data Dados a serem injetados no dialog. Serão acessíveis no construtor do componente via `@Inject(MAT_DIALOG_DATA)`.
|
|
48
|
+
* @param dialogConfig Configurações opcionais de aparência, comportamento e posicionamento do dialog.
|
|
49
|
+
*
|
|
50
|
+
* @returns Uma referência do `MatDialogRef`.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* this.dialogService
|
|
55
|
+
* .show<MyData, tTypeOperationCloseDialog>(MyDialogComponent, data)
|
|
56
|
+
* .afterClosed()
|
|
57
|
+
* .subscribe((result) => {
|
|
58
|
+
* if (result === 'RELOAD_TABLE') this.loadData();
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
show<TData = unknown, TResult = tTypeOperationCloseDialog>(componentRef: ComponentType<unknown>, data?: TData | null, dialogConfig?: Partial<DialogConfig<TData>> | null): MatDialogRef<unknown, TResult>;
|
|
63
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
|
|
64
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
|
65
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class FileSaverService {
|
|
3
|
+
constructor();
|
|
4
|
+
private _addBom;
|
|
5
|
+
private _getFileNameFromDisposition;
|
|
6
|
+
download(data: any, fileName: string, mimeType: string, autoBom?: boolean): void;
|
|
7
|
+
downloadContent(response: any, autoBom?: boolean): void;
|
|
8
|
+
printArchive(data: any, mimeType: string): void;
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FileSaverService, never>;
|
|
10
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FileSaverService>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { BaseFilterModel } from '../base/models/base-filter.model';
|
|
2
|
+
import { Nullable } from '../types/nullable.type';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
interface iBaseFilter<TFilter = BaseFilterModel> {
|
|
5
|
+
id: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
tag: string;
|
|
8
|
+
filter: TFilter;
|
|
9
|
+
isDefault: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class FilterService<TFilter = BaseFilterModel> {
|
|
12
|
+
private _toastService;
|
|
13
|
+
private readonly _DB_NAME;
|
|
14
|
+
private readonly _TABLE_NAME;
|
|
15
|
+
private readonly _KEY_PATH;
|
|
16
|
+
private readonly _INDEX_USER_ID;
|
|
17
|
+
private _dbConnection;
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Abre ou cria o banco de dados IndexedDB
|
|
21
|
+
* @returns Promise contendo a instância do banco de dados
|
|
22
|
+
*/
|
|
23
|
+
private _openDatabase;
|
|
24
|
+
/**
|
|
25
|
+
* Valida os dados de entrada antes de salvar uma visualização
|
|
26
|
+
* @param view Nome da visualização
|
|
27
|
+
* @param userId Identificador do usuário
|
|
28
|
+
* @param filter Objeto do filtro
|
|
29
|
+
*/
|
|
30
|
+
private _validateFilterInput;
|
|
31
|
+
/**
|
|
32
|
+
* Executa uma transação no IndexedDB
|
|
33
|
+
* @param mode Modo da transação ('readonly' ou 'readwrite')
|
|
34
|
+
* @param operation Função de operação sobre o objeto store
|
|
35
|
+
* @returns Promise com o resultado da operação
|
|
36
|
+
*/
|
|
37
|
+
private _executeTransaction;
|
|
38
|
+
/**
|
|
39
|
+
* Salva ou atualiza uma visualização no banco de dados
|
|
40
|
+
* @param view Nome da visualização
|
|
41
|
+
* @param filter Objeto de configuração do filtro
|
|
42
|
+
* @param userId Identificador do usuário
|
|
43
|
+
* @param isDefault Indica se o filtro é padrão
|
|
44
|
+
*/
|
|
45
|
+
save(view: string, filter: TFilter, userId: string, isDefault: boolean): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Obtém todas as visualizações salvas de um usuário
|
|
48
|
+
* @param userId Identificador do usuário
|
|
49
|
+
* @returns Lista de visualizações pertencentes ao usuário ou lista vazia caso não exista
|
|
50
|
+
*/
|
|
51
|
+
findAll(userId: string): Promise<iBaseFilter[]>;
|
|
52
|
+
/**
|
|
53
|
+
* Obtém uma visualização específica de um usuário pela 'view'
|
|
54
|
+
* @param view Nome da visualização
|
|
55
|
+
* @param userId Identificador do usuário
|
|
56
|
+
* @returns Objeto da visualização ou null caso não exista
|
|
57
|
+
*/
|
|
58
|
+
find(view: string, userId: string): Promise<iBaseFilter | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Remove um filtro específico de um usuário
|
|
61
|
+
* @param view Nome da visualização
|
|
62
|
+
* @param userId Identificador do usuário
|
|
63
|
+
*/
|
|
64
|
+
remove(view: string, userId: string): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Gera uma URL com os filtros aplicados na visualização
|
|
67
|
+
* @param view Nome da visualização
|
|
68
|
+
* @param filter Objeto do filtro aplicado na visualização
|
|
69
|
+
* @returns URL gerada
|
|
70
|
+
*/
|
|
71
|
+
generateUrlFromView(view: string, filter: TFilter): string;
|
|
72
|
+
/**
|
|
73
|
+
* Restaura os filtros a partir de uma URL
|
|
74
|
+
* @param url URL contendo os filtros
|
|
75
|
+
* @returns Objeto do filtro restaurado
|
|
76
|
+
*/
|
|
77
|
+
restoreFiltersFromUrl(url: string): Nullable<TFilter>;
|
|
78
|
+
/**
|
|
79
|
+
* Copia um texto para a área de transferência
|
|
80
|
+
* @param text Texto a ser copiado
|
|
81
|
+
*/
|
|
82
|
+
copyToClipboard(text: string): Promise<void>;
|
|
83
|
+
/** Limpa todas as visualizações salvas do banco de dados (útil para testes) */
|
|
84
|
+
clearDatabase(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Exporta filtros de um usuário como JSON
|
|
87
|
+
* @param userId Identificador do usuário
|
|
88
|
+
* @returns JSON contento os dados
|
|
89
|
+
*/
|
|
90
|
+
exportFilters(userId: string): Promise<string>;
|
|
91
|
+
/**
|
|
92
|
+
* Importa filtros para um usuário a partir de JSON
|
|
93
|
+
* @param userId Identificador do usuário
|
|
94
|
+
* @param data JSON contendo os dados
|
|
95
|
+
*/
|
|
96
|
+
importFilters(userId: string, data: string): Promise<void>;
|
|
97
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterService<any>, never>;
|
|
98
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FilterService<any>>;
|
|
99
|
+
}
|
|
100
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { BaseFilterModel } from '../base/models/base-filter.model';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Exemplo de uso da classe `FilterURLService`
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { FilterURLService } from '@gipisistemas/ngx-core';
|
|
8
|
+
* import { Injectable } from '@angular/core';
|
|
9
|
+
*
|
|
10
|
+
* class MyFilter extends AbstractFilterModel {
|
|
11
|
+
* name: string;
|
|
12
|
+
* age: number;
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* class MyComponent {
|
|
16
|
+
* private _filterURLService: FilterURLService<MyFilter> = inject(FilterURLService);
|
|
17
|
+
* public myFilter: MyFilter = new MyFilter()
|
|
18
|
+
*
|
|
19
|
+
* ngOnInit(): void {
|
|
20
|
+
* const filters = this._filterURLService.getFilters({ name: '', age: null });
|
|
21
|
+
* console.log(filters); // Obtém filtros da URL
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* applyFilters(): void {
|
|
25
|
+
* // Atualiza a URL sem recarregar a página
|
|
26
|
+
* this._filterURLService.setFilters({ name: 'John', age: 25 });
|
|
27
|
+
* }
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
export declare class FilterURLService<F extends BaseFilterModel> {
|
|
32
|
+
private readonly _router;
|
|
33
|
+
private readonly _activatedRoute;
|
|
34
|
+
constructor();
|
|
35
|
+
/**
|
|
36
|
+
* Obtém os filtros da URL e os mescla com os filtros padrão fornecidos.
|
|
37
|
+
*
|
|
38
|
+
* @param defaultFilters Filtros padrão a serem utilizados caso a URL não contenha parâmetros.
|
|
39
|
+
* @returns Um objeto contendo os filtros mesclados.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* const filters = filterURLService.getFilters(defaultFilters);
|
|
43
|
+
* console.log(filters); // Retorna os filtros atuais na URL combinados com os filtros padrão.
|
|
44
|
+
*/
|
|
45
|
+
getFilters(defaultFilters: F): F;
|
|
46
|
+
/**
|
|
47
|
+
* Define filtros na URL sem recarregar a página.
|
|
48
|
+
*
|
|
49
|
+
* @param filters Objeto contendo os filtros a serem definidos na URL.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* // A URL será atualizada com os parâmetros correspondentes.
|
|
53
|
+
* filterURLService.setFilters({ name: 'John', age: 30 });
|
|
54
|
+
*/
|
|
55
|
+
setFilters(filters: F): void;
|
|
56
|
+
/**
|
|
57
|
+
* Converte os parâmetros da URL em um objeto de filtros, garantindo a tipagem correta.
|
|
58
|
+
*
|
|
59
|
+
* @param params Parâmetros da URL extraídos da rota ativa.
|
|
60
|
+
* @param template Objeto contendo a estrutura esperada dos filtros.
|
|
61
|
+
* @returns Um objeto contendo os filtros convertidos para os tipos corretos.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const parsedParams = filterURLService._parseParams({ age: '30' }, defaultFilters);
|
|
65
|
+
* console.log(parsedParams); // { age: 30 }
|
|
66
|
+
*/
|
|
67
|
+
private _parseParams;
|
|
68
|
+
/**
|
|
69
|
+
* Converte um objeto de filtros em um formato adequado para a URL.
|
|
70
|
+
*
|
|
71
|
+
* @param filters Objeto contendo os filtros a serem convertidos.
|
|
72
|
+
* @returns Um objeto contendo os filtros no formato de `queryParams`.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* const queryParams = filterURLService._stringifyParams({ name: 'John', age: 30 });
|
|
76
|
+
* console.log(queryParams); // { name: 'John', age: '30' }
|
|
77
|
+
*/
|
|
78
|
+
private _stringifyParams;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FilterURLService<any>, never>;
|
|
80
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FilterURLService<any>>;
|
|
81
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './cacheable.service';
|
|
2
|
+
export * from './dialog.service';
|
|
3
|
+
export * from './file-saver.service';
|
|
4
|
+
export * from './filter-indexed-db.service';
|
|
5
|
+
export * from './filter-url.service';
|
|
6
|
+
export * from './moment-date-adapter.service';
|
|
7
|
+
export * from './native-date-adapter.service';
|
|
8
|
+
export * from './svg-register.service';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class MomentDateAdapterService extends MomentDateAdapter {
|
|
4
|
+
getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
5
|
+
getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MomentDateAdapterService, never>;
|
|
7
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MomentDateAdapterService>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NativeDateAdapter } from '@angular/material/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NativeDateAdapterService extends NativeDateAdapter {
|
|
4
|
+
getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
5
|
+
getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NativeDateAdapterService, never>;
|
|
7
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<NativeDateAdapterService>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SvgRegisterService {
|
|
3
|
+
private _matIconRegistry;
|
|
4
|
+
private _domSanitizer;
|
|
5
|
+
constructor();
|
|
6
|
+
/**
|
|
7
|
+
* Registra um ícone SVG a partir de um enum.
|
|
8
|
+
* @param enumSvgs Enum de svgs:
|
|
9
|
+
* @example
|
|
10
|
+
* export enum SvgIcons {
|
|
11
|
+
* SVG_ONE: 'svg_one',
|
|
12
|
+
* ...
|
|
13
|
+
* }
|
|
14
|
+
* @param path Caminho onde o svg está localizado
|
|
15
|
+
*/
|
|
16
|
+
registerListSvg(enumSvgs: Record<string, string>, path: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Registra um ícone SVG a partir de um arquivo do SVG.
|
|
19
|
+
* - Insira apenas o nome do svg sem a extensão.
|
|
20
|
+
* @param key - Nome único do ícone que será usado para referenciá-lo no template.
|
|
21
|
+
* @param path - Caminho onde o svg está localizado
|
|
22
|
+
*/
|
|
23
|
+
registerSvg(key: string, path: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Registra um ícone SVG a partir de um html do SVG.
|
|
26
|
+
* - Insira apenas o nome do svg sem a extensão.
|
|
27
|
+
* @param key - Nome único do ícone que será usado para referenciá-lo no template.
|
|
28
|
+
* @param svg - Conteúdo SVG em formato de string.
|
|
29
|
+
*/
|
|
30
|
+
registerSvgIconLiteral(key: string, svg: string): void;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SvgRegisterService, never>;
|
|
32
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SvgRegisterService>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
$breakpoint-tablet: 640px;
|
|
2
|
+
$breakpoint-desktop: 1280px;
|
|
3
|
+
|
|
4
|
+
@mixin mobile-view {
|
|
5
|
+
@media screen and (max-width: #{$breakpoint-tablet - 1px}) {
|
|
6
|
+
@content;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@mixin tablet-view {
|
|
11
|
+
@media screen and (min-width: #{$breakpoint-tablet}) and (max-width: #{$breakpoint-desktop - 1px}) {
|
|
12
|
+
@content;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin desktop-view {
|
|
17
|
+
@media screen and (min-width: #{$breakpoint-desktop}) {
|
|
18
|
+
@content;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@forward './breakpoints';
|
|
2
|
+
@forward './palettes';
|
|
3
|
+
@forward './theme' show define-theme, all-component-themes;
|
|
4
|
+
@forward './utils';
|
|
5
|
+
|
|
6
|
+
@forward '../components/avatar/avatar.component.scss' show avatar-theme;
|
|
7
|
+
@forward '../components/button/button.component.scss' show button-theme;
|
|
8
|
+
@forward '../components/checkbox/checkbox.component.scss' show checkbox-theme;
|
|
9
|
+
@forward '../components/confirm-dialog/confirm-dialog.component.scss' show confirm-dialog-theme;
|
|
10
|
+
@forward '../components/helpful-tip/helpful-tip.component.scss' show helpful-tip-theme;
|
|
11
|
+
@forward '../components/icon/icon.component.scss' show icon-theme;
|
|
12
|
+
@forward '../components/loading/loading.component.scss' show loading-theme;
|
|
13
|
+
@forward '../components/popover/popover.component.scss' show popover-theme;
|
|
14
|
+
@forward '../components/select/select.component.scss' show select-theme;
|
|
15
|
+
@forward '../components/toast/toast.component.scss' show toast-theme;
|
|
16
|
+
@forward '../components/toggle-switch/toggle-switch.component.scss' show toggle-switch-theme;
|
|
17
|
+
@forward '../components/toolbar/toolbar.component.scss' show toolbar-theme;
|
|
18
|
+
@forward '../components/top-nav/top-nav.component.scss' show top-nav-theme;
|
|
19
|
+
@forward '../components/user-profile/user-profile.component.scss' show user-profile-theme;
|