@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.
Files changed (286) hide show
  1. package/README.md +169 -0
  2. package/animations/fly-in-out.animation.d.ts +24 -0
  3. package/animations/index.d.ts +2 -0
  4. package/animations/rotate.animation.d.ts +35 -0
  5. package/base/components/base-form-dialog.component.d.ts +47 -0
  6. package/base/components/base-form.component.d.ts +54 -0
  7. package/base/components/base-list-dialog.component.d.ts +69 -0
  8. package/base/components/base-list.component.d.ts +77 -0
  9. package/base/components/base.component.d.ts +62 -0
  10. package/base/index.d.ts +20 -0
  11. package/base/models/base-applied-filter.model.d.ts +8 -0
  12. package/base/models/base-authority.model.d.ts +6 -0
  13. package/base/models/base-filter.model.d.ts +16 -0
  14. package/base/models/base-form-dialog-data.model.d.ts +11 -0
  15. package/base/models/base-list-dialog-data.model.d.ts +10 -0
  16. package/base/models/base-menu.model.d.ts +25 -0
  17. package/base/models/base-page.model.d.ts +11 -0
  18. package/base/models/base-query-params.model.d.ts +12 -0
  19. package/base/models/base-sort.model.d.ts +8 -0
  20. package/base/models/base-token.model.d.ts +11 -0
  21. package/base/models/base-user.model.d.ts +18 -0
  22. package/base/models/base.model.d.ts +20 -0
  23. package/base/services/base-auth.service.d.ts +31 -0
  24. package/base/services/base-crud.service.d.ts +178 -0
  25. package/base/services/base.service.d.ts +97 -0
  26. package/components/action-row/action-row.component.d.ts +8 -0
  27. package/components/action-row/action-row.component.scss +26 -0
  28. package/components/action-row/index.d.ts +1 -0
  29. package/components/auto-focus/auto-focus.directive.d.ts +17 -0
  30. package/components/auto-focus/index.d.ts +1 -0
  31. package/components/avatar/avatar.component.d.ts +23 -0
  32. package/components/avatar/avatar.component.scss +155 -0
  33. package/components/avatar/index.d.ts +1 -0
  34. package/components/button/button.component.d.ts +74 -0
  35. package/components/button/button.component.scss +196 -0
  36. package/components/button/index.d.ts +1 -0
  37. package/components/button-group/button-group.component.d.ts +39 -0
  38. package/components/button-group/button-group.component.scss +89 -0
  39. package/components/button-group/index.d.ts +2 -0
  40. package/components/button-group/shared/button-group-option.model.d.ts +6 -0
  41. package/components/checkbox/checkbox.component.d.ts +74 -0
  42. package/components/checkbox/checkbox.component.scss +147 -0
  43. package/components/checkbox/index.d.ts +1 -0
  44. package/components/chips/chips.component.d.ts +46 -0
  45. package/components/chips/chips.component.scss +127 -0
  46. package/components/chips/index.d.ts +1 -0
  47. package/components/confirm-dialog/confirm-dialog.component.d.ts +17 -0
  48. package/components/confirm-dialog/confirm-dialog.component.scss +121 -0
  49. package/components/confirm-dialog/index.d.ts +4 -0
  50. package/components/confirm-dialog/shared/confirm-dialog-types.enum.d.ts +7 -0
  51. package/components/confirm-dialog/shared/confirm-dialog.model.d.ts +25 -0
  52. package/components/confirm-dialog/shared/confirm-dialog.service.d.ts +17 -0
  53. package/components/date-picker/date-picker.component.d.ts +55 -0
  54. package/components/date-picker/date-picker.component.scss +27 -0
  55. package/components/date-picker/index.d.ts +1 -0
  56. package/components/date-range-picker/date-range-picker.component.d.ts +66 -0
  57. package/components/date-range-picker/date-range-picker.component.scss +89 -0
  58. package/components/date-range-picker/index.d.ts +6 -0
  59. package/components/date-range-picker/shared/calendar/calendar.component.d.ts +27 -0
  60. package/components/date-range-picker/shared/calendar/calendar.component.scss +13 -0
  61. package/components/date-range-picker/shared/default-preset-date-options.d.ts +2 -0
  62. package/components/date-range-picker/shared/preset-key.enum.d.ts +11 -0
  63. package/components/date-range-picker/shared/range-selection-strategy.service.d.ts +11 -0
  64. package/components/date-range-picker/shared/select-date-option.interface.d.ts +32 -0
  65. package/components/date-range-picker/shared/selected-date-event.interface.d.ts +6 -0
  66. package/components/datetime-picker/datetime-picker.component.d.ts +68 -0
  67. package/components/datetime-picker/datetime-picker.component.scss +28 -0
  68. package/components/datetime-picker/index.d.ts +3 -0
  69. package/components/datetime-picker/shared/datetime-picker-intl.d.ts +29 -0
  70. package/components/datetime-picker/shared/moment-datetime-formats.d.ts +2 -0
  71. package/components/disable-auto-fill/disable-auto-fill.directive.d.ts +11 -0
  72. package/components/disable-auto-fill/index.d.ts +1 -0
  73. package/components/echarts/echarts.directive.d.ts +100 -0
  74. package/components/echarts/index.d.ts +4 -0
  75. package/components/echarts/shared/echarts-change-filter.d.ts +11 -0
  76. package/components/echarts/shared/echarts-config.interface.d.ts +5 -0
  77. package/components/echarts/shared/echarts-theme.type.d.ts +1 -0
  78. package/components/empty/empty.component.d.ts +13 -0
  79. package/components/empty/empty.component.scss +36 -0
  80. package/components/empty/index.d.ts +1 -0
  81. package/components/expansion-panel/expansion-panel.component.d.ts +36 -0
  82. package/components/expansion-panel/expansion-panel.component.scss +99 -0
  83. package/components/expansion-panel/index.d.ts +1 -0
  84. package/components/field-error/field-error.component.d.ts +95 -0
  85. package/components/field-error/field-error.component.scss +7 -0
  86. package/components/field-error/index.d.ts +2 -0
  87. package/components/field-error/shared/field-error-custom-validators.type.d.ts +2 -0
  88. package/components/flex-layout/flex-layout.directive.d.ts +44 -0
  89. package/components/flex-layout/index.d.ts +1 -0
  90. package/components/form-wrapper/form-wrapper.component.d.ts +15 -0
  91. package/components/form-wrapper/form-wrapper.component.scss +121 -0
  92. package/components/form-wrapper/index.d.ts +1 -0
  93. package/components/helpful-tip/helpful-tip.component.d.ts +11 -0
  94. package/components/helpful-tip/helpful-tip.component.scss +14 -0
  95. package/components/helpful-tip/index.d.ts +1 -0
  96. package/components/icon/icon.component.d.ts +61 -0
  97. package/components/icon/icon.component.scss +29 -0
  98. package/components/icon/index.d.ts +1 -0
  99. package/components/index.d.ts +46 -0
  100. package/components/input/index.d.ts +4 -0
  101. package/components/input/input.component.d.ts +81 -0
  102. package/components/input/input.component.scss +27 -0
  103. package/components/input/shared/input-prefix.directive.d.ts +5 -0
  104. package/components/input/shared/input-suffix.directive.d.ts +5 -0
  105. package/components/input/shared/input.directive.d.ts +26 -0
  106. package/components/input-currency/index.d.ts +1 -0
  107. package/components/input-currency/input-currency.component.d.ts +64 -0
  108. package/components/input-currency/input-currency.component.scss +27 -0
  109. package/components/input-group/index.d.ts +2 -0
  110. package/components/input-group/input-group-addon.component.d.ts +8 -0
  111. package/components/input-group/input-group.component.d.ts +14 -0
  112. package/components/input-group/input-group.component.scss +118 -0
  113. package/components/input-phone/index.d.ts +1 -0
  114. package/components/input-phone/input-phone.component.d.ts +62 -0
  115. package/components/input-phone/input-phone.component.scss +27 -0
  116. package/components/loading/index.d.ts +1 -0
  117. package/components/loading/loading.component.d.ts +13 -0
  118. package/components/loading/loading.component.scss +145 -0
  119. package/components/lozenge/index.d.ts +3 -0
  120. package/components/lozenge/lozenge.component.d.ts +20 -0
  121. package/components/lozenge/lozenge.component.scss +99 -0
  122. package/components/lozenge/shared/lozenge-fill.type.d.ts +4 -0
  123. package/components/lozenge/shared/lozenge-variant.type.d.ts +1 -0
  124. package/components/password-requeriments/index.d.ts +3 -0
  125. package/components/password-requeriments/password-requeriments.component.d.ts +27 -0
  126. package/components/password-requeriments/password-requeriments.component.scss +53 -0
  127. package/components/password-requeriments/shared/password-requeriments.interface.d.ts +5 -0
  128. package/components/password-requeriments/shared/password-validation.util.d.ts +71 -0
  129. package/components/popover/index.d.ts +4 -0
  130. package/components/popover/popover-target.directive.d.ts +8 -0
  131. package/components/popover/popover-trigger.directive.d.ts +135 -0
  132. package/components/popover/popover.component.d.ts +121 -0
  133. package/components/popover/popover.component.scss +26 -0
  134. package/components/popover/popover.module.d.ts +9 -0
  135. package/components/popover/shared/popover-animations.d.ts +14 -0
  136. package/components/popover/shared/popover-errors.d.ts +14 -0
  137. package/components/popover/shared/popover-types.type.d.ts +4 -0
  138. package/components/popover/shared/popover.interface.d.ts +24 -0
  139. package/components/radio-button/radio-button.component.scss +0 -0
  140. package/components/radio-group/index.d.ts +2 -0
  141. package/components/radio-group/radio-group.component.d.ts +57 -0
  142. package/components/radio-group/radio-group.component.scss +69 -0
  143. package/components/radio-group/shared/option-radio-group.type.d.ts +1 -0
  144. package/components/scroll-fade/index.d.ts +1 -0
  145. package/components/scroll-fade/scroll-fade.directive.d.ts +24 -0
  146. package/components/select/index.d.ts +4 -0
  147. package/components/select/select.component.d.ts +85 -0
  148. package/components/select/select.component.scss +52 -0
  149. package/components/select/shared/mat-select-media-tracker.d.ts +15 -0
  150. package/components/select/shared/mat-select-options-helper.d.ts +6 -0
  151. package/components/select/shared/mat-select-styles.scss +429 -0
  152. package/components/select/shared/mat-select.directive.d.ts +127 -0
  153. package/components/select-enum/index.d.ts +3 -0
  154. package/components/select-enum/select-enum.component.d.ts +65 -0
  155. package/components/select-enum/select-enum.component.scss +41 -0
  156. package/components/select-enum/shared/option-select-enum.type.d.ts +6 -0
  157. package/components/select-enum/shared/select-check-all.component.d.ts +15 -0
  158. package/components/sidenav/index.d.ts +1 -0
  159. package/components/sidenav/shared/sidenav-arrow-animations.d.ts +1 -0
  160. package/components/sidenav/sidenav.component.d.ts +47 -0
  161. package/components/sidenav/sidenav.component.scss +187 -0
  162. package/components/skeleton/index.d.ts +1 -0
  163. package/components/skeleton/skeleton.component.d.ts +37 -0
  164. package/components/skeleton/skeleton.component.scss +76 -0
  165. package/components/stepper/index.d.ts +2 -0
  166. package/components/stepper/step.component.d.ts +24 -0
  167. package/components/stepper/stepper.component.d.ts +20 -0
  168. package/components/stepper/stepper.component.scss +120 -0
  169. package/components/table/index.d.ts +9 -0
  170. package/components/table/shared/table-column-action-type.enum.d.ts +1 -0
  171. package/components/table/shared/table-column-align-type.enum.d.ts +6 -0
  172. package/components/table/shared/table-column-builder.model.d.ts +109 -0
  173. package/components/table/shared/table-column-condition.enum.d.ts +2 -0
  174. package/components/table/shared/table-column-partial.model.d.ts +6 -0
  175. package/components/table/shared/table-column.model.d.ts +80 -0
  176. package/components/table/shared/table-menu-item-context-builder.model.d.ts +61 -0
  177. package/components/table/shared/table-menu-item-context.model.d.ts +45 -0
  178. package/components/table/table.component.d.ts +184 -0
  179. package/components/table/table.component.scss +255 -0
  180. package/components/tabs/index.d.ts +2 -0
  181. package/components/tabs/tab-group.component.d.ts +24 -0
  182. package/components/tabs/tab.component.d.ts +30 -0
  183. package/components/tabs/tabs.component.scss +170 -0
  184. package/components/tag/index.d.ts +1 -0
  185. package/components/tag/tag.component.d.ts +26 -0
  186. package/components/tag/tag.component.scss +78 -0
  187. package/components/text-ellipsis/index.d.ts +1 -0
  188. package/components/text-ellipsis/text-ellipsis.directive.d.ts +15 -0
  189. package/components/textarea/index.d.ts +1 -0
  190. package/components/textarea/textarea.component.d.ts +72 -0
  191. package/components/textarea/textarea.component.scss +31 -0
  192. package/components/toast/index.d.ts +4 -0
  193. package/components/toast/shared/toast-types.enum.d.ts +7 -0
  194. package/components/toast/shared/toast.model.d.ts +7 -0
  195. package/components/toast/shared/toast.service.d.ts +12 -0
  196. package/components/toast/toast.component.d.ts +18 -0
  197. package/components/toast/toast.component.scss +135 -0
  198. package/components/toggle-switch/index.d.ts +1 -0
  199. package/components/toggle-switch/toggle-switch.component.d.ts +49 -0
  200. package/components/toggle-switch/toggle-switch.component.scss +105 -0
  201. package/components/toolbar/index.d.ts +1 -0
  202. package/components/toolbar/toolbar.component.d.ts +9 -0
  203. package/components/toolbar/toolbar.component.scss +22 -0
  204. package/components/top-nav/index.d.ts +1 -0
  205. package/components/top-nav/top-nav.component.d.ts +9 -0
  206. package/components/top-nav/top-nav.component.scss +18 -0
  207. package/components/tree-table/index.d.ts +8 -0
  208. package/components/tree-table/shared/tree-table-arrow-animations.d.ts +1 -0
  209. package/components/tree-table/shared/tree-table-column-builder.model.d.ts +55 -0
  210. package/components/tree-table/shared/tree-table-column-condition.enum.d.ts +2 -0
  211. package/components/tree-table/shared/tree-table-column-partial.model.d.ts +6 -0
  212. package/components/tree-table/shared/tree-table-column.model.d.ts +40 -0
  213. package/components/tree-table/shared/tree-table-menu-item-context-builder.model.d.ts +61 -0
  214. package/components/tree-table/shared/tree-table-menu-item-context.model.d.ts +45 -0
  215. package/components/tree-table/tree-table.component.d.ts +91 -0
  216. package/components/tree-table/tree-table.component.scss +216 -0
  217. package/components/user-profile/index.d.ts +1 -0
  218. package/components/user-profile/shared/user-profile-arrow-animations.d.ts +1 -0
  219. package/components/user-profile/user-profile.component.d.ts +28 -0
  220. package/components/user-profile/user-profile.component.scss +76 -0
  221. package/decorators/debounce.decorator.d.ts +33 -0
  222. package/decorators/index.d.ts +1 -0
  223. package/enums/index.d.ts +3 -0
  224. package/enums/menu-type.enum.d.ts +6 -0
  225. package/enums/sort-direction.enum.d.ts +5 -0
  226. package/enums/type-operation-dialog.enum.d.ts +12 -0
  227. package/fesm2022/gipisistemas-ngx-core.mjs +19132 -0
  228. package/fesm2022/gipisistemas-ngx-core.mjs.map +1 -0
  229. package/guards/auth.guard.d.ts +3 -0
  230. package/guards/index.d.ts +2 -0
  231. package/guards/public.guard.d.ts +3 -0
  232. package/index.d.ts +5 -0
  233. package/interceptors/auth.interceptor.d.ts +2 -0
  234. package/interceptors/error.interceptor.d.ts +13 -0
  235. package/interceptors/index.d.ts +2 -0
  236. package/interfaces/index.d.ts +1 -0
  237. package/interfaces/permissions.interface.d.ts +10 -0
  238. package/package.json +59 -0
  239. package/pipes/index.d.ts +1 -0
  240. package/pipes/money.pipe.d.ts +20 -0
  241. package/public-api.d.ts +13 -0
  242. package/services/cacheable.service.d.ts +41 -0
  243. package/services/dialog.service.d.ts +65 -0
  244. package/services/file-saver.service.d.ts +11 -0
  245. package/services/filter-indexed-db.service.d.ts +100 -0
  246. package/services/filter-url.service.d.ts +81 -0
  247. package/services/index.d.ts +8 -0
  248. package/services/moment-date-adapter.service.d.ts +8 -0
  249. package/services/native-date-adapter.service.d.ts +8 -0
  250. package/services/svg-register.service.d.ts +33 -0
  251. package/theming/_breakpoints.scss +20 -0
  252. package/theming/_index.scss +19 -0
  253. package/theming/_palettes.scss +112 -0
  254. package/theming/_theme.scss +189 -0
  255. package/theming/_utils.scss +1424 -0
  256. package/tokens/allowed-public-routes.token.d.ts +26 -0
  257. package/tokens/app-messages.token.d.ts +13 -0
  258. package/tokens/base-auth-service.token.d.ts +5 -0
  259. package/tokens/echarts-core.token.d.ts +4 -0
  260. package/tokens/index.d.ts +6 -0
  261. package/tokens/ngx-currency-options.token.d.ts +5 -0
  262. package/tokens/paginator-intl.token.d.ts +5 -0
  263. package/types/booleanish.type.d.ts +1 -0
  264. package/types/implicit-template.type.d.ts +4 -0
  265. package/types/index.d.ts +8 -0
  266. package/types/mixable-object.type.d.ts +1 -0
  267. package/types/nullable.type.d.ts +1 -0
  268. package/types/numberish.type.d.ts +1 -0
  269. package/types/page-event.type.d.ts +6 -0
  270. package/types/uuid.type.d.ts +1 -0
  271. package/types/void-listener.type.d.ts +1 -0
  272. package/utils/array.util.d.ts +13 -0
  273. package/utils/css.util.d.ts +12 -0
  274. package/utils/currency.util.d.ts +83 -0
  275. package/utils/date.util.d.ts +166 -0
  276. package/utils/document.util.d.ts +126 -0
  277. package/utils/email.util.d.ts +19 -0
  278. package/utils/index.d.ts +14 -0
  279. package/utils/number-to-words.util.d.ts +17 -0
  280. package/utils/number.util.d.ts +40 -0
  281. package/utils/object.util.d.ts +83 -0
  282. package/utils/phone.util.d.ts +103 -0
  283. package/utils/states.util.d.ts +182 -0
  284. package/utils/storage.util.d.ts +78 -0
  285. package/utils/string.util.d.ts +89 -0
  286. package/utils/uuid.util.d.ts +33 -0
@@ -0,0 +1,11 @@
1
+ export declare class BasePageModel<TEntity> {
2
+ /** Conteúdo da página */
3
+ content: TEntity[];
4
+ /** Número da página */
5
+ number: number;
6
+ /** Total de registros */
7
+ totalElements: number;
8
+ /** Total de páginas */
9
+ totalPages: number;
10
+ constructor(content?: TEntity[], number?: number, totalElements?: number, totalPages?: number);
11
+ }
@@ -0,0 +1,12 @@
1
+ import type { BaseSortModel } from './base-sort.model';
2
+ export declare class BaseQueryParams {
3
+ /** Número da página */
4
+ page: number;
5
+ /** Tamanho da página */
6
+ size: number;
7
+ /** Campo para ordenação */
8
+ sort: BaseSortModel | BaseSortModel[] | null;
9
+ /** Parâmetros dinâmicos */
10
+ [key: string]: unknown | null;
11
+ constructor(params?: Partial<BaseQueryParams>);
12
+ }
@@ -0,0 +1,8 @@
1
+ import type { tSortDirection } from '../../enums/sort-direction.enum';
2
+ export declare class BaseSortModel {
3
+ /** Direção da ordenação */
4
+ direction: tSortDirection;
5
+ /** Nome do campo para a ordenação */
6
+ field: string;
7
+ constructor(field?: string, direction?: tSortDirection);
8
+ }
@@ -0,0 +1,11 @@
1
+ import { BaseUserModel } from './base-user.model';
2
+ export declare class BaseTokenModel<TUser extends BaseUserModel> {
3
+ access_token: string;
4
+ refresh_token: string;
5
+ expires_in: number;
6
+ expiration: Date;
7
+ accessToken: string;
8
+ user: TUser;
9
+ refreshToken: string;
10
+ constructor(access_token: string, refresh_token: string, expires_in: number, expiration: Date, accessToken: string, user: TUser, refreshToken: string);
11
+ }
@@ -0,0 +1,18 @@
1
+ import { BaseAuthorityModel } from './base-authority.model';
2
+ import { BaseMenuModel } from './base-menu.model';
3
+ import { BaseModel } from './base.model';
4
+ export declare class BaseUserModel extends BaseModel {
5
+ /** Nome do usuário */
6
+ name: string;
7
+ /** E-mail do usuário */
8
+ username: string;
9
+ /** Senha do usuário */
10
+ password: string;
11
+ /** Último acesso do usuário */
12
+ lastAccess: Date | null;
13
+ /** Lista de permissões do usuário */
14
+ authorities: BaseAuthorityModel[];
15
+ /** Lista de menus que o usuário tem acesso */
16
+ menuList: BaseMenuModel[];
17
+ constructor(data?: Partial<BaseUserModel>);
18
+ }
@@ -0,0 +1,20 @@
1
+ import { GIPIUuid } from '../../types/uuid.type';
2
+ export declare abstract class BaseModel {
3
+ /** ID */
4
+ id: GIPIUuid;
5
+ /** Identificador de integração */
6
+ integrationIdentifier: GIPIUuid;
7
+ /** ID da empresa */
8
+ companyId: GIPIUuid;
9
+ /** Relacionamento entre mútiplas empresas */
10
+ tenantId: GIPIUuid;
11
+ /** Indica se está ativo */
12
+ enabled: boolean;
13
+ /** Data de criação */
14
+ createdDate: Date | null;
15
+ /** Data de modificação */
16
+ modifiedDate: Date | null;
17
+ /** @Transient Indica se o registro foi seleciona usado em tabelas(table) */
18
+ selected: boolean;
19
+ constructor(data: Partial<BaseModel>);
20
+ }
@@ -0,0 +1,31 @@
1
+ import { HttpHeaders } from '@angular/common/http';
2
+ import { Router } from '@angular/router';
3
+ import { Observable } from 'rxjs';
4
+ import { BaseTokenModel } from '../models/base-token.model';
5
+ import { BaseUserModel } from '../models/base-user.model';
6
+ import { BaseService } from './base.service';
7
+ import * as i0 from "@angular/core";
8
+ export declare class BaseAuthService<TUser extends BaseUserModel> extends BaseService {
9
+ protected readonly TOKEN_KEY = "auth_token";
10
+ protected router: Router;
11
+ private _token;
12
+ private _user;
13
+ token$: Observable<BaseTokenModel<TUser> | null>;
14
+ user$: Observable<TUser | null>;
15
+ get token(): BaseTokenModel<TUser> | null;
16
+ get user(): TUser | null;
17
+ constructor();
18
+ login(username: string, password: string): Observable<void>;
19
+ logout(): void;
20
+ revokeToken(token: BaseTokenModel<TUser> | null): Observable<boolean>;
21
+ refreshToken(): Observable<BaseTokenModel<TUser> | null>;
22
+ isAuthenticated(): boolean;
23
+ load(): Observable<boolean>;
24
+ isValidToken(token: BaseTokenModel<TUser> | null): boolean;
25
+ hasPermission(permission: string): boolean;
26
+ protected setSession(token: BaseTokenModel<TUser>): void;
27
+ protected clearSession(): void;
28
+ protected buildHeaders(): HttpHeaders;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseAuthService<any>, never>;
30
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseAuthService<any>>;
31
+ }
@@ -0,0 +1,178 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { GIPIUuid } from '../../types/uuid.type';
4
+ import { BaseFilterModel } from '../models/base-filter.model';
5
+ import { BasePageModel } from '../models/base-page.model';
6
+ import { BaseSortModel } from '../models/base-sort.model';
7
+ import { BaseModel } from '../models/base.model';
8
+ import { BaseService } from './base.service';
9
+ import * as i0 from "@angular/core";
10
+ export declare class BaseCrudService<TEntity extends BaseModel, TFilter extends BaseFilterModel> extends BaseService implements OnDestroy {
11
+ protected path: string;
12
+ protected version: string;
13
+ constructor(path: string, version: string);
14
+ ngOnDestroy(): void;
15
+ /**
16
+ * `POST` - Refere-se ao endpoint find-all com filtros via URL save.
17
+ *
18
+ * @param entity A entidade a ser salva.
19
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
20
+ * @returns Um `Observable<T>` contendo a entidade salva.
21
+ *
22
+ * @example
23
+ * save<User>({ id: '123e4567-e89b-12d3-a456-426614174000', name: 'John' })
24
+ * .subscribe(user => console.log(user));
25
+ */
26
+ save<T = TEntity>(entity: T, version?: string): Observable<T>;
27
+ /**
28
+ * `POST` - Refere-se ao endpoint find-all com filtros via URL save-all.
29
+ *
30
+ * @param entities Um array de entidades a serem salvas.
31
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
32
+ * @returns Um `Observable<T[]>` contendo a lista de entidades salvas.
33
+ *
34
+ * @example
35
+ * saveAll<User>([{ id: '123e4567-e89b-12d3-a456-426614174000', name: 'John' }, { id: 2, name: 'Jane' }])
36
+ * .subscribe(users => console.log(users));
37
+ */
38
+ saveAll<T = TEntity>(entities: T[], version?: string): Observable<T[]>;
39
+ /**
40
+ * `DELETE` - Refere-se ao endpoint find-all com filtros via URL delete.
41
+ *
42
+ * @param id O identificador único (UUID) da entidade a ser excluída.
43
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
44
+ * @returns Um `Observable<boolean>` que retorna `true` se a exclusão for bem-sucedida.
45
+ *
46
+ * @example
47
+ * delete('123e4567-e89b-12d3-a456-426614174000')
48
+ * .subscribe(isDeleted => console.log(isDeleted));
49
+ */
50
+ delete(id: GIPIUuid, version?: string): Observable<boolean>;
51
+ /**
52
+ * `POST` - Refere-se ao endpoint find-all com filtros via URL delete-all.
53
+ *
54
+ * @param idList Lista de identificadores (UUIDs) das entidades a serem excluídas.
55
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
56
+ * @returns Um `Observable<boolean>` que retorna `true` se todas as exclusões forem bem-sucedidas ou `false` se algum identificador for inválido.
57
+ *
58
+ * @example
59
+ * deleteAll(['123e4567-e89b-12d3-a456-426614174000', '987e6543-e21b-12d3-a456-426614174001'])
60
+ * .subscribe(isDeleted => console.log(isDeleted));
61
+ */
62
+ deleteAll(idList: GIPIUuid[], version?: string): Observable<boolean>;
63
+ /**
64
+ * `GET` - Refere-se ao endpoint find-all com filtros via URL get-one.
65
+ *
66
+ * @param id O identificador (UUID) da entidade a ser recuperada.
67
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
68
+ * @returns Um `Observable<T>` contendo a entidade recuperada.
69
+ *
70
+ * @example
71
+ * getOne('123e4567-e89b-12d3-a456-426614174000')
72
+ * .subscribe(entity => console.log(entity));
73
+ */
74
+ getOne<T = TEntity>(id: GIPIUuid, version?: string): Observable<T>;
75
+ /**
76
+ * `GET` - Refere-se ao endpoint find-all com filtros via URL.
77
+ *
78
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
79
+ * @returns Um `Observable<BasePageModel<T>>` que retorna uma página de entidades.
80
+ * A resposta será um objeto contendo dados paginados, como os itens da página e informações sobre a página atual.
81
+ *
82
+ * @example
83
+ * find()
84
+ * .subscribe(page => console.log(page.content));
85
+ */
86
+ find<T = TEntity>(version?: string): Observable<BasePageModel<T>>;
87
+ /**
88
+ * `POST` - Refere-se ao endpoint find-all com filtros via BODY.
89
+ *
90
+ * @param filter (Opcional) Objeto com os critérios de filtro para a consulta.
91
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
92
+ * @returns Um `Observable<BasePageModel<T>>` que retorna uma página de entidades filtradas.
93
+ * A resposta será um objeto contendo dados paginados, como os itens da página e informações sobre a página atual.
94
+ *
95
+ * @example
96
+ * findAll({ name: 'John' })
97
+ * .subscribe(page => console.log(page.content));
98
+ */
99
+ findAll<F = TFilter, T = TEntity>(filter?: F, version?: string): Observable<BasePageModel<T>>;
100
+ /**
101
+ * `GET` - Refere-se ao endpoint find-all-enabled.
102
+ *
103
+ * @param page Número da página a ser recuperada, com valor mínimo de 0.
104
+ * @param size Número de itens por página, com valor mínimo de 10.
105
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
106
+ * @returns Um `Observable<BasePageModel<T>>` que retorna uma página de entidades "Ativas".
107
+ * A resposta será um objeto contendo dados paginados, como os itens da página e informações sobre a página atual.
108
+ *
109
+ * @example
110
+ * findAllEnabled(0, 10)
111
+ * .subscribe(page => console.log(page.content));
112
+ */
113
+ findAllEnabled<T = TEntity>(page: number, size: number, version?: string): Observable<BasePageModel<T>>;
114
+ /**
115
+ * `GET` - Refere-se ao endpoint find-by-value.
116
+ *
117
+ * @param value (Opcional) Valor a ser buscado. Vazio para não validar.
118
+ * @param page Número da página a ser recuperada, com valor mínimo de 0.
119
+ * @param size Número de itens por página, com valor mínimo de 10.
120
+ * @param sort (Opcional) Modelo de ordenação que especifica o campo e a direção da ordenação.
121
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
122
+ * @returns Um `Observable<BasePageModel<T>>` que retorna uma página de entidades baseadas no valor fornecido.
123
+ * A resposta será um objeto contendo dados paginados, como os itens da página e informações sobre a página atual.
124
+ *
125
+ * @example
126
+ * findByValue('', 0, 10, { field: 'name', direction: 'ASC' })
127
+ * .subscribe(page => console.log(page.content));
128
+ *
129
+ * findByValue('John', 0, 10)
130
+ * .subscribe(page => console.log(page.content));
131
+ */
132
+ findByValue<T = TEntity>(value: string, page: number, size: number, sort?: BaseSortModel[], version?: string): Observable<BasePageModel<T>>;
133
+ /**
134
+ * `PATCH` - Refere-se ao endpoint enable-or-disable.
135
+ *
136
+ * @param id ID da entidade a ser habilitada ou desabilitada. Deve ser um UUID válido.
137
+ * @param action Ação a ser realizada. Pode ser 'DISABLE' ou 'ENABLE'.
138
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
139
+ * @returns Um `Observable<boolean>` que emite `true` caso a operação tenha sido bem-sucedida, ou `false` caso contrário.
140
+ *
141
+ * @example
142
+ * enableOrDisable('123e4567-e89b-12d3-a456-426614174000', 'ENABLE')
143
+ * .subscribe(success => console.log('Entidade ativa'));
144
+ *
145
+ * enableOrDisable('123e4567-e89b-12d3-a456-426614174000', 'DISABLE')
146
+ * .subscribe(success => console.log('Entidade inativa'));
147
+ */
148
+ enableOrDisable(id: GIPIUuid, action: 'DISABLE' | 'ENABLE', version?: string): Observable<boolean>;
149
+ /**
150
+ * `PATCH` - Refere-se ao endpoint enable-or-disable-all.
151
+ *
152
+ * @param idList Lista de IDs das entidades a serem habilitadas ou desabilitadas. Cada ID deve ser um UUID válido.
153
+ * @param action Ação a ser realizada. Pode ser 'DISABLE' ou 'ENABLE'.
154
+ * @param version (Opcional) Versão da API a ser utilizada na URL.
155
+ * @returns Um `Observable<boolean>` que emite `true` caso a operação tenha sido bem-sucedida para todas as entidades, ou `false` caso algum ID seja inválido ou ocorra um erro.
156
+ *
157
+ * @example
158
+ * enableOrDisableAll(['123e4567-e89b-12d3-a456-426614174000', '987e6543-e21b-12d3-a456-426614174001'], 'ENABLE')
159
+ * .subscribe(success => console.log('Entidades ativas'));
160
+ *
161
+ * enableOrDisableAll(['123e4567-e89b-12d3-a456-426614174000', '987e6543-e21b-12d3-a456-426614174001'], 'DISABLE')
162
+ * .subscribe(success => console.log('Entidades inativas'));
163
+ */
164
+ enableOrDisableAll(idList: GIPIUuid[], action: 'DISABLE' | 'ENABLE', version?: string): Observable<boolean>;
165
+ /**
166
+ * Valida um objeto, verificando se ele está vazio.
167
+ *
168
+ * @param entity O objeto a ser validado.
169
+ * @returns Uma mensagem de erro caso o objeto esteja vazio. Caso contrário, retorna uma string vazia.
170
+ *
171
+ * @example
172
+ * const result = validate(myEntity);
173
+ * console.log(result); // Se vazio, retornará 'Objeto não pode ser vazio', caso contrário, retorna ''.
174
+ */
175
+ validate<T = TEntity>(entity: T): boolean;
176
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseCrudService<any, any>, never>;
177
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseCrudService<any, any>>;
178
+ }
@@ -0,0 +1,97 @@
1
+ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
2
+ import { OnDestroy } from '@angular/core';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import { ToastService } from '../../components/toast/shared/toast.service';
5
+ import { CacheableService } from '../../services/cacheable.service';
6
+ import { Nullable } from '../../types/nullable.type';
7
+ import { BaseQueryParams } from '../models/base-query-params.model';
8
+ import * as i0 from "@angular/core";
9
+ export declare abstract class BaseService implements OnDestroy {
10
+ protected path: string;
11
+ protected version: string;
12
+ protected handleDestroy: Subject<void>;
13
+ protected readonly httpClient: HttpClient;
14
+ protected readonly toastService: ToastService;
15
+ protected readonly cacheableService: CacheableService;
16
+ constructor(path: string, version: string);
17
+ ngOnDestroy(): void;
18
+ /**
19
+ * Constrói a URL base da API com caminho, versão e recurso especificados.
20
+ *
21
+ * @param resource O recurso específico da API a ser adicionado à URL (ex.: 'users', 'orders').
22
+ * @param version A versão da API (ex.: 'v1', 'v2'). Se não for informada, utiliza a versão padrão da instância.
23
+ * @returns A URL completa formatada como `api/{path}/{version}/{resource}`.
24
+ *
25
+ * @example
26
+ * url('users', 'v1'); // Retorna 'api/{path}/v1/users'.
27
+ * url('products'); // Retorna 'api/{path}/{version}/products' se `this.version` estiver definida.
28
+ */
29
+ protected url(resource?: string, version?: string): string;
30
+ /**
31
+ * Gera as opções para uma requisição HTTP, incluindo headers e parâmetros.
32
+ * - Se os headers ou os parâmetros não forem fornecidos, são gerados valores padrão.
33
+ *
34
+ * @param params Os parâmetros da requisição (HttpParams). Se não informado, será utilizado um padrão.
35
+ * @param headers Os headers da requisição (HttpHeaders). Se não informado, será utilizado um padrão.
36
+ * @returns Um objeto contendo os headers e os parâmetros da requisição.
37
+ *
38
+ * @example
39
+ * options(); // Retorna `{ headers: defaultHeaders, params: defaultParams }`.
40
+ * options(null, new HttpHeaders({ 'Authorization': 'Bearer token' })); // Retorna opções com headers personalizados.
41
+ */
42
+ protected options(params?: HttpParams | null, headers?: HttpHeaders | null): {
43
+ headers: HttpHeaders;
44
+ params: HttpParams;
45
+ };
46
+ /**
47
+ * Cria e retorna um objeto `HttpHeaders` padrão.
48
+ * Pode ser sobrescrito por classes que estendem esta classe para personalizar os headers.
49
+ *
50
+ * @returns Um objeto `HttpHeaders` vazio.
51
+ */
52
+ protected buildHeaders(): HttpHeaders;
53
+ /**
54
+ * Cria e retorna um objeto `HttpParams` padrão.
55
+ * Pode ser sobrescrito por classes que estendem esta classe para personalizar os parâmetros da requisição.
56
+ *
57
+ * @returns Um objeto `HttpParams` vazio.
58
+ */
59
+ protected buildParams(): HttpParams;
60
+ /**
61
+ * Constrói uma string de parâmetros de consulta a partir de um objeto `BaseQueryParams`.
62
+ * - Coloque as keys dos parâmetros adicionais exatamente como estão no endpoint.
63
+ * - Os parâmetros são formatados como `?key1=value1&key2=value2`.
64
+ * - Se não houver parâmetros, retorna uma string vazia.
65
+ *
66
+ * @param queryParams Parâmetros de consulta a serem adicionados à URL.
67
+ * @returns Uma string de parâmetros de consulta formatada para ser anexada à URL.
68
+ * @example
69
+ * ```typescript
70
+ * buildQueryParams({ page: 1, size: 10 }); // Retorna '?page=1&size=10'.
71
+ * buildQueryParams({ page: 1, size: 10, sort: { field: 'name', direction: 'ASC' }, value: '', extraParam: 'extra' }); // Retorna '?page=1&size=10&sort=name,asc&extraParam=extra'.
72
+ * ```
73
+ */
74
+ protected buildQueryParams(queryParams?: BaseQueryParams): string;
75
+ /**
76
+ * Converte um objeto JSON para o tipo esperado.
77
+ *
78
+ * @param jsonObj O objeto JSON a ser convertido.
79
+ * @returns O objeto convertido para o tipo `T`.
80
+ *
81
+ * @example
82
+ * handleMapper<User>({ id: '123e4567-e89b-12d3-a456-426614174000', name: 'John' }); // Retorna um objeto do tipo `User`.
83
+ */
84
+ protected handleMapper<T = unknown>(jsonObj: Nullable<unknown>): T;
85
+ /**
86
+ * Manipula erros de requisições HTTP e retorna um Observable que emite um erro.
87
+ *
88
+ * @param error A mensagem de erro a ser lançada.
89
+ * @returns Um `Observable<never>` que emite um erro.
90
+ *
91
+ * @example
92
+ * handleError('Falha ao buscar os dados'); // Lança um erro com a mensagem especificada.
93
+ */
94
+ protected handleError(error: string): Observable<never>;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseService, never>;
96
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseService>;
97
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ActionRowComponent {
3
+ protected readonly _uniqueId: string;
4
+ id: string;
5
+ name: string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionRowComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionRowComponent, "gipi-action-row", ["gActionRow"], { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, {}, never, ["*"], true, never>;
8
+ }
@@ -0,0 +1,26 @@
1
+ @use '../../theming/utils' as utils;
2
+
3
+ @mixin action-row-theme($theme: ()) {
4
+ $font-family: utils.get-font-family($theme);
5
+ $font-size: utils.get-font-size($theme);
6
+ $font-color: utils.get-font-color($theme);
7
+ $white-100: utils.get-color($theme, white, 100);
8
+ $secondary-100: utils.get-color($theme, secondary, 100);
9
+
10
+ .g-action-row {
11
+ display: flex;
12
+ flex-direction: row;
13
+ align-items: center;
14
+ justify-content: flex-end;
15
+ gap: 1.6rem;
16
+ padding: 1.6rem 0;
17
+ font-family: $font-family;
18
+ font-size: $font-size;
19
+ color: $font-color;
20
+ background-color: $white-100;
21
+ border-top: 1px solid $secondary-100;
22
+ box-shadow:
23
+ 0px 11px 8px -10px $secondary-100,
24
+ 0px -11px 8px -10px $secondary-100;
25
+ }
26
+ }
@@ -0,0 +1 @@
1
+ export * from './action-row.component';
@@ -0,0 +1,17 @@
1
+ import { AfterContentChecked, AfterViewChecked } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AutoFocusDirective implements AfterContentChecked, AfterViewChecked {
4
+ private _focused;
5
+ private _elementRef;
6
+ private _platformId;
7
+ private _renderer;
8
+ autofocus: boolean;
9
+ constructor();
10
+ ngAfterContentChecked(): void;
11
+ ngAfterViewChecked(): void;
12
+ private _setAutoFocus;
13
+ private _getFocusableElements;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[gAutoFocus]", ["gAutoFocus"], { "autofocus": { "alias": "gAutoFocus"; "required": false; }; }, {}, never, never, true, never>;
16
+ static ngAcceptInputType_autofocus: any;
17
+ }
@@ -0,0 +1 @@
1
+ export * from './auto-focus.directive';
@@ -0,0 +1,23 @@
1
+ import { NumberInput, type BooleanInput } from '@angular/cdk/coercion';
2
+ import { EventEmitter } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AvatarComponent {
5
+ protected readonly _uniqueId: string;
6
+ id: string;
7
+ name: string;
8
+ text: string;
9
+ imageSrc: string;
10
+ shape: 'circle' | 'square';
11
+ size: NumberInput;
12
+ textSize: NumberInput;
13
+ loading: BooleanInput;
14
+ readonly onImageError: EventEmitter<Event>;
15
+ get _firstLetter(): string;
16
+ constructor();
17
+ imageError(event: Event): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "gipi-avatar", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "text": { "alias": "text"; "required": true; }; "imageSrc": { "alias": "imageSrc"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "size": { "alias": "size"; "required": false; }; "textSize": { "alias": "textSize"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, { "onImageError": "onImageError"; }, never, never, true, never>;
20
+ static ngAcceptInputType_size: unknown;
21
+ static ngAcceptInputType_textSize: unknown;
22
+ static ngAcceptInputType_loading: unknown;
23
+ }
@@ -0,0 +1,155 @@
1
+ @use '../../theming/utils' as utils;
2
+
3
+ @mixin avatar-theme($theme: ()) {
4
+ $font-family: utils.get-font-family($theme);
5
+ $font-size: utils.get-font-size($theme);
6
+ $secondary-100: utils.get-color($theme, secondary, 100);
7
+ $primary-500: utils.get-color($theme, primary, 500);
8
+
9
+ .g-avatar {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+ border-radius: 0.6rem;
14
+ overflow: hidden;
15
+ position: relative;
16
+ }
17
+
18
+ .g-user-photo {
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ text-align: center;
23
+ text-transform: uppercase;
24
+ font-size: 1.6rem;
25
+ font-weight: 600;
26
+ object-fit: cover;
27
+ background-color: $secondary-100;
28
+ width: 2.4rem;
29
+ height: 2.4rem;
30
+ border-radius: 50%;
31
+ user-select: none;
32
+
33
+ &.circle {
34
+ border-radius: 50% !important;
35
+ }
36
+
37
+ &.square {
38
+ border-radius: 0.6rem !important;
39
+ }
40
+ }
41
+
42
+ img:not(.loading).g-user-photo {
43
+ box-shadow: 0 0 0 2px $secondary-100;
44
+ }
45
+
46
+ .user-name {
47
+ font-weight: 600;
48
+ line-height: 100%;
49
+ margin-inline: 0.8rem 0.4rem;
50
+ }
51
+
52
+ .g-loading.circle {
53
+ width: 2.4rem;
54
+ height: 2.4rem;
55
+ border-radius: 50%;
56
+ border: 2px solid $primary-500;
57
+ border-top-color: transparent;
58
+ animation: spin 1.4s linear infinite;
59
+ position: absolute;
60
+ top: 0;
61
+ left: 0;
62
+
63
+ @keyframes spin {
64
+ to {
65
+ transform: rotate(360deg);
66
+ }
67
+ }
68
+ }
69
+
70
+ .g-loading.square {
71
+ width: 2.4rem;
72
+ height: 2.4rem;
73
+ display: grid;
74
+ color: $primary-500;
75
+ border-radius: 0.6rem;
76
+ overflow: hidden;
77
+ position: absolute;
78
+ top: 0;
79
+ left: 0;
80
+
81
+ &:before {
82
+ content: '';
83
+ grid-area: 1/1;
84
+ --color1: linear-gradient(
85
+ 90deg,
86
+ #e0e1e2 calc(100% / 3),
87
+ currentColor 0 calc(2 * 100% / 3),
88
+ #e0e1e2 0
89
+ );
90
+ --color2: linear-gradient(
91
+ 0deg,
92
+ #e0e1e2 calc(100% / 3),
93
+ currentColor 0 calc(2 * 100% / 3),
94
+ #e0e1e2 0
95
+ );
96
+ background: var(--color1), var(--color2), var(--color1), var(--color2);
97
+ background-size:
98
+ 300% 4px,
99
+ 4px 300%;
100
+ background-repeat: no-repeat;
101
+ border-radius: 0.6rem;
102
+ animation: spin 1.4s infinite linear;
103
+ }
104
+
105
+ @keyframes spin {
106
+ 0% {
107
+ background-position:
108
+ 50% 0,
109
+ 100% 100%,
110
+ 0 100%,
111
+ 0 0;
112
+ }
113
+
114
+ 25% {
115
+ background-position:
116
+ 0 0,
117
+ 100% 50%,
118
+ 0 100%,
119
+ 0 0;
120
+ }
121
+
122
+ 50% {
123
+ background-position:
124
+ 0 0,
125
+ 100% 0,
126
+ 50% 100%,
127
+ 0 0;
128
+ }
129
+
130
+ 75% {
131
+ background-position:
132
+ 0 0,
133
+ 100% 0,
134
+ 100% 100%,
135
+ 0 50%;
136
+ }
137
+
138
+ 75.1% {
139
+ background-position:
140
+ 100% 0,
141
+ 100% 0,
142
+ 100% 100%,
143
+ 0 50%;
144
+ }
145
+
146
+ 100% {
147
+ background-position:
148
+ 50% 0,
149
+ 100% 0,
150
+ 100% 100%,
151
+ 0 100%;
152
+ }
153
+ }
154
+ }
155
+ }
@@ -0,0 +1 @@
1
+ export * from './avatar.component';