{"version":3,"file":"sapphire-ion-framework.mjs","sources":["../../src/lib/classes/comparison/comparison-operator.ts","../../src/lib/classes/comparison/comparison.ts","../../src/lib/classes/comparison/comparison-value-type.ts","../../src/lib/classes/comparison/properties/bool-property.ts","../../src/lib/classes/comparison/properties/date-property.ts","../../src/lib/classes/comparison/properties/datetime-property.ts","../../src/lib/classes/comparison/properties/decimal-property.ts","../../src/lib/classes/comparison/properties/enum-property.ts","../../src/lib/classes/comparison/properties/implicit-property.ts","../../src/lib/classes/comparison/properties/int-property.ts","../../src/lib/classes/comparison/properties/long-property.ts","../../src/lib/classes/comparison/properties/string-property.ts","../../src/lib/classes/comparison/properties/time-property.ts","../../src/lib/services/utils.service.ts","../../src/lib/classes/filters/view-filtros.ts","../../src/lib/classes/inputs/table-field-form-builder.ts","../../src/lib/components/inputs/input-type.ts","../../src/lib/components/inputs/input-decimal/input-decimal.configuration.ts","../../src/lib/components/inputs/input-string/input-string.configuration.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration.ts","../../src/lib/services/modal-focus-trap.service.ts","../../src/lib/services/popover-focus-trap.service.ts","../../src/lib/core.module.ts","../../src/lib/classes/environment.ts","../../src/lib/services/environment.service.ts","../../src/lib/services/web/api-url-provider.service.ts","../../src/lib/services/generic.service.ts","../../src/lib/services/web/http.service.ts","../../src/lib/components/inputs/input-bool/input-bool.configuration.ts","../../src/lib/services/web/http.ativo.service.ts","../../src/lib/components/inputs/input-select/input.select.configuration.ts","../../src/lib/components/inputs/input-date/input-date.configuration.ts","../../src/lib/components/inputs/input-file/input-file.configuration.ts","../../src/lib/classes/inputs/table-field.ts","../../src/lib/classes/routes/default-routing-factory.ts","../../src/lib/classes/routes/id-preloader-configuration.ts","../../src/lib/classes/routes/route-data.ts","../../src/lib/classes/infinite-scroll.ts","../../src/lib/components/carousel/i-carousel-item.component.ts","../../src/lib/components/loading/loading.component.ts","../../src/lib/components/loading/loading.component.html","../../src/lib/services/auth.service.ts","../../src/lib/pipes/secure.pipe.ts","../../src/lib/components/image/image.component.ts","../../src/lib/components/image/image.component.html","../../src/lib/components/carousel/carousel-image/carousel-image.component.ts","../../src/lib/components/carousel/carousel-image/carousel-image.component.html","../../src/lib/components/carousel/carousel-item/carousel-item.component.ts","../../src/lib/components/carousel/carousel-item/carousel-item.component.html","../../src/lib/components/carousel/carousel.component.ts","../../src/lib/components/carousel/carousel.component.html","../../src/lib/components/carousel/carousel.module.ts","../../src/lib/components/content-block/content-block.component.ts","../../src/lib/components/content-block/content-block.component.html","../../src/lib/components/default/default-list/header-list/header-list.component.ts","../../src/lib/components/default/default-list/header-list/header-list.component.html","../../src/lib/components/default/default-list/list.ts","../../src/lib/components/inputs/input-telefone/input-telefone.configuration.ts","../../src/lib/components/inputs/input-provider-factory.ts","../../src/lib/components/inputs/custom-input.ts","../../src/lib/components/inputs/input-telefone/input-telefone.component.ts","../../src/lib/components/inputs/input-telefone/input-telefone.component.html","../../src/lib/services/web/storage.service.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.ts","../../src/lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component.html","../../src/lib/components/inputs/input-cep/input-cep.configuration.ts","../../src/lib/components/inputs/input-cep/input-cep.component.ts","../../src/lib/components/inputs/input-cep/input-cep.component.html","../../src/lib/directives/ng-var.directive.ts","../../src/lib/components/inputs/input-file/download-button/download-button.component.ts","../../src/lib/components/inputs/input-file/download-button/download-button.component.html","../../src/lib/components/default/default-pagination/default-pagination.component.ts","../../src/lib/components/default/default-pagination/default-pagination.component.html","../../src/lib/components/popover/sion-popover/sion-popover.component.ts","../../src/lib/components/popover/sion-popover/sion-popover.component.html","../../src/lib/components/inputs/input-date/input-date.component.ts","../../src/lib/components/inputs/input-date/input-date.component.html","../../src/lib/components/inputs/input-decimal/input-decimal.component.ts","../../src/lib/components/inputs/input-decimal/input-decimal.component.html","../../src/lib/components/inputs/input-select/directives/sion-placeholder-template.directive.ts","../../src/lib/components/inputs/input-select/directives/sion-option-template.directive.ts","../../src/lib/components/inputs/input-select/directives/sion-label-template.directive.ts","../../src/lib/components/inputs/input-select/input-select.component.ts","../../src/lib/components/inputs/input-select/input-select.component.html","../../src/lib/components/inputs/input-string/input-string.component.ts","../../src/lib/components/inputs/input-string/input-string.component.html","../../src/lib/components/default/default-table/th-filter/th-filter.component.ts","../../src/lib/components/default/default-table/th-filter/th-filter.component.html","../../src/lib/components/default/default-table/default-table.component.ts","../../src/lib/components/default/default-table/default-table.component.html","../../src/lib/components/default/default-list/default-list.component.ts","../../src/lib/components/default/default-list/default-list.component.html","../../src/lib/components/default/default-list/abstract-list.ts","../../src/lib/services/navigation-context.service.ts","../../src/lib/components/default/default-view/header-view/header-view.component.ts","../../src/lib/components/default/default-view/header-view/header-view.component.html","../../src/lib/components/default/default-view/view.ts","../../src/lib/components/inputs/input-bool/input-bool.component.ts","../../src/lib/components/inputs/input-bool/input-bool.component.html","../../src/lib/components/inputs/input-color/input-color.component.ts","../../src/lib/components/inputs/input-color/input-color.component.html","../../src/lib/components/inputs/input-file/input-file.component.ts","../../src/lib/components/inputs/input-file/input-file.component.html","../../src/lib/components/inputs/input-icon/ionicons.ts","../../src/lib/components/inputs/input-icon/fluenticons.ts","../../src/lib/components/inputs/input-icon/input-icon.component.ts","../../src/lib/components/inputs/input-icon/input-icon.component.html","../../src/lib/components/inputs/input-textarea/input-textarea.configuration.ts","../../src/lib/components/inputs/input-textarea/input-textarea.component.ts","../../src/lib/components/inputs/input-textarea/input-textarea.component.html","../../src/lib/components/default/default-view/default-view.component.ts","../../src/lib/components/default/default-view/default-view.component.html","../../src/lib/components/default/default-view/abstract-view.ts","../../src/lib/components/popover/sion-popover.module.ts","../../src/lib/components/inputs/inputs.module.ts","../../src/lib/components/default/default.module.ts","../../src/lib/services/route/route.cache.service.ts","../../src/lib/services/route/route.provider.service.ts","../../src/lib/components/default-page/default.page.ts","../../src/lib/components/default-page/default.page.html","../../src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.ts","../../src/lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component.html","../../src/lib/components/drag-drop-file/drag-drop-file.directive.ts","../../src/lib/components/drag-drop-file/drag-drop-file.module.ts","../../src/lib/components/drawer/default-drawer-end/default-drawer-end.component.ts","../../src/lib/components/drawer/default-drawer-end/default-drawer-end.component.html","../../src/lib/components/drawer/menu.ts","../../src/lib/components/drawer/drawer-group/drawer-group.component.ts","../../src/lib/components/drawer/drawer-group/drawer-group.component.html","../../src/lib/components/drawer/drawer.component.ts","../../src/lib/components/drawer/drawer.component.html","../../src/lib/components/filter/filter.component.ts","../../src/lib/components/filter/filter.component.html","../../src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.ts","../../src/lib/components/http-responses-pages/forbidden-403/forbidden-403.component.html","../../src/lib/components/info-popover/info-popover.component.ts","../../src/lib/components/info-popover/info-popover.component.html","../../src/lib/components/inputs/input-default-configurations.ts","../../src/lib/components/inputs/input-validators.ts","../../src/lib/services/usuario.service.ts","../../src/lib/components/login/login-admin/login-admin.component.ts","../../src/lib/components/login/login-admin/login-admin.component.html","../../src/lib/components/login/login.component.ts","../../src/lib/components/login/login.component.html","../../src/lib/components/main-content/main-content.component.ts","../../src/lib/components/main-content/main-content.component.html","../../src/lib/components/sion-card/sion-card.component.ts","../../src/lib/components/sion-card/sion-card.component.html","../../src/lib/components/stepper/step/step.component.ts","../../src/lib/components/stepper/step/step.component.html","../../src/lib/components/stepper/stepper.component.ts","../../src/lib/components/stepper/stepper.component.html","../../src/lib/components/stepper/stepper.module.ts","../../src/lib/components/tabs/tab/tab.component.ts","../../src/lib/components/tabs/tab/tab.component.html","../../src/lib/components/tabs/tabs/tabs.component.ts","../../src/lib/components/tabs/tabs/tabs.component.html","../../src/lib/components/tabs/tabs.module.ts","../../src/lib/components/tooltip/tooltip.component.ts","../../src/lib/components/tooltip/tooltip.component.html","../../src/lib/components/text-tooltip/text-tooltip.component.ts","../../src/lib/components/text-tooltip/text-tooltip.component.html","../../src/lib/guards/auth.guard.ts","../../src/lib/guards/error.interceptor.ts","../../src/lib/guards/token.interceptor.ts","../../src/lib/index.ts","../../src/public-api.ts","../../src/sapphire-ion-framework.ts"],"sourcesContent":["export enum ComparisonOperator{\r\n  Equals             = 1,\r\n  GreaterThan        = 2,\r\n  GreaterThanOrEqual = 3,\r\n  LessThan           = 4,\r\n  LessThanOrEqual    = 5,\r\n  IsContainedIn      = 6,\r\n}\r\n\r\nexport const ComparisonOperatorString: Map<ComparisonOperator, string> = new Map<ComparisonOperator, string>([\r\n  [ComparisonOperator.Equals            , \"Equals\"            ],\r\n  [ComparisonOperator.GreaterThan       , \"GreaterThan\"       ],\r\n  [ComparisonOperator.GreaterThanOrEqual, \"GreaterThanOrEqual\"],\r\n  [ComparisonOperator.LessThan          , \"LessThan\"          ],\r\n  [ComparisonOperator.LessThanOrEqual   , \"LessThanOrEqual\"   ],\r\n  [ComparisonOperator.IsContainedIn     , \"IsContainedIn\"     ],\r\n]);\r\n","import { TableField } from \"../inputs/table-field\";\r\nimport { ComparisonOperator, ComparisonOperatorString } from \"./comparison-operator\";\r\nimport { ComparisonValueType } from \"./comparison-value-type\";\r\n\r\nexport class Comparison<T = any> {\r\n  constructor(\r\n    public propertyName: string,\r\n    public operator: ComparisonOperator,\r\n    public value: T | undefined = undefined,\r\n    public valueType: ComparisonValueType,\r\n\r\n    public disableChange: boolean = false,\r\n\r\n    /** @beta */\r\n    public isNot: boolean = false,\r\n\r\n    /** @beta */\r\n    public targetTable: string | undefined = undefined,\r\n  ){}\r\n\r\n  public toString(): string {\r\n    return `${this.propertyName} ${ComparisonOperatorString.get(this.operator)} ${this.value}`;\r\n  }\r\n}\r\n\r\nexport function CompileLstTableField(lstTableFields: TableField[]): Comparison[] {\r\n  var lstComparison: Comparison[] = [];\r\n  for (const tf of lstTableFields) {\r\n    if(!tf.filter){ continue; } \r\n\r\n    if(lstComparison){\r\n      lstComparison.push(...tf.filter);\r\n    }else{\r\n      lstComparison = [...tf.filter]; \r\n    }\r\n  }\r\n  return lstComparison;\r\n}\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport function CompileFilters(filter: Comparison[]){\r\n  return filter.map(p => p);\r\n}","export enum ComparisonValueType{\r\n  Long       = 10,\r\n  ListLong   = 11,\r\n  \r\n  Int        = 20,\r\n  ListInt    = 21,\r\n  \r\n  Enum       = 30,\r\n  ListEnum   = 31,\r\n\r\n  Decimal    = 40,\r\n  ListDecimal = 41,\r\n\r\n  String     = 50,\r\n  ListString = 51,\r\n\r\n  DateTime   = 60,\r\n  ListDateTime = 61,\r\n\r\n  Date       = 70,\r\n  ListDate   = 71,\r\n\r\n  Time       = 80,\r\n  ListTime   = 81,\r\n\r\n\r\n  List       = 90,\r\n  ListList   = 91,\r\n\r\n  Bool       = 100,\r\n  ListBool   = 101,\r\n\r\n  ListUnknown = 200,\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class BoolProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: boolean): Comparison<boolean> {\r\n    return new Comparison<boolean>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Bool);\r\n  }\r\n  IsContainedIn(value: boolean[]): Comparison<boolean[]> {\r\n    return new Comparison<boolean[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListBool);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DateProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Date);\r\n  }\r\n  GreaterThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Date);\r\n  }\r\n  GreaterThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Date);\r\n  }\r\n  LessThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Date);\r\n  }\r\n  LessThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Date);\r\n  }\r\n  IsContainedIn(value: string[]): Comparison<string[]> {\r\n    return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDate);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DateTimeProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.DateTime);\r\n  }\r\n  GreaterThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.DateTime);\r\n  }\r\n  GreaterThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.DateTime);\r\n  }\r\n  LessThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.DateTime);\r\n  }\r\n  LessThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.DateTime);\r\n  }\r\n  IsContainedIn(value: string[]): Comparison<string[]> {\r\n    return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDateTime);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class DecimalProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Decimal);\r\n  }\r\n  GreaterThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Decimal);\r\n  }\r\n  GreaterThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Decimal);\r\n  }\r\n  LessThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Decimal);\r\n  }\r\n  LessThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Decimal);\r\n  }\r\n  IsContainedIn(value: number[]): Comparison<number[]> {\r\n    return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListDecimal);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class EnumProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Enum);\r\n  }\r\n  GreaterThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Enum);\r\n  }\r\n  GreaterThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Enum);\r\n  }\r\n  LessThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Enum);\r\n  }\r\n  LessThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Enum);\r\n  }\r\n  IsContainedIn(value: number[]): Comparison<number[]> {\r\n    return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListEnum);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class ImplicitProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  IsContainedIn(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListUnknown);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class IntProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Int);\r\n  }\r\n  GreaterThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Int);\r\n  }\r\n  GreaterThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Int);\r\n  }\r\n  LessThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Int);\r\n  }\r\n  LessThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Int);\r\n  }\r\n  IsContainedIn(value: number[]): Comparison<number[]> {\r\n    return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListInt);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class LongProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Long);\r\n  }\r\n  GreaterThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Long);\r\n  }\r\n  GreaterThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Long);\r\n  }\r\n  LessThan(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Long);\r\n  }\r\n  LessThanOrEqual(value: number): Comparison<number> {\r\n    return new Comparison<number>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Long);\r\n  }\r\n  IsContainedIn(value: number[]): Comparison<number[]> {\r\n    return new Comparison<number[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListLong);\r\n  }\r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class StringProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.String);\r\n  }\r\n  IsContainedIn(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.String);\r\n  } \r\n}","import { Comparison } from \"../comparison\";\r\nimport { ComparisonOperator } from \"../comparison-operator\";\r\nimport { ComparisonValueType } from \"../comparison-value-type\";\r\n\r\nexport class TimeProperty {\r\n  constructor(\r\n    public propertyName: string\r\n  ) {  }\r\n  \r\n  Equals(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.Equals, value, ComparisonValueType.Time);\r\n  }\r\n  GreaterThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThan, value, ComparisonValueType.Time);\r\n  }\r\n  GreaterThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.GreaterThanOrEqual, value, ComparisonValueType.Time);\r\n  }\r\n  LessThan(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThan, value, ComparisonValueType.Time);\r\n  }\r\n  LessThanOrEqual(value: string): Comparison<string> {\r\n    return new Comparison<string>(this.propertyName, ComparisonOperator.LessThanOrEqual, value, ComparisonValueType.Time);\r\n  }\r\n  IsContainedIn(value: string[]): Comparison<string[]> {\r\n    return new Comparison<string[]>(this.propertyName, ComparisonOperator.IsContainedIn, value, ComparisonValueType.ListTime);\r\n  }\r\n}","import { ActionSheetButton, ActionSheetController } from '@ionic/angular';\r\nimport { FilePicker, PickFilesResult, PickedFile, PickFilesOptions } from '@capawesome/capacitor-file-picker';\r\nimport { Camera, CameraResultType, CameraSource } from '@capacitor/camera';\r\nimport { OverlayEventDetail } from '@ionic/core';\r\nimport { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { Buffer } from 'buffer';\r\nimport mime from 'mime';\r\nimport { InputFileConfiguration } from '../components/inputs/input-file/input-file.configuration';\r\nimport { Capacitor } from '@capacitor/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UtilsService{\r\n\r\n  constructor(private actionSheetController: ActionSheetController) {\r\n  }\r\n\r\n  /** Retorna um array de arquivos de acordo com o tipo de configutação */\r\n  async SelectFile(configuration: InputFileConfiguration): Promise<File>{\r\n    enum SelectType {\r\n      camera = 1,\r\n      galery = 2,\r\n      file   = 3,\r\n      deny   = 4,\r\n    }\r\n\r\n    const btnCamera: ActionSheetButton = { text: 'Câmera'            , icon: 'camera'      , data: SelectType.camera }\r\n    const btnGalery: ActionSheetButton = { text: 'Galeria'           , icon: 'image'       , data: SelectType.galery }\r\n    const btnFile  : ActionSheetButton = { text: 'Selecionar Arquivo', icon: 'document'    , data: SelectType.file   }\r\n    const btnDeny  : ActionSheetButton = { text: 'Cancelar'          , icon: 'close-circle', data: SelectType.deny, role: 'cancel', };\r\n\r\n    const isApp = (!document.URL.startsWith('http') || document.URL.startsWith('http://localhost:8080'));\r\n\r\n    var lstBtn: any[] = [];\r\n    if(isApp){ \r\n      lstBtn.push(btnCamera); \r\n      lstBtn.push(btnGalery);\r\n    }\r\n    lstBtn.push(btnFile);\r\n    lstBtn.push(btnDeny);\r\n\r\n    var res: OverlayEventDetail<any>;\r\n    if(lstBtn.length > 2){\r\n      const actionSheet = await this.actionSheetController.create({ buttons: lstBtn });\r\n      actionSheet.present();\r\n      res = await actionSheet.onDidDismiss();\r\n    }else{\r\n      res = { role: 'confirm', data: lstBtn[0].data };\r\n    }\r\n\r\n    \r\n    if(['backdrop', 'cancel'].includes(res.role)){ return; }\r\n\r\n    if([SelectType.camera, SelectType.galery].includes(res.data)){ \r\n      const Source = res.data == SelectType.camera ? CameraSource.Camera : CameraSource.Photos\r\n      //const photo = await Camera.getPhoto({ resultType: CameraResultType.Uri, source: Source, quality: 100 });\r\n      console.error(\"[ TODO ]\")\r\n      return null;\r\n    }else{\r\n      const res: Promise<PickFilesResult> = FilePicker.pickFiles({ types: configuration.types, limit: 1 });\r\n      const files: PickedFile[] = (await res).files;\r\n      return files.map(p => <File>p.blob)[0];\r\n    }\r\n  } \r\n}\r\n\r\nexport class Utils {\r\n  /** Converte de unix para Date object */\r\n  static UNIXToDate(unix_timestamp: number): Date {\r\n    var date = new Date(unix_timestamp * 1000);\r\n    return date;\r\n  }\r\n  \r\n  /**\r\n   * @param DateStr - Date on ISO format, e.g: \r\n   * [ 2010-10-05T14:48:00.000Z ]\r\n   * @returns Date on format DD/MM/YYYY\r\n  */\r\n  static DateISOToDDMMYYYYHHMM(iso: string, onInvalidDateString: string = '-'): string{\r\n    if(!iso){ return onInvalidDateString; }\r\n    return moment(iso).format(\"DD/MM/YYYY HH:mm\");\r\n  }\r\n\r\n  /**\r\n     * @param iso - Date on ISO format, e.g: \r\n     * [ 2010-10-05T14:48:00.000Z ]\r\n     * @returns Date on format DD/MM/YYYY\r\n    */\r\n  static DateISOToDDMMYYYY(iso: string, onInvalidDateString: string = '-'): string{\r\n    if(!iso){ return onInvalidDateString; }\r\n    return moment(iso).format(\"DD/MM/YYYY\");\r\n  }\r\n\r\n  static GenerateGUID(): string {\r\n    return 'id-xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n      var r = Math.random() * 16 | 0,\r\n      v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n      return v.toString(16);\r\n    });\r\n  }\r\n\r\n  /** \r\n   * @param file: base64 | Blob\r\n   */\r\n  static async DownloadFile(file: string | Blob, fileName: string){\r\n    var blob: Blob = null;\r\n    if(!(file instanceof Blob)){\r\n      blob = await Utils.Base64ToBlob(file, Utils.FindMimeFromNameOrExtension(fileName));\r\n    }\r\n    else{ \r\n      blob = file; \r\n    }\r\n\r\n    var fileURL = URL.createObjectURL(blob);\r\n    const linkElement = document.createElement(\"a\");\r\n    linkElement.setAttribute(\"href\", fileURL);\r\n    linkElement.setAttribute(\"target\", \"_blank\");\r\n    linkElement.setAttribute(\"download\", fileName);\r\n\r\n    let me = new MouseEvent(\"click\", {\r\n      view: window,\r\n      bubbles: true,\r\n      cancelable: false,\r\n    });\r\n\r\n    linkElement.dispatchEvent(me);\r\n  }\r\n\r\n  public static async BlobToBase64(blob: Blob): Promise<string> {\r\n    const ab = await blob.arrayBuffer();\r\n    return Buffer.from(ab).toString(\"base64\");\r\n  }\r\n\r\n  public static async Base64ToBlob(base64: string, mimeType: string): Promise<Blob> {\r\n    return new Blob([Buffer.from(base64, \"base64\")], { type: mimeType })\r\n  }\r\n\r\n  public static async GetPhoto(params?: {\r\n    quality?: number,\r\n    source?: CameraSource\r\n  }): Promise<{\r\n    blob: Blob\r\n    fileName: string\r\n  }>{\r\n    const quality = params?.quality || 70;\r\n    const source  = params?.source || CameraSource.Camera;\r\n    const ph   = await Camera.getPhoto({ \r\n      resultType: CameraResultType.Uri, \r\n      source : source,\r\n      quality: quality\r\n    });\r\n    const file = await fetch(ph.webPath);\r\n    const blob = await file.blob();\r\n    return { blob, fileName: ph.path.split('/').at(-1) };\r\n  }\r\n\r\n  public static async PickFile(options?: PickFilesOptions): Promise<{\r\n    blob: Blob,\r\n    mimeType: string,\r\n    name: string,\r\n    size: number,\r\n  }[]> {\r\n    const Pick = await FilePicker.pickFiles(options);\r\n    let lstBlob = Pick.files.map(async vFile => {\r\n      let blob = null;\r\n      if(Capacitor.isNativePlatform()){\r\n        blob = new Blob([await (await fetch(Capacitor.convertFileSrc(vFile.path))).blob()], { type: vFile.mimeType });\r\n      }\r\n      else{\r\n        blob = vFile.blob;\r\n      }\r\n      return {\r\n        blob,\r\n        mimeType: vFile.mimeType,\r\n        name: vFile.name,\r\n        size: vFile.size,\r\n      };\r\n    });\r\n    return Promise.all(lstBlob);    \r\n  }\r\n\r\n  static FindMimeFromNameOrExtension(pathOrExtension: string){\r\n    return mime.getType(pathOrExtension) || 'application/octet-stream';\r\n  }\r\n}\r\n\r\nexport function Search<T = any>(items: T[], Search: string, bindLabel: ((obj: T) => string)): T[] {\r\n  return items.filter(p => bindLabel(p)?.toLowerCase().includes(Search.toLowerCase()));\r\n}\r\n\r\nexport function Timeout(timeout: number): Promise<void>{\r\n  return new Promise(resolve => setTimeout(resolve, timeout));\r\n}\r\n\r\n//[ Base 64 ]\r\nfunction DecodeBase64<T>(b64: string): T{\r\n  return JSON.parse(Buffer.from(b64, 'base64').toString('utf-8'));\r\n}\r\n\r\nfunction DecodeBase64AsString(b64: string) {\r\n  return Buffer.from(b64, 'base64').toString('utf-8');\r\n}\r\n\r\nfunction EncodeBase64(obj: any | string): string{\r\n  if(typeof obj == \"object\"){\r\n    return Buffer.from(JSON.stringify(obj)).toString('base64');\r\n  }\r\n  else\r\n  if(typeof obj == \"string\"){\r\n    return Buffer.from(obj).toString('base64');\r\n  }\r\n}\r\n\r\nexport const INT_MAX = 2_147_483_646;","import { INT_MAX } from \"../../services/utils.service\";\r\nimport { Comparison } from \"../comparison/comparison\";\r\n\r\nexport class ViewFiltros{\r\n  limit          : number       = 0;\r\n  public filter  : Comparison[] = [];\r\n\r\n  constructor(\r\n      limit : number | null = 25, \r\n      public search: string = \"\", \r\n      public page  : number = 1, \r\n      public orderByProperty: string | null = null, \r\n      public ascending      : boolean = true\r\n  ){\r\n      if(limit == null){ this.limit = INT_MAX } \r\n      else             { this.limit = limit; }\r\n  }\r\n}","import { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { TableField } from \"./table-field\";\r\n\r\nexport class TableFieldFormBuilder {\r\n  static create<T = any>(lstTableFields: TableField[], fb: FormBuilder): FormGroup{\r\n    const frm: FormGroup = fb.group({});\r\n    for (const field of lstTableFields) {\r\n      frm.addControl(field.index, field.formControl);\r\n    }\r\n    return frm;\r\n  }\r\n}","export enum InputType {\r\n  Bool     = \"Bool\",\r\n  Cep      = \"Cep\",\r\n  Color    = \"Color\",\r\n  CpfCnpj  = \"CpfCnpj\",\r\n  Cpf      = \"Cpf\",\r\n  Cnpj     = \"Cnpj\",\r\n  Date     = \"Date\",\r\n  DateTime = \"DateTime\",\r\n  Time     = \"Time\",\r\n  Decimal  = \"Decimal\",\r\n  Currency = \"Currency\",\r\n  Number   = \"Number\",\r\n  File     = \"File\",\r\n  Icon     = \"Icon\",\r\n  Select   = \"Select\",\r\n  String   = \"String\",\r\n  TelefoneCelular = \"TelefoneCelular\",\r\n  Telefone = \"Telefone\",\r\n  Celular = \"Celular\",\r\n  TextArea = \"TextArea\",\r\n}\r\n","export class InputDecimalConfiguration{\r\n  prefix      : string;\r\n  sufix       : string;\r\n  placeholder : string;\r\n\r\n  constructor(\r\n    /** Declara a quantidade de numeros apos o ponto  */\r\n    public precision: number = 2, \r\n    /** Texto no inicio do input */\r\n    prefix: string | null = null, \r\n    /** Texto no fim do input */\r\n    sufix: string | null = null, \r\n    /** Se = false não aplica virgulas no lugar do separador a cada 3 unidades */\r\n    public thousandSeparator: string = '.',\r\n    public decimalSeparator : string = ','\r\n  ){\r\n    if(!prefix){ this.prefix = ''; }else{ this.prefix = prefix; }\r\n    if(!sufix ){ this.sufix  = ''; }else{ this.sufix  = sufix; }\r\n\r\n    this.placeholder = \"-\";\r\n    if(precision > 0){\r\n      this.placeholder += this.decimalSeparator;\r\n      for(let i = precision; i > 0; i--){\r\n        this.placeholder += \"-\";\r\n      }\r\n    }\r\n  }\r\n} \r\nexport class InputNumberConfiguration extends InputDecimalConfiguration {\r\n  constructor(\r\n    prefix: string = \"\", \r\n    sufix : string = \"\", \r\n    thousandSeparator: string = '.'\r\n  ){\r\n    super(0, prefix, sufix, thousandSeparator);\r\n  }\r\n}\r\nexport class InputCurrencyConfiguration extends InputDecimalConfiguration {\r\n  constructor(prefix: string = \"R$\", sufix: string = \"\", thousandSeparator: string = '.'){\r\n    super(2, prefix, sufix, thousandSeparator);\r\n  }\r\n}\r\nexport class InputPercentageConfiguration extends InputDecimalConfiguration {\r\n  constructor(prefix: string = \"\", sufix: string = \"%\", thousandSeparator: string = '.'){\r\n    super(2, prefix, sufix, thousandSeparator);\r\n  }\r\n}\r\n","export enum InputStringType{\r\n  Text     = \"text\", \r\n  Password = \"password\", \r\n  Email    = \"email\", \r\n  Number   = \"number\", \r\n  Search   = \"search\", \r\n  Tel      = \"tel\", \r\n  Url      = \"url\"\r\n}\r\n\r\nexport class InputStringConfiguration{\r\n  maxlength: number;\r\n  type: InputStringType = InputStringType.Text;\r\n  autoGrow: boolean = false;\r\n  constructor(type: InputStringType = InputStringType.Text, maxlength: number = 255, autoGrow = false){\r\n    this.type      = type; \r\n    this.maxlength = maxlength;\r\n    this.autoGrow  = autoGrow;\r\n  }\r\n}\r\n","export type CPFCnpj = 'CPF' | 'CNPJ' | 'CPFCNPJ'\r\nexport class InputCpfCnpjConfiguration {\r\n  constructor(public type: CPFCnpj = 'CPFCNPJ'){}\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Corrige o focus trap em modais do Ionic, permite que o foco não fique preso dentro do modal.\r\n * Utilizado para concertar interatividade com popovers e outros elementos que podem ser interativos fora do modal.\r\n */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ModalFocusTrapService {\r\n  \r\n  constructor() {\r\n    this.initGlobalFocusTrapDisable();\r\n  }\r\n\r\n  private initGlobalFocusTrapDisable() {\r\n    // Wait for the platform to be ready\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n      this.setupModalObserver();\r\n    });\r\n  }\r\n\r\n  private setupModalObserver() {\r\n    // Create a mutation observer to watch for new modals\r\n    const observer = new MutationObserver((mutations) => {\r\n      mutations.forEach((mutation) => {\r\n        mutation.addedNodes.forEach((node) => {\r\n          if (node.nodeType === Node.ELEMENT_NODE) {\r\n            const element = node as Element;\r\n            \r\n            // Check if the added node is an ion-modal\r\n            if (element.tagName?.toLowerCase() === 'ion-modal') {\r\n              this.disableFocusTrap(element);\r\n            }\r\n            \r\n            // Check for ion-modal children\r\n            const modals = element.querySelectorAll?.('ion-modal');\r\n            modals?.forEach(modal => this.disableFocusTrap(modal));\r\n          }\r\n        });\r\n      });\r\n    });\r\n\r\n    // Start observing\r\n    observer.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n\r\n    // Also handle existing modals\r\n    const existingModals = document.querySelectorAll('ion-modal');\r\n    existingModals.forEach(modal => this.disableFocusTrap(modal));\r\n  }\r\n\r\n  private disableFocusTrap(modal: Element) {\r\n    // Add the CSS class\r\n    modal.classList.add('ion-disable-focus-trap');\r\n    \r\n    // Set the property if it exists\r\n    const modalElement = modal as any;\r\n    if (modalElement.disableFocusTrap !== undefined) {\r\n      modalElement.disableFocusTrap = true;\r\n    }\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Corrige o focus trap em modais do Ionic, permite que o foco não fique preso dentro do popover.\r\n * Utilizado para concertar interatividade com popovers e outros elementos que podem ser interativos fora do popover.\r\n */\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PopoverFocusTrapService {\r\n  \r\n  constructor() {\r\n    this.initGlobalFocusTrapDisable();\r\n  }\r\n\r\n  private initGlobalFocusTrapDisable() {\r\n    // Wait for the platform to be ready\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n      this.setuppopoverObserver();\r\n    });\r\n  }\r\n\r\n  private setuppopoverObserver() {\r\n    // Create a mutation observer to watch for new popovers\r\n    const observer = new MutationObserver((mutations) => {\r\n      mutations.forEach((mutation) => {\r\n        mutation.addedNodes.forEach((node) => {\r\n          if (node.nodeType === Node.ELEMENT_NODE) {\r\n            const element = node as Element;\r\n            \r\n            // Check if the added node is an ion-popover\r\n            if (element.tagName?.toLowerCase() === 'ion-popover') {\r\n              this.disableFocusTrap(element);\r\n            }\r\n            \r\n            // Check for ion-popover children\r\n            const popovers = element.querySelectorAll?.('ion-popover');\r\n            popovers?.forEach(popover => this.disableFocusTrap(popover));\r\n          }\r\n        });\r\n      });\r\n    });\r\n\r\n    // Start observing\r\n    observer.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n\r\n    // Also handle existing popovers\r\n    const existingpopovers = document.querySelectorAll('ion-popover');\r\n    existingpopovers.forEach(popover => this.disableFocusTrap(popover));\r\n  }\r\n\r\n  private disableFocusTrap(popover: Element) {\r\n    // Add the CSS class\r\n    popover.classList.add('ion-disable-focus-trap');\r\n    \r\n    // Set the property if it exists\r\n    const popoverElement = popover as any;\r\n    if (popoverElement.disableFocusTrap !== undefined) {\r\n      popoverElement.disableFocusTrap = true;\r\n    }\r\n  }\r\n}","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { Environment } from './classes/environment';\r\nimport { EnvironmentService } from './services/environment.service';\r\nimport { ModalFocusTrapService } from './services/modal-focus-trap.service';\r\nimport { PopoverFocusTrapService } from './services/popover-focus-trap.service';\r\n\r\nexport const EnvironmentInjectionToken = new InjectionToken<Environment>('Environment');\r\n@NgModule({\r\n  declarations: [],\r\n  exports     : [],\r\n  imports: [ CommonModule, ],\r\n  providers: [ ModalFocusTrapService , PopoverFocusTrapService],\r\n})\r\nexport class SapphireIonFrameworkModule { \r\n  constructor( private mis: ModalFocusTrapService, private pos : PopoverFocusTrapService ) {}\r\n\r\n  static forRoot(config: Environment): ModuleWithProviders<SapphireIonFrameworkModule> {\r\n    return { \r\n      ngModule: SapphireIonFrameworkModule,\r\n      providers: [ \r\n        ModalFocusTrapService,\r\n        PopoverFocusTrapService,\r\n        EnvironmentService, { provide: EnvironmentInjectionToken, useValue: config }, \r\n      ]\r\n    }\r\n  }\r\n}\r\n","import { INT_MAX } from \"../services/utils.service\";\r\nimport { Credentials } from \"./credentials\";\r\nimport { ViewFiltros } from \"./filters/view-filtros\";\r\nimport { PageOption } from \"./page-option\";\r\n\r\nexport class Environment {\r\n  useFluentIcons : boolean = false;\r\n  production     : boolean = false;\r\n  applicationName: string  = \"Panel\";\r\n  apiUrl         : string | null = null;\r\n  defaultCredentials: Credentials = { apelido: \"admin\", senha: \"Coopertec@2017\" };\r\n  defaultPageLimits : PageOption[] = [\r\n    { value: 25  , label: \"25\"    },\r\n    { value: 50  , label: \"50\"    },\r\n    { value: 100 , label: \"100\"   },\r\n    { value: 200 , label: \"200\"   },\r\n    { value: INT_MAX, label: \"Todos\" },\r\n  ];\r\n  get defaultPageLimit(): number | null {\r\n    return this.defaultPageLimits[0].value\r\n  }\r\n  get defaultPaginationObject(): ViewFiltros{\r\n    return new ViewFiltros(10, \"\", 1)\r\n  }\r\n\r\n  constructor(production: boolean, applicationName: string, apiUrl: string, defaultCredentials?: Credentials, defaultPageLimits?: PageOption[], useFluentIcons: boolean = false) {\r\n    this.production         = production;\r\n    this.applicationName    = applicationName;\r\n    this.apiUrl             = apiUrl;\r\n    //[ ApiUrls ]\r\n    if(defaultCredentials)\r\n    this.defaultCredentials = defaultCredentials;\r\n    if(defaultPageLimits)\r\n    this.defaultPageLimits  = defaultPageLimits;\r\n    this.useFluentIcons     = useFluentIcons;\r\n  }\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { EnvironmentInjectionToken } from \"../core.module\";\r\nimport { Environment } from \"../classes/environment\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class EnvironmentService {\r\n    constructor(@Inject(EnvironmentInjectionToken) private config: Environment) {\r\n        this._environment = this.config;\r\n    }\r\n\r\n    private _environment: Environment\r\n    get environment(): Environment{\r\n        return this._environment;\r\n    }\r\n}","import { Injectable, OnInit } from '@angular/core';\r\nimport { EnvironmentService } from '../environment.service';\r\nimport { Preferences } from '@capacitor/preferences';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ApiUrlProviderService {\r\n\r\n  constructor(\r\n    private coreService: EnvironmentService,\r\n  ) { \r\n    this._production = coreService.environment.production;\r\n\r\n    this.apiUrl = this.coreService.environment.apiUrl;;\r\n\r\n    console.log(`%c [ @sapphire-ion/framework : ${this.coreService.environment.applicationName} started @ development ] | Conectado em: ${this.apiUrl}`, \"background-color: #2fdf75; color: black;\")\r\n  }\r\n\r\n  //#region [ API URL ]\r\n  public _apiUrl: string = '';\r\n\r\n  public get apiUrl(): string{ return this._apiUrl; }\r\n  public set apiUrl(value: string){\r\n    this._apiUrl = value;\r\n  }\r\n  \r\n  private _production: boolean;\r\n\r\n  public get production() { return this._production; }\r\n  //#endregion [ API URL ]\r\n}\r\n\r\n// export class ApiUrl{\r\n//   label     : string; \r\n//   value     : string;\r\n//   production: boolean;\r\n//   constructor(value: string, port: number, production: boolean, https: boolean = false){\r\n//     this.production = production;\r\n//     if(!production){\r\n//       this.value = `http${https ? 's' : ''}://${value}:${port}/`;\r\n//       this.label = value;\r\n//     }else{\r\n//       this.value = `http${https ? 's' : ''}://${value}/`;\r\n//       this.label = 'Produção'\r\n//     }\r\n//   }\r\n// }","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Title } from '@angular/platform-browser';\r\nimport { AlertButton, AlertController, ToastController } from \"@ionic/angular\";\r\n\r\nimport { EnvironmentService } from './environment.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\n\r\nexport class GenericService{\r\n  constructor(\r\n    private toastController: ToastController,\r\n    private alertController: AlertController,\r\n    private titleController: Title,\r\n    private coreService: EnvironmentService,\r\n  ){}\r\n\r\n  public async PresentToast(message: string, icon = 'alert-circle') {\r\n    const toast = await this.toastController.create({\r\n      message: message,\r\n      duration: 1750,\r\n      icon: icon,\r\n      position: 'bottom',\r\n      translucent: false, \r\n    });\r\n\r\n    await toast.present();\r\n  }\r\n  \r\n  public async PresentToastSuccess(message: string = \"Salvo com sucesso!\") {\r\n    const toast = await this.toastController.create({\r\n      message: message,\r\n      duration: 1750,\r\n      icon: 'checkmark-circle',\r\n      position: 'bottom',\r\n      translucent: false,\r\n    });\r\n\r\n    await toast.present();\r\n    return toast.onDidDismiss();\r\n  }\r\n\r\n  public static CancelButton: AlertButton = {\r\n    text: 'Cancelar',\r\n    role: 'cancel',\r\n  }\r\n  public static ConfirmButton : AlertButton = {\r\n    text: 'OK',\r\n    role: 'confirm',\r\n  }\r\n  static defaultAlertButtons: AlertButton[] = [GenericService.ConfirmButton];\r\n\r\n  public async PresentAlert(header: string, message: string, buttons: AlertButton[] = GenericService.defaultAlertButtons) {\r\n    const alert = await this.alertController.create({\r\n      header:  header,\r\n      message: message,\r\n      buttons: buttons,\r\n    });\r\n    await alert.present();\r\n    return alert.onDidDismiss();\r\n  }\r\n\r\n  public SetTitle(title: string){\r\n    this.titleController.setTitle(this.coreService.environment.applicationName + \" | \" + title)\r\n  }\r\n\r\n  public GetId(activatedRoute: ActivatedRoute, depth: number = 2): number | null{\r\n    try{\r\n      var Route = activatedRoute;\r\n      for(let i = 0; i < depth; i++){\r\n        Route = Route.parent;\r\n      }\r\n      if(Route.snapshot.paramMap.has('id')){\r\n        return Number(Route.snapshot.paramMap.get('id'));\r\n      }\r\n      else{\r\n        return 0;\r\n      }\r\n    }catch{\r\n      return null;\r\n    }\r\n  }\r\n}","import { BehaviorSubject, Observable, firstValueFrom } from 'rxjs';\r\nimport { HttpClient, HttpEvent, HttpEventType } from '@angular/common/http';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from './api-url-provider.service';\r\nimport { GenericService } from '../generic.service';\r\nimport { ViewFiltros } from '../../classes/filters/view-filtros';\r\nimport { TableField } from '../../classes/inputs/table-field';\r\nimport { InputType } from '../../components/inputs/input-type';\r\nimport { View } from '../../components/default/default-view/view';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport abstract class HttpService<V = any> {\r\n\r\n  public abstract route: string; \r\n  public abstract title: string; \r\n\r\n  constructor(\r\n    protected http?          : HttpClient,\r\n    protected fb?            : FormBuilder, \r\n    protected genericService?: GenericService,\r\n    protected navController? : NavController,\r\n    protected apiUrlProviderService?: ApiUrlProviderService,\r\n  ) { \r\n    this.http                  = inject(HttpClient);\r\n    this.fb                    = inject(FormBuilder);\r\n    this.genericService        = inject(GenericService);\r\n    this.navController         = inject(NavController);\r\n    this.apiUrlProviderService = inject(ApiUrlProviderService);\r\n  }\r\n\r\n  /**\r\n   * Retorna a rota completa do serviço\r\n   * @return string\r\n   * @example 'https://api.example.com/{route}'\r\n   */\r\n  public get fullRoute(): string{\r\n    return this.apiUrlProviderService.apiUrl + this.route\r\n  }\r\n\r\n  /** \r\n   * Retorna os dados de acordo com os filtros \r\n   * @param vFilter Filtra os dados (Pesquisa, Paginação e IComparison)\r\n  */\r\n  public List(vFilter?: ViewFiltros): Observable<ViewRetorno<V>>{\r\n    return this.http.post<ViewRetorno<V>>(this.fullRoute + `/list`, vFilter);\r\n  }\r\n\r\n  /** Retorna o dado da tabela associada com a rota com o id indicado \r\n   * @param id id do dado\r\n  */\r\n  public Get(id: number): Observable<V> { \r\n    return this.http.get<V>(this.fullRoute +`/get/${id}`);\r\n  }\r\n  \r\n  /** Salva as alterações no dado recebido */\r\n  public Save<T = number>(obj: any | FormGroup | V, view?: View<HttpService>): Observable<T>{\r\n    if(view){ view.submitted = true; }\r\n\r\n    var object = obj;\r\n    \r\n    if(obj instanceof FormGroup){ \r\n      if(obj.invalid){ \r\n        const subject = new BehaviorSubject(null)\r\n        subject.error(\"[ Invalid Form ]\");\r\n        subject.complete();\r\n        this.genericService.PresentToast(\"Verifique os campos!\")\r\n        return subject;\r\n      }\r\n    \r\n      object = obj.value; \r\n    }\r\n\r\n    const formData = this.FilesToForm(object);\r\n    formData.append('view', JSON.stringify(object));\r\n\r\n    //Check in the case it has a file and the view is not passed\r\n    if(Object.entries(object).find(p => p[1] instanceof File) && this.hasFileForm && !view){ \r\n      console.error(\"[ FormGroup contains file, but view isnt a valid parameter ]\"); \r\n    } else \r\n    if(view){ \r\n      return this._Save(formData, view); \r\n    } \r\n\r\n    return this.http.post<T>(this.fullRoute + `/save`, formData);\r\n  }\r\n\r\n  /** Exclui a entidade */\r\n  public Delete(id: number): Observable<void> {\r\n    return this.http.delete<void>(this.fullRoute + `/delete/`+id);\r\n  }\r\n\r\n  /** Retorna todos os dados */\r\n  public Load(vFiltros?: ViewFiltros): Promise<ViewRetorno<V>>{\r\n    return firstValueFrom(this.List(vFiltros));\r\n  }\r\n\r\n  /** Retorna os campos da tabela */\r\n  get lstTableFields()    : TableField[] { return []; }\r\n  /** Retorna os campos da tabela para visualização/edição (se vazio retornara o padrão (lstTableFields)) */ \r\n  get lstTableFieldsView(): TableField[] { return this.lstTableFields; } \r\n\r\n  /** Retora o TableField padrão de id */\r\n  get defaultId() {\r\n    var control = this.fb.control(0);\r\n    const field = new TableField(\"id\", \"id\", control, InputType.Number); \r\n    field.hidden     = true;\r\n    field.hiddenView = true;\r\n    return field\r\n  }\r\n\r\n  /** Retora o TableField padrão de idEmpresa */\r\n  get defaultIdEmpresa() {\r\n    var control = this.fb.control(0);\r\n    const field = new TableField(\"Empresa\", \"idEmpresa\", control, InputType.Select); \r\n    field.hiddenView = true;\r\n    field.hidden     = true;\r\n    return field;\r\n  }\r\n\r\n  private get hasFileForm(): boolean { return this.lstTableFieldsView.filter(p => p.type == InputType.File).length > 0; } \r\n\r\n  protected _Save(formData: FormData, view: View<HttpService>): Observable<any | void>{\r\n    view.loading = true;\r\n\r\n    const subject = new BehaviorSubject<HttpEvent<any>>(null);\r\n\r\n    this.http.post(this.fullRoute + `/save`, formData, { reportProgress: true, observe: 'events' }).subscribe({\r\n      next: (rez) => { \r\n        if(rez.type == HttpEventType.UploadProgress){\r\n          const res = rez.loaded / rez.total!; \r\n          subject.next(rez);\r\n          view.progress = res;  \r\n        }else \r\n        if(rez.type == HttpEventType.Response){\r\n          view.loading   = false; \r\n          view.submitted = false; \r\n          view.Refresh(); \r\n\r\n          const id: number = Number(rez.body)\r\n\r\n          //[ Redirect to view/:id | redirectPath ]\r\n          if(!view.id && id){ \r\n            this.RedirectRoute(id, view.redirectPath, view.GetCurrentRouting()); \r\n          }\r\n        }\r\n      },\r\n      error:(err) => { \r\n        subject.error(err); \r\n        view.loading   = false; \r\n        view.submitted = false; \r\n        subject.complete(); \r\n      },\r\n      complete:() => { \r\n        this.genericService.PresentToastSuccess();\r\n        subject.complete(); \r\n      }\r\n    });\r\n\r\n    return subject;\r\n  }\r\n  private RedirectRoute(id: number, redirectPath: string, activatedRoute: ActivatedRoute): void {\r\n    if (!redirectPath) { return; }\r\n\r\n    const path = redirectPath.replace(':id', id.toString());\r\n\r\n    // se contém \"/from/\", precisa subir 2 níveis\r\n    const currentSegments = activatedRoute.snapshot.url.map(u => u.path);\r\n    const level = currentSegments.includes('from') ? '../../' : '../';\r\n\r\n    this.navController.navigateRoot(\r\n      [ `${level}${path}` ],\r\n      {\r\n        relativeTo: activatedRoute,\r\n        replaceUrl: true, \r\n        state: { __preserveBack: true }\r\n      }\r\n    );\r\n  }\r\n\r\n  public FilesToForm(object: V, formData: FormData = new FormData(), lstTableFieldsView: TableField[] | null = null): FormData {\r\n    if(!lstTableFieldsView){ lstTableFieldsView = this.lstTableFieldsView.filter(p => p.type == InputType.File); }\r\n\r\n    for (const [key, value] of Object.entries(object)) {\r\n      if(lstTableFieldsView.find(p => p.index == key && p.type == InputType.File)){\r\n        if(value && typeof(value) != \"string\"){\r\n          const file = value as File;\r\n          const name = `file-${key}`;\r\n          formData.append(name, file, file.name);\r\n          object[key] = \"\";\r\n        }\r\n      }\r\n    }\r\n    return formData;\r\n  }\r\n}\r\n\r\nexport class ViewRetorno<T = any> {\r\n  lstDados: T[] = [];\r\n  total: number;\r\n}","\r\nexport class InputBoolConfiguration{\r\n  constructor(\r\n    /** Estilo do ckeckbox \r\n     * - checkbox : @link https://ionicframework.com/docs/api/checkbox\r\n     * - toggle : @link https://ionicframework.com/docs/api/toggle\r\n    */\r\n    public type: InputBoolType = InputBoolType.Checkbox\r\n  ){}  \r\n}\r\nexport enum InputBoolType{\r\n  Checkbox = \"checkbox\",\r\n  Toggle   = \"toggle\",\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { InputBoolConfiguration, InputBoolType} from '../../components/inputs/input-bool/input-bool.configuration';\r\nimport { HttpService, ViewRetorno } from './http.service';\r\nimport { ViewFiltros } from '../../classes/filters/view-filtros';\r\nimport { TableField } from '../../classes/inputs/table-field';\r\nimport { InputType } from '../../components/inputs/input-type';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport abstract class HttpServiceAtivo<V = any> extends HttpService<V> {\r\n\r\n  /**\r\n   * Troca o status de ativo da entidade\r\n   */\r\n  Ativar(id: number): Observable<boolean> {\r\n    return this.http.post<boolean>(this.fullRoute + `/ativar/${id}`, {});\r\n  }\r\n\r\n  /**\r\n   * Lista todos os dados ativos\r\n   * @param vFilter\r\n   */\r\n  ListAtivo<T = ViewRetorno>(vFilter?: ViewFiltros): Observable<T> {\r\n    return this.http.post<T>(this.fullRoute + `/listAtivo`, vFilter);\r\n  }\r\n\r\n  /** Table Field padrão de ativo */\r\n  get defaultAtivo(): TableField {\r\n    var control = this.fb.control(true);\r\n    const field = new TableField(\"Ativo\", \"ativo\", control, InputType.Bool);\r\n    field.configuration = new InputBoolConfiguration(InputBoolType.Toggle); \r\n    return field;\r\n  }\r\n}","import { Observable, firstValueFrom } from \"rxjs\";\r\n\r\nimport { HttpService, ViewRetorno } from \"../../../services/web/http.service\";\r\nimport { HttpServiceAtivo } from \"../../../services/web/http.ativo.service\";\r\nimport { ViewFiltros } from \"../../../classes/filters/view-filtros\";\r\nimport { INT_MAX } from \"../../../services/utils.service\";\r\nimport { Comparison } from \"../../../classes/comparison/comparison\";\r\nimport { InputSelectComponent } from \"./input-select.component\";\r\nimport { Placement } from \"@floating-ui/dom\";\r\n\r\nexport type DefaultModelOptions = { value: string, label: string };\r\n\r\nexport enum SelectInterfaces    {\r\n  /** Interface padrão do select \r\n   * Popover quando web, Modal quando mobile\r\n   */\r\n  Dynamic     = 0,\r\n  Popover     = 0,\r\n  Modal       = 1,\r\n  ActionSheet = 2,\r\n} \r\n\r\nexport class InputSelectConfiguration{\r\n \r\n  static Create(options: {\r\n    bindLabel: string | ((obj: any) => string),\r\n    bindValue: string | ((obj: any) => any),\r\n    clearable?: boolean,\r\n    searcheable?: boolean,\r\n    loadFrom?: HttpService | Observable<ViewRetorno> | any[],\r\n    multiple?: boolean,\r\n    vFiltros?: Partial<{ \r\n      search: string,\r\n      orderByProperty: string,\r\n      ascending: boolean,\r\n      filter: Comparison[]\r\n    }>,\r\n    disableConditional?: ((obj: any) => boolean)\r\n    useInfiniteScroll?: boolean | undefined,\r\n    placeholder?: string,\r\n    noItensFoundText?: string,\r\n    interface?: SelectInterfaces,\r\n    hasAtivo?: boolean;\r\n  }\r\n  ){\r\n    const config = new InputSelectConfiguration(\r\n      options.bindValue,\r\n      options.bindLabel,\r\n      options.clearable,\r\n      options.searcheable,\r\n      options.loadFrom,\r\n      options.multiple,\r\n      options.vFiltros || null,\r\n      options.disableConditional || null,\r\n      options.hasAtivo\r\n    );\r\n    if(options.placeholder){\r\n      config.placeholder = options.placeholder;\r\n    }\r\n    if(options.noItensFoundText){\r\n      config.noItensFoundText = options.noItensFoundText;\r\n    }\r\n    if(options.useInfiniteScroll != undefined){\r\n      config.useInfiniteScroll = options.useInfiniteScroll;\r\n    }\r\n    if(options.interface){\r\n      config.interface = options.interface;\r\n    }\r\n    config.hasAtivo = options.hasAtivo ?? false;\r\n    return config;\r\n  };\r\n\r\n\r\n  placeholder     : string = \"Selecione um item...\"\r\n  noItensFoundText: string = \"Sem items encontrados...\"\r\n\r\n  loader: InputSelectDataLoader;\r\n  loadFromArray   : any[];\r\n  loadFromService : HttpService | HttpServiceAtivo\r\n  loadFromFunction: Observable<any>\r\n\r\n  popoverConfiguration: {\r\n    flip: boolean,\r\n    placement: Placement,\r\n  } = {\r\n    flip: true,\r\n    placement: \"bottom\"\r\n  }\r\n\r\n  public vFiltros: ViewFiltros | null = null;\r\n  public useInfiniteScroll?: boolean | undefined = undefined;\r\n\r\n  /** Interface do select */\r\n  public interface: SelectInterfaces = SelectInterfaces.Dynamic;\r\n\r\n  constructor(\r\n    /** Valor que será setado no formControl */\r\n    public bindValue: string | ((obj: any) => any)     = \"id\"  ,\r\n    /** Valor que será exibido */\r\n    public bindLabel: string | ((obj: any) => string)  = \"nome\", \r\n    \r\n    /** Indica se o select pode ser nulo e limpavel */\r\n    public clearable  : boolean = true, \r\n    /** Indica se o select pode ser pesquisado */\r\n    public searcheable: boolean = true, \r\n    \r\n    /** \r\n     * Se LoadFrom instanceof HttpService      -> Os dados serão carregados do List()\r\n     * Se LoadFrom instanceof Observable       -> Os dados serão carregados da função indicada\r\n     * Se LoadFrom instanceof Array            -> Os dados serão o array\r\n     */\r\n    public loadFrom?:  HttpService | Observable<ViewRetorno> | any[], \r\n    /** Se = true Os valores no form control seráo um array dos items selecionados */\r\n    public multiple : boolean = false,\r\n\r\n    /** Aplica os filtros na pesquisa */\r\n    vFiltros : Partial<{ \r\n      /** Aplica uma pesquisa em texto  */\r\n      search: string\r\n      /** Propriedade de ordenação */\r\n      orderByProperty: string\r\n      /** Orientação de ordenação */\r\n      ascending: boolean,\r\n      /** Filtro  */\r\n      filter: Comparison[]\r\n    }> | null = null,\r\n    /** Desativa os items que estão de acordo com a função */\r\n    public disableConditional: ((obj: any) => boolean) | null = null,\r\n    /** Habilita o filtro de somente ativos */\r\n    public hasAtivo: boolean = false\r\n  ){\r\n    this.clearable   = clearable;\r\n    this.searcheable = searcheable;\r\n    this.multiple    = multiple;\r\n\r\n    if(vFiltros != null){\r\n      const v = vFiltros;\r\n      if(v.ascending == null || v.ascending == undefined){ \r\n        v.ascending = true; \r\n      }\r\n      this.vFiltros = new ViewFiltros(INT_MAX, v.search, 1, v.orderByProperty, v.ascending);\r\n      this.vFiltros.filter = v.filter;\r\n    }\r\n\r\n    if(loadFrom){\r\n      if(Array.isArray(loadFrom)){ \r\n        this.loadFromArray    = loadFrom; \r\n      } else\r\n      if(loadFrom instanceof HttpService || loadFrom instanceof HttpServiceAtivo){ \r\n        this.loadFromService  = loadFrom;\r\n      } else {  \r\n        this.loadFromFunction = loadFrom;\r\n      }\r\n    }\r\n\r\n    this.loader = new InputSelectDataLoader(this);\r\n  }\r\n  \r\n}\r\n\r\nexport class InputSelectDataLoader{\r\n  private lstComponents: InputSelectComponent[] = [];\r\n  private configuration: InputSelectConfiguration;\r\n\r\n  /** Valor que será setado no formControl */\r\n  public bindValue: ((obj: any) => any)   | null = null;\r\n  /** Valor que será exibido */\r\n  public bindLabel: ((obj: any) => string)| null = null;\r\n\r\n  constructor(configuration: InputSelectConfiguration)  { \r\n    this.configuration = configuration; \r\n    this.bindValue = BindValueFactory(configuration)\r\n    this.bindLabel = BindLabelFactory(configuration)\r\n  }\r\n\r\n  public AddComponent(component: InputSelectComponent): void { \r\n    this.lstComponents.push(component);\r\n  }\r\n\r\n  //TODO Remove function\r\n   public GetLabel(value: any){\r\n    if(!this.items || !this.bindValue || !this.bindLabel){ return \"\"; }\r\n    const item = this.items.find(p => this.bindValue(p) == value);\r\n    if(!item){ return \"\" ;}\r\n    return this.bindLabel(item);\r\n  }\r\n\r\n  isLoaded: boolean = false;\r\n  error   : boolean = false;\r\n\r\n  async Refresh(items?: any[]): Promise<void>{\r\n    for (const component of this.lstComponents) {\r\n      component.loadingFromLoader = true;\r\n    }\r\n    \r\n    if(!this.configuration.loadFromService  && \r\n       !this.configuration.loadFromFunction && \r\n       (!this.configuration.loadFromArray || !this.configuration.loadFromArray.length)\r\n      ){\r\n      this.items = [...items || []];\r\n      this.isLoaded = true;\r\n      for (const component of this.lstComponents) {\r\n        if(!component.destroyed)\r\n        component.items.set([...this.items]); \r\n          this.CheckForInfiniteScroll();\r\n      }\r\n    }\r\n    \r\n    try{\r\n      await this.Load();\r\n      this.isLoaded = true;\r\n      for (const component of this.lstComponents) {\r\n        if(!component.destroyed)\r\n        component.items.set([...this.items]);\r\n      }\r\n    }\r\n    finally{\r\n      for (const component of this.lstComponents) {\r\n        component.loadingFromLoader = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  CheckForInfiniteScroll(): void {\r\n    if(this.items.length > 100 && this.configuration.useInfiniteScroll == undefined){\r\n      this.configuration.useInfiniteScroll = true;\r\n    }\r\n  }\r\n\r\n  items: any[] = [];\r\n  async Load(): Promise<void>{\r\n    if(this.isLoaded){\r\n      for (const component of this.lstComponents) {\r\n       if(!component.destroyed)\r\n        component.items.set([...this.items]); \r\n        this.CheckForInfiniteScroll();\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    //[ Load from Array ]\r\n    if(this.configuration.loadFromArray != undefined && this.configuration.loadFromArray.length){\r\n      this.items = [...this.configuration.loadFromArray];\r\n      for (const component of this.lstComponents) {\r\n       if(!component.destroyed)\r\n        component.items.set([...this.items]); \r\n        this.CheckForInfiniteScroll();\r\n      }\r\n      return;\r\n    }\r\n\r\n    //[ Load from api ]\r\n    let vFiltros: ViewFiltros | null = this.configuration.vFiltros;\r\n    try{\r\n      let lstDados: any[] = [];\r\n      \r\n      if(this.configuration.loadFromService){\r\n        lstDados = (await firstValueFrom(this.configuration.loadFromService.List(vFiltros))).lstDados\r\n      }else{\r\n        lstDados = (await firstValueFrom(this.configuration.loadFromFunction)).lstDados;\r\n      }\r\n\r\n      this.items = lstDados;\r\n      for (const component of this.lstComponents) {\r\n        if(!component.destroyed)\r\n        component.items.set([...this.items]); \r\n          this.CheckForInfiniteScroll();}\r\n      ;\r\n      this.error = false;\r\n    }\r\n    catch (e){ this.error = true; throw e; }\r\n  }\r\n}\r\n\r\nexport function BindValueFactory(configuration: InputSelectConfiguration): ((obj: any) => any) {\r\n  const cBindValue = configuration.bindValue;\r\n  let bindValue: ((args: any) => any) = null;\r\n  if(typeof(cBindValue) == 'string'){\r\n    let bvS: string               = cBindValue;\r\n    bindValue = ((obj: any): any => { return obj[bvS]; });\r\n  }else{\r\n    let bvF: ((args: any) => any) = cBindValue;\r\n    bindValue = ((obj: any): any => { return bvF(obj); });\r\n  }\r\n  return bindValue;\r\n}\r\n\r\nexport function BindLabelFactory(configuration: InputSelectConfiguration): ((obj: any) => string) {\r\n  const cBindLabel = configuration.bindLabel;\r\n  let bindLabel: ((args: any) => string) = null;\r\n  if(typeof(cBindLabel) == 'string'){\r\n    let blS: string               = cBindLabel;\r\n    bindLabel = ((obj: any): string => { return obj[blS] + ''; });\r\n  }else{\r\n    let blF: ((args: any) => any) = cBindLabel;\r\n    bindLabel = ((obj: any): string => { return blF(obj) + ''; });\r\n  }\r\n  return bindLabel;\r\n}","export class InputDateConfiguration{\r\n  constructor(\r\n    /** Habilita o botão de limpar os dados  */\r\n    public clearable: boolean = false,\r\n    /** Caso o Input for DateTime, pode inserir o parametro para setar hora do momento atual */\r\n    public setHourMoment: boolean = false\r\n  ){}\r\n}","export class InputFileConfiguration{\r\n  constructor(\r\n    /** Tipos de arquivos que podem ser selecionados */\r\n    public types: any | [] = ['image/*'], \r\n    // /** Declara se mais do que um arquivo pode ser selecionado */\r\n    // public multiple: boolean = false\r\n  ){}\r\n}\r\n\r\nexport const lstImageTypes: string[] = [\r\n  'jpe',\r\n  'jpg',\r\n  'jpeg',\r\n  'gif',\r\n  'png',\r\n  'bmp',\r\n  'ico',\r\n  'svg',\r\n  'svgz',\r\n  'tif',\r\n  'tiff',\r\n  'webp',\r\n  'jfif',\r\n  'avif',\r\n] ","import { FormControl } from \"@angular/forms\";\r\nimport { Comparison } from \"../comparison/comparison\";\r\nimport { InputType } from \"../../components/inputs/input-type\";\r\n\r\nimport { InputDecimalConfiguration, InputCurrencyConfiguration, InputNumberConfiguration } from '../../components/inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../../components/inputs/input-string/input-string.configuration';\r\nimport { InputCpfCnpjConfiguration } from \"../../components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration\";\r\nimport { InputSelectConfiguration } from '../../components/inputs/input-select/input.select.configuration';\r\nimport { InputDateConfiguration } from '../../components/inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../../components/inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../../components/inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from \"../../components/inputs/input-configuration\";\r\n\r\nexport class TableField{\r\n  class     : string = \"xl:col-span-3 md:col-span-6 col-span-full\"\r\n  hiddenView: boolean = false;\r\n  hidden    : boolean = false;\r\n  filter    : Comparison[] = [];\r\n\r\n  private SelectDisableMultiple(){\r\n    if(this.type == InputType.Select && this.configuration){\r\n      return this.configuration.multiple;\r\n    }\r\n    return false;\r\n  }\r\n  disabledChange(): boolean {\r\n    return this.filter.some(p => p.disableChange) || this.SelectDisableMultiple();\r\n  };\r\n\r\n\r\n  constructor(\r\n    public header: string, \r\n    public index : string, \r\n    public formControl  : FormControl | null, \r\n    public type         : InputType   | null, \r\n    public configuration: InputConfiguration | null = null,\r\n    public disabled     : boolean = false\r\n  ){\r\n    if(configuration){ this.configuration = configuration }\r\n    else{\r\n      if(TableField.dateTypes.includes(type)){ this.configuration = new InputDateConfiguration() } else\r\n      if(type == InputType.CpfCnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\") }else\r\n      if(type == InputType.Cpf     ){ this.configuration = new InputCpfCnpjConfiguration(\"CPF\")     }else\r\n      if(type == InputType.Cnpj    ){ this.configuration = new InputCpfCnpjConfiguration(\"CNPJ\")    }else\r\n      if(type == InputType.File    ){ this.configuration = new InputFileConfiguration()     }else\r\n      if(type == InputType.Number  ){ this.configuration = new InputNumberConfiguration()   }else\r\n      if(type == InputType.Decimal ){ this.configuration = new InputDecimalConfiguration()  }else\r\n      if(type == InputType.Currency){ this.configuration = new InputCurrencyConfiguration() }else\r\n      if(type == InputType.String  ){ this.configuration = new InputStringConfiguration()   }else\r\n      if(type == InputType.Select  ){ this.configuration = new InputSelectConfiguration()   }else\r\n      if(type == InputType.TextArea){ \r\n        this.configuration = new InputStringConfiguration(); \r\n        this.class = \"col-span-full\"                          \r\n      }else \r\n      if(type == InputType.Bool    ){ \r\n        this.configuration = new InputBoolConfiguration(); \r\n        if(this.formControl.value == null){ this.formControl.setValue(false); } \r\n      }\r\n    }\r\n  }\r\n  private static readonly dateTypes = [InputType.Date, InputType.DateTime, InputType.Time];\r\n}","import { Routes } from \"@angular/router\";\r\n\r\nexport class DefaultRoutingFactory{\r\n  /** Retorna as rotas padrões, incluindo listagem, view(novo) e view:id\r\n   * @param ListComponent Componente de listagem a ser invocado\r\n   * @param ViewCompnent Componente de listagem a ser invocado\r\n   */\r\n  public static GetRoutes(ListComponent, ViewCompnent): Routes{\r\n    return [\r\n      {\r\n        path: '',\r\n        component: ListComponent\r\n      },\r\n      {\r\n        path: 'view',\r\n        component: ViewCompnent\r\n      },\r\n      {\r\n        path: 'view/:id',\r\n        component: ViewCompnent,\r\n      }\r\n    ]\r\n  } \r\n}","import { Comparison } from \"../comparison/comparison\";\r\n\r\n/** Configuração de rota: Automaticamente aplica o id de uma rota superior para a filtragem de uma listagem de uma tebela filha\r\n * * A propriedade precisa existir no seu determinado service para ser aplicado\r\n */\r\nexport class idPreloaderConfiguration{\r\n  constructor(\r\n    /** Propriedade no banco de dados a ser comparada */\r\n    public propertyName: string,\r\n    /** \r\n     * Se idPreloaderChange == true  : o valor PODERÁ ser modificado na listagem pelo usuário\r\n     * Se idPreloaderChange == false : o valor NÃO poderá ser modificado na listagem pelo usuário\r\n     * */\r\n    public disableChange: boolean = false,\r\n\r\n    /** Profundidade da rota para buscar o parametro :id\r\n     * Valor minimo é 0\r\n     */\r\n    public routeDepth   : number = 2,\r\n  ){ }\r\n}","import { idPreloaderConfiguration } from \"./id-preloader-configuration\";\r\n\r\nexport class RouteData{\r\n  idPreloaderConfiguration: idPreloaderConfiguration | null = null;\r\n  \r\n  constructor(data: Partial<RouteData>){\r\n    if(data.idPreloaderConfiguration){ this.idPreloaderConfiguration = data.idPreloaderConfiguration }\r\n  }\r\n}","import { InfiniteScrollCustomEvent } from \"@ionic/angular\";\r\n\r\n/**\r\n * @deprecated\r\n */\r\nexport class InfiniteScroll {\r\n  public configuration: InfiniteScrollConfiguration;\r\n\r\n  private console: InfiniteScrollConsole;\r\n  \r\n  constructor(configuration: InfiniteScrollConfiguration){\r\n    this.configuration = configuration;\r\n    \r\n    this.console = new InfiniteScrollConsole(configuration.logging);\r\n  } \r\n\r\n  get pushTreshhold(): number { return this.configuration.pushTreshold } \r\n\r\n  private originalArray: any[] = [];\r\n  public internalArray: any[] = [];\r\n\r\n  public array: any[] = [];\r\n\r\n  get CanScroll(): boolean{\r\n    return this.array.length != this.internalArray.length\r\n  }\r\n  get NoItems(): boolean{\r\n    return this.array.length == 0;\r\n  }\r\n\r\n  public PushItens(event? : InfiniteScrollCustomEvent): void {\r\n    const minimum = this.array.length;\r\n    const size    = this.array.length + this.pushTreshhold;\r\n\r\n    for (let i = minimum; i < size; i++) {\r\n      this.console.log(\"[ Pushing @ ]\", i, minimum, size, this.originalArray.length)\r\n      if(i > this.originalArray.length){ \r\n        this.console.warn(\"[ Warning! ] [ End of array! ]\"); \r\n        break; \r\n      }\r\n\r\n      const data = this.internalArray[i];\r\n      if(data){ this.array.push(data); }\r\n    }\r\n\r\n    if(event){ event.target.complete(); }\r\n  }\r\n\r\n  public search: string = \"\";\r\n  \r\n  public SetArray(array: any[]){\r\n    this.originalArray = array;\r\n    this.internalArray = array;\r\n    this.array        = [];\r\n  }\r\n  \r\n  public Search(){\r\n    this.internalArray = [];\r\n    this.array         = [];\r\n  \r\n    var search: string = this.search.toLowerCase();\r\n\r\n    this.originalArray.forEach(el => {\r\n      var hidden: boolean = true;\r\n      const lbl = this.getLabel(el).toLowerCase();\r\n      try{\r\n        hidden = !lbl.includes(search);\r\n      }catch{ \r\n        this.console.warn(\"[ Error in searching @ object! ]\", this.configuration, el) \r\n      }\r\n\r\n      if(!hidden){ this.internalArray.push(el); }\r\n    });\r\n\r\n    this.PushItens();\r\n  }\r\n\r\n  private getLabel(item: any): string{\r\n    return typeof(this.configuration.bindLabel) == 'function' ? this.configuration.bindLabel(item) + '' : item[this.configuration.bindLabel] + ''\r\n  }\r\n}\r\n  \r\nexport class InfiniteScrollConfiguration{\r\n  bindLabel    : string | ((...args: any[]) => string);\r\n  pushTreshold : number   = 50;\r\n  logging      : boolean = false;\r\n  constructor(bindLabel: string | ((...args: any[]) => string) = \"nome\", pushTreshold: number = 50, logging: boolean = false){\r\n    this.bindLabel    = bindLabel\r\n    this.pushTreshold = pushTreshold\r\n    this.logging      = logging\r\n  }\r\n}\r\n\r\nclass InfiniteScrollConsole {\r\n  private logging: boolean = false;\r\n  constructor(logging: boolean){\r\n    this.logging = logging;\r\n    const _ = ((...args: any[]) : void => { return; })\r\n    this.warn  = _;\r\n    this.log   = _;\r\n    this.error = _;\r\n    if(logging){\r\n      this.log   = console.log;\r\n      this.warn  = console.warn;\r\n      this.error = console.error;\r\n    }\r\n  }\r\n\r\n  warn  : ((...args: any[]) => void );\r\n  log   : ((...args: any[]) => void );\r\n  error : ((...args: any[]) => void );\r\n}\r\n","import { Component, Input, model, ModelSignal, Signal, signal, WritableSignal } from \"@angular/core\";\r\n\r\n@Component({ template: '' })\r\nexport abstract class ICarouselItem {\r\n  index: WritableSignal<number> = signal(0);\r\n  carouselIndex: Signal<number> = signal(0);\r\n  value: ModelSignal<any>       = model<any>(undefined)\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [ CommonModule, IonicModule ],\r\n  selector: 'loading',\r\n  templateUrl: './loading.component.html',\r\n  styleUrls: ['./loading.component.scss'],\r\n})\r\nexport class LoadingComponent  implements OnInit {\r\n\r\n  /** Texto exibido */\r\n  @Input() text    : string = \"Carregando, por favor aguarde...\";\r\n  /** Tipo do loading\r\n   *  1 - Componente basico - h-16 de altura \r\n   *  2 - Componente basico - h-16 de altura \r\n   *  3 - Componente absoluto, preenche o elemento superior relativo\r\n   */\r\n  @Input() type    : 1 | 2 | 3 = 1;\r\n  /** Utilizado no tipo 3, quando inativo é hidden */\r\n  @Input() loading : boolean = true;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {}\r\n\r\n}\r\n","@switch (type) {\r\n  @case (1) {\r\n    <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n      <div class=\"flex items-center justify-center\">\r\n        <ion-spinner></ion-spinner>\r\n      </div>\r\n      @if(text){\r\n        <span>{{text}}</span>\r\n      }\r\n    </div>\r\n  }\r\n  @case (2) {\r\n    <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n      <div class=\"flex items-center justify-center\">\r\n        <ion-spinner></ion-spinner> \r\n        @if (text) {\r\n          <span class=\"ml-3\">{{text}}</span>\r\n        }\r\n      </div>\r\n    </div>\r\n  }\r\n  @case (3) {\r\n    <div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n      [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': loading}\">\r\n      <loading [type]=\"2\" [text]=\"text\"></loading>   \r\n    </div>\r\n  }\r\n}","import { Observable, firstValueFrom } from 'rxjs';\r\nimport { NavController } from '@ionic/angular';\r\nimport { Preferences } from '@capacitor/preferences';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { jwtDecode } from 'jwt-decode';\r\n\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { EnvironmentService } from './environment.service';\r\nimport { Utils } from './utils.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n  constructor(\r\n    private http: HttpClient,\r\n    private navController: NavController,\r\n    private coreService: EnvironmentService,\r\n    private apiUrlProviderService: ApiUrlProviderService \r\n  ) {\r\n    this.SetToken();\r\n  }\r\n\r\n  private localUserKey      : string = this.coreService.environment.applicationName.toUpperCase() + \"_USER_KEY\";\r\n  private localAdminKey     : string = this.coreService.environment.applicationName.toUpperCase() + \"_ADMIN_KEY\";\r\n  public  currentToken: string | null = null;\r\n\r\n  async SetToken(): Promise<void> {\r\n    const Token      = await this.LoadToken();\r\n    const TokenAdmin = await this.LoadTokenAdmin();\r\n    if(this.isTokenValid(Token)){\r\n      this.currentToken = await this.JWToken();\r\n    }\r\n\r\n    if(TokenAdmin && this.isTokenValid(TokenAdmin)){\r\n      this._isAdmin = true;\r\n    }\r\n\r\n    return;\r\n  }\r\n\r\n  async Loggout(): Promise<void> {\r\n    await Preferences.remove({ key: this.localUserKey });\r\n    await Preferences.remove({ key: this.localAdminKey });\r\n    this.currentToken = null;\r\n    this.navController.navigateRoot(\"login\");\r\n  }\r\n  \r\n  _isAdmin: boolean = false;\r\n  get isAdmin(){ return this._isAdmin;  }\r\n\r\n  async Login(credentials: Authentication): Promise<any> {\r\n    try{\r\n      const JWToken = await firstValueFrom(this.ApiLogin(credentials));\r\n      await this.SaveToken(JWToken);\r\n      await this.SetToken();\r\n      return (jwtDecode(JWToken));\r\n    }\r\n    catch (Error){\r\n      throw Error;\r\n    }\r\n  }\r\n\r\n  async BypassLogin(id: number): Promise<any> {\r\n    try{\r\n      const JWToken = await firstValueFrom(this.ApiBypassLogin(id));\r\n      await this.SaveToken(JWToken);\r\n      await this.SetToken();\r\n      return (jwtDecode(JWToken));\r\n    }\r\n    catch (Error){\r\n      throw Error;\r\n    }\r\n  }\r\n\r\n  ApiLogin(credentials: Authentication): Observable<string> {\r\n    return this.http.post<string>(this.apiUrlProviderService.apiUrl + 'auth', credentials);\r\n  }\r\n  ApiBypassLogin(id: number): Observable<string> {\r\n    return this.http.get<string>(this.apiUrlProviderService.apiUrl + `auth/${id}`);\r\n  }\r\n\r\n  async SaveToken(JWToken: string): Promise<void>{\r\n    if((jwtDecode(JWToken) as Token).id == 1){ \r\n      await Preferences.set({ key: this.localAdminKey, value: JWToken});\r\n    }\r\n    await Preferences.set({ key: this.localUserKey, value: JWToken })\r\n  }\r\n\r\n  async LoadToken(): Promise<Token | null | any> {\r\n    const JWToken = (await Preferences.get({ key: this.localUserKey})).value;\r\n    if(JWToken){\r\n      const ParsedObject = jwtDecode(JWToken);\r\n      return ParsedObject;\r\n    }else{\r\n      return null;\r\n    }\r\n  }\r\n  async LoadTokenAdmin(): Promise<Token | null | any> {\r\n    const JWToken = (await Preferences.get({ key: this.localAdminKey})).value;\r\n    if(JWToken){\r\n      const ParsedObject = jwtDecode(JWToken);\r\n      return ParsedObject;\r\n    }else{\r\n      return null;\r\n    }\r\n  }\r\n\r\n  async JWToken(): Promise<string> {\r\n    const JWToken: string = (await Preferences.get({ key: this.localUserKey })).value;\r\n    return JWToken;\r\n  }\r\n\r\n  async GetBearer(): Promise<string>{\r\n    return `Bearer ${await this.JWToken()}`\r\n  }\r\n\r\n  public isTokenValid(Token: any): boolean{\r\n    if(!Token){ return false; }else\r\n    return !(Utils.UNIXToDate(Token.exp) < new Date())\r\n  }\r\n}\r\n\r\nclass Authentication{\r\n  public Apelido: string = null;\r\n  public Senha  : string = null;\r\n}\r\n\r\nclass Token {\r\n  [prop: string]: any;\r\n  Acesso   : number = 0;\r\n  Apelido  : string = \"\";\r\n  Nome     : string = \"\";\r\n  id       : number = 0;\r\n  idEmpresa: number = 0;\r\n  \r\n  constructor(){}\r\n  \r\n  patch(token: Token | any): void{\r\n    for(let prop of Object.getOwnPropertyNames(token)){\r\n      if(Number((token[prop]))){\r\n        this[prop] = Number(token[prop]); \r\n        continue;\r\n      }\r\n      this[prop] = token[prop];\r\n    }\r\n  }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, from, switchMap } from 'rxjs';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Pipe({\r\n  name: 'secure',\r\n  standalone: true,\r\n})\r\nexport class SecurePipe implements PipeTransform {\r\n\r\n  constructor(\r\n    private http: HttpClient,\r\n    private auth: AuthService,\r\n    private apiUrlProviderService: ApiUrlProviderService\r\n  ) {}\r\n\r\n  transform(src: string): Observable<string> | Promise<string> {\r\n    if(src.startsWith(this.apiUrlProviderService.apiUrl)){\r\n      // Convert the Promise to an Observable and chain the HTTP request\r\n      return from(this.auth.LoadToken())\r\n      .pipe(\r\n        switchMap((Bearer: string) => {\r\n          const headers = new HttpHeaders({ 'Authorization': `Bearer ${Bearer}` });\r\n          return this.http.get(src, { headers, responseType: 'blob' });\r\n        }),\r\n        switchMap((blob: Blob) => {\r\n          const url = URL.createObjectURL(blob);\r\n          return from(Promise.resolve(url));\r\n        })\r\n      );\r\n    }\r\n    else{\r\n      return Promise.resolve(src);\r\n    }\r\n  }\r\n}","import { Component, computed, effect, input, Input, InputSignal, OnInit, Signal } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from '../../services/web/api-url-provider.service';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { SecurePipe } from '../../pipes/secure.pipe';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [IonicModule, CommonModule, LoadingComponent, SecurePipe],\r\n  selector: 'image',\r\n  templateUrl: './image.component.html',\r\n  styleUrls: ['./image.component.scss'],\r\n})\r\nexport class ImageComponent  implements OnInit {\r\n\r\n  /** Tipo de prenchimento e borda  do objeto */\r\n  @Input() fill: 'clear'| 'outline' | 'solid' = 'outline';\r\n  /** Tipo de prenchimento da imagem */\r\n  @Input() object: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down' = 'contain';\r\n\r\n  ClassFill: string;\r\n  SetClassFill(): void{\r\n    switch(this.fill){\r\n      case('clear'):{\r\n        this.ClassFill = ''\r\n        break;\r\n      }\r\n      case('outline'):{\r\n        this.ClassFill = 'p-2 translucid-border rounded-2xl'\r\n        break;\r\n      }\r\n      case('solid'):{\r\n        this.ClassFill = 'p-2 translucid-border bg-medium/10 rounded-2xl'\r\n        break;\r\n      }\r\n    }\r\n  }\r\n  ClassObject: string\r\n  SetClassObject(): void{\r\n    switch(this.object){\r\n      case('contain'):{\r\n        this.ClassFill = 'object-contain'\r\n        break;\r\n      }\r\n      case('cover'):{\r\n        this.ClassFill = 'object-cover'\r\n        break;\r\n      }\r\n      case('fill'):{\r\n        this.ClassFill = 'object-fill'\r\n        break;\r\n      }\r\n      case('none'):{\r\n        this.ClassFill = 'object-none'\r\n        break;\r\n      }\r\n      case('scale-down'):{\r\n        this.ClassFill = 'object-scale-down'\r\n        break;\r\n      }\r\n    }\r\n  }\r\n\r\n  /** Link */\r\n  src: InputSignal<string | null> = input<string | null>();\r\n  _src: Signal<string> = computed(() => { \r\n    if(this.src()?.startsWith(\"http\")){\r\n      return this.src();\r\n    }\r\n    else\r\n    if(this.src()?.startsWith('assets')){\r\n      return window.origin + '/' + this.src()\r\n    }\r\n    else{\r\n      return this.apiUrlProviderService.apiUrl + this.src()\r\n    }\r\n  });\r\n\r\n  err: boolean = false;\r\n  loading: boolean = false;\r\n\r\n  constructor(\r\n    public apiUrlProviderService: ApiUrlProviderService\r\n  ) { \r\n    effect(() => {\r\n      this.err = !this.src();\r\n    });\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.SetClassFill();\r\n  }\r\n}\r\n","@if (!err && _src()) {\r\n    <div class=\"animated-from-top flex items-center justify-center relative overflow-hidden size-full {{ClassObject}} {{ClassFill}}\" >\r\n        <loading class=\"!text-sm\" [loading]=\"loading\" [type]=\"3\" text=\"\"></loading>\r\n        <ion-img \r\n            class=\"-translate-y-12 opacity-0 default-transition animated-from-top object-contain size-full\" \r\n            [ngClass]=\"{'opacity-100 translate-y-0': !loading }\"\r\n            [src]=\"src() ? (_src() | secure | async) : null\" \r\n            (ionImgWillLoad)=\"loading = true\"\r\n            (ionError)=\"loading = false; err = true\"\r\n            (ionImgDidLoad)=\"loading = false;\"\r\n        ></ion-img>\r\n    </div>\r\n}@else {\r\n    <div class=\"animated-from-top flex items-center justify-center size-full {{ClassObject}} {{ClassFill}}\">\r\n        <ion-icon class=\"text-xl\" name=\"image\" color=\"dark\"></ion-icon>\r\n    </div>\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ICarouselItem } from '../i-carousel-item.component';\r\n\r\n@Component({\r\n  selector: 'carousel-image',\r\n  templateUrl: './carousel-image.component.html',\r\n  styleUrls: ['./carousel-image.component.scss'],\r\n  providers: [{ provide: ICarouselItem, useExisting: CarouselImageComponent }],\r\n})\r\nexport class CarouselImageComponent extends ICarouselItem implements OnInit {\r\n  @Input() src: string; \r\n  constructor() { super(); }\r\n\r\n  ngOnInit() {}\r\n}","<image class=\"absolute top-0 left-0 block size-full default-transition rounded-xl\" fill=\"clear\"  \r\n  [ngClass]=\"{'opacity-20 -translate-x-full': carouselIndex() > index(), 'opacity-20 translate-x-full': carouselIndex() < index() }\" \r\n  [src]=\"src\"\r\n></image>","import { Component, OnInit } from '@angular/core';\r\nimport { ICarouselItem } from '../i-carousel-item.component';\r\n\r\n@Component({\r\n  selector: 'carousel-item',\r\n  templateUrl: './carousel-item.component.html',\r\n  styleUrls: ['./carousel-item.component.scss'],\r\n  providers: [{ provide: ICarouselItem, useExisting: CarouselItemComponent }],\r\n})\r\nexport class CarouselItemComponent extends ICarouselItem implements OnInit {\r\n  constructor() { super(); }\r\n\r\n  ngOnInit() {}\r\n}","<div class=\"absolute top-0 left-0 size-full default-transition rounded-xl\" [ngClass]=\"{'opacity-20 -translate-x-full': carouselIndex() > index(), 'opacity-20 translate-x-full': carouselIndex() < index() }\">\r\n  <ng-content></ng-content>\r\n</div>","import { AfterContentInit, Component, contentChildren, ContentChildren, effect, forwardRef, input, InputSignal, output, OutputEmitterRef, QueryList, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ICarouselItem } from './i-carousel-item.component';\r\n\r\n@Component({\r\n  selector: 'carousel',\r\n  templateUrl: './carousel.component.html',\r\n  styleUrls: ['./carousel.component.scss'],\r\n  providers: [{ provide    : NG_VALUE_ACCESSOR, \r\n                useExisting: forwardRef(() => CarouselComponent),\r\n                multi: true     \r\n  }]\r\n})\r\nexport class CarouselComponent implements AfterContentInit, ControlValueAccessor {\r\n\r\n  @ContentChildren(ICarouselItem) components: QueryList<ICarouselItem>;\r\n  lst: Signal<readonly ICarouselItem[]> = contentChildren(ICarouselItem);\r\n  \r\n  value: InputSignal<any> = input<any>();\r\n  constructor() {\r\n    effect(() => {\r\n      if(this.value()){\r\n        this._model  = this.value();\r\n        this.index.set(this.lst().find(p => p.value() == this.value())?.index())\r\n      }\r\n      else{\r\n        if(this.lst().length){\r\n          this.model = this.lst()[0].value();\r\n        }\r\n      }\r\n      this.UpdateIndex();\r\n\r\n    }, { allowSignalWrites: true });\r\n  }\r\n\r\n  index: WritableSignal<number> = signal<number>(0);\r\n\r\n  ngAfterContentInit() {\r\n    this.UpdateIndex();\r\n  }\r\n\r\n  UpdateIndex(): void{\r\n    const lst = this.lst();\r\n    for(let carouselItem of lst){\r\n      carouselItem.index.set(lst.indexOf(carouselItem));\r\n      carouselItem.carouselIndex = this.index;\r\n    }\r\n  }\r\n  SetIndex(index: number){\r\n    this.index.set(index);\r\n    this.UpdateModel();\r\n  }\r\n  IndexUp(){\r\n    this.index.set(this.index() + 1);\r\n    this.UpdateModel();\r\n  }\r\n  IndexDown(){\r\n    this.index.set(this.index() - 1);\r\n    this.UpdateModel();\r\n  }\r\n  UpdateModel(){\r\n    this.model = this.lst().find(p => p.index() == this.index())?.value();\r\n  }\r\n\r\n  protected _model: any | null = null;\r\n  get model(): any      { return this._model;  }\r\n  set model(value: any) { this._model = value; this.propagateChange(this._model); }\r\n  \r\n\r\n  writeValue(value: string){ this.model = value; }\r\n\r\n  //[ ControlValueAccessor ]\r\n  /** Acionado quando um elemento perde o foco. */\r\n  blur  : OutputEmitterRef<any> = output<any>();\r\n  /** Emitido quando o valor é alterado. */\r\n  change: OutputEmitterRef<any> = output<any>();\r\n  propagateChange(obj: any): void{ this.onChange(obj); this.change.emit(obj);; }\r\n\r\n  onChange: (value: any) => void = (v: any) => { return; }\r\n  onTouch : (value: any) => void = (v: any) => { return; }\r\n  registerOnChange (fn: (value: any) => void ){ this.onChange = fn }\r\n  registerOnTouched(fn: (value: any) => void ){ this.onTouch  = fn }\r\n}\r\n","<ion-card class=\"size-full m-0\">\r\n  <ion-card-content class=\"size-full p-0 relative\">\r\n    <ng-content></ng-content>\r\n\r\n    <ion-button color=\"dark\" size=\"small\" class=\"absolute backdrop-blur-sm w-3 h-10 top-0 bottom-0 my-auto left-0 ml-2 default-transition\" [disabled]=\"index() == 0\" [ngClass]=\"{'opacity-0': index() == 0}\" style=\"--border-radius: .5rem;\" (click)=\"IndexDown()\">\r\n      <ion-icon slot=\"icon-only\" name=\"chevron-back\"></ion-icon>\r\n    </ion-button>\r\n    <ion-button color=\"dark\" size=\"small\" class=\"absolute backdrop-blur-sm w-3 h-10 top-0 bottom-0 my-auto right-0 mr-2 default-transition\" [disabled]=\" index() >= lst().length - 1\" [ngClass]=\"{'opacity-0': index() >= lst().length - 1}\" style=\"--border-radius: .5rem;\" (click)=\"IndexUp()\">\r\n      <ion-icon slot=\"icon-only\" name=\"chevron-forward\"></ion-icon>\r\n    </ion-button>\r\n\r\n    @if(lst().length){\r\n      <div class=\"absolute left-0 bottom-0 h-8 w-full flex items-center justify-center\">\r\n        <div class=\"bg-dark/50 h-3 rounded-full flex items-center justify-center default-transition gap-0.5 p-0.5\">\r\n          @for (item of lst(); track $index) {\r\n            <div class=\"bg-light cursor-pointer border border-light/40 h-full aspect-square rounded-full backdrop-blur-sm default-transition\" (click)=\"SetIndex($index)\" [ngClass]=\"{'bg-dark': $index != index()}\"></div>\r\n          }\r\n        </div>\r\n      </div>\r\n    }\r\n  </ion-card-content>\r\n</ion-card>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CarouselComponent } from './carousel.component';\r\nimport { CarouselImageComponent } from './carousel-image/carousel-image.component';\r\nimport { CarouselItemComponent } from './carousel-item/carousel-item.component';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { ImageComponent } from '../image/image.component';\r\n\r\nconst lstComponents = [ CarouselComponent, CarouselImageComponent, CarouselItemComponent ]\r\n\r\n@NgModule({\r\n  declarations: [...lstComponents],\r\n  exports     : [...lstComponents],\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    ImageComponent\r\n  ]\r\n})\r\nexport class CarouselModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n/** Bloqueia o conteudo na div que é aplicada\r\n *  O elemento superior NÃO deve ter posicionamento INSET\r\n */\r\n@Component({\r\n  standalone: true,\r\n  imports: [ CommonModule ],\r\n  selector: 'content-block',\r\n  templateUrl: './content-block.component.html',\r\n  styleUrls: ['./content-block.component.scss'],\r\n})\r\nexport class ContentBlockComponent  implements OnInit {\r\n\r\n  /** Texto a ser exibido */\r\n  @Input() text : string = \"Carregando, por favor aguarde...\";\r\n  /** Define se o conteudo é bloqueado ou não */\r\n  @Input() value: boolean = true;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {}\r\n\r\n}\r\n","<div class=\"absolute top-0 left-0 size-full opacity-0 -z-50 default-transition -translate-y-12 flex items-center justify-center !translucid-background\" \r\n  [ngClass]=\"{'!z-20 !opacity-100 !translate-y-0': value}\">\r\n  <div class=\"w-full text-center h-16 flex items-center justify-center\">\r\n    {{text}}\r\n  </div>\r\n</div>","import { Component, Output, Input, EventEmitter, HostListener } from '@angular/core';\r\nimport { IonSearchbar } from '@ionic/angular';\r\n\r\nimport { EnvironmentService } from '../../../../services/environment.service';\r\nimport { PageOption } from '../../../../classes/page-option';\r\n\r\n/** Componente de cabeçalho de listagem padrão  */\r\n@Component({\r\n  selector: 'header-list',\r\n  templateUrl: './header-list.component.html',\r\n  styleUrls: ['./header-list.component.scss'],\r\n})\r\nexport class HeaderListComponent {\r\n\r\n  /** Número de páginas máximo (usando two way data binding) */\r\n  @Input()  limit: number | null;\r\n  @Output() limitChange: EventEmitter<number | null> = new EventEmitter<number | null>();\r\n\r\n  /** Valor da pagina, setado = 1 quando troca-se o valor de limite de paginas (usando two way data binding) */\r\n  @Input() page: number;\r\n  @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\r\n\r\n  /** Campo de pesquisa (usando two way data binding) */\r\n  @Input() search: string | null;\r\n  @Output() searchChange: EventEmitter<string | null> = new EventEmitter<string | null>();\r\n  \r\n  @Input() loading: boolean;\r\n\r\n  /** Evento de refersh\r\n   * Emitido em:\r\n   *  - Troca de página\r\n   *  - Pesquisa\r\n   */\r\n  @Output('refresh') refreshEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  /** Link a ser acessado no click do botão NOVO */\r\n  @Input() link : string = \"view\";\r\n\r\n  /** Remove o botão NOVO */\r\n  @Input() noNew: boolean = false;\r\n  /** Remove o select de paginas */\r\n  @Input() noPage: boolean = false;\r\n  /** Remove o elemento de pesquisa */\r\n  @Input() noSearch: boolean = false;\r\n    \r\n\r\n  /** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */\r\n  @Input() overrideNew: boolean = false;\r\n  /** Evento quando o botáo NOVO é clickado */\r\n  @Output('onNew') onNewEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  onNew(): void{\r\n    this.onNewEmitter.emit();\r\n  }\r\n\r\n  constructor(private environmentService: EnvironmentService) { \r\n    this.lstLimits = environmentService.environment.defaultPageLimits;\r\n    this.limit = this.lstLimits[0].value\r\n  }\r\n\r\n  lstLimits: PageOption[] = []\r\n  EmitSearch(): void{\r\n    this.searchChange.emit(this.search);\r\n    this.EmitChange();\r\n  }\r\n\r\n  EmitLimit(): void{\r\n    this.limitChange.emit(this.limit);\r\n    this.pageChange.emit(1);\r\n    \r\n    this.EmitChange();\r\n  }\r\n\r\n  EmitChange(){\r\n    this.refreshEmitter.emit();\r\n  }\r\n\r\n  @HostListener('window:keydown',['$event'])\r\n  onKeyPress($event: KeyboardEvent) {\r\n    if(($event.ctrlKey || $event.metaKey) && ($event.key == 'F' || $event.key == 'f')){\r\n      (document.getElementById(\"list_search\") as any as IonSearchbar).setFocus();\r\n      $event.preventDefault();\r\n    }\r\n  }\r\n}","<div class=\"flex flex-wrap w-full gap-2\">\r\n  @if (!noPage) {\r\n    <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:w-48 portrait:order-1\">\r\n      <ion-item class=\"rounded-2xl w-full h-full translucid-border\" lines=\"full\" style=\"--border-radius: 1rem !important; --background: transparent\" >\r\n        <ion-select [disabled]=\"loading\" [(ngModel)]=\"limit\" (ionChange)=\"EmitLimit()\" interface=\"popover\">\r\n          @for (limit of lstLimits; track limit) {\r\n            <ion-select-option [value]=\"limit.value\">{{limit.label}}</ion-select-option>\r\n          }\r\n        </ion-select>\r\n      </ion-item>\r\n    </div>\r\n  }\r\n  \r\n  <ng-content select=\"[slot=start]\"></ng-content>\r\n\r\n  @if(!noSearch) {\r\n    <div class=\"portrait:basis-full portrait:order-3 grow flex items-center justify-center\">\r\n      <ion-searchbar class=\"w-full min-h-0 p-0 m-0\" [debounce]=\"500\" [(ngModel)]=\"search\" (ionInput)=\"this.EmitSearch()\" [animated]=\"true\" placeholder=\"Pesquisar...\"></ion-searchbar>\r\n    </div>\r\n  }\r\n\r\n  <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n  @if(!noNew){\r\n    <div class=\"portrait:basis-[calc(50%-0.25rem)] landscape:basis-24 portrait:order-2\">\r\n      <ion-button [routerLink]=\"overrideNew ? null : [link]\" (click)=\"onNew()\" class=\"size-full m-0 rounded-2xl text-base\" size=\"small\" fill=\"clear\">\r\n        <ion-icon name=\"add\" slot=\"start\"></ion-icon>\r\n        <ion-text class=\"text-base\">Novo</ion-text>\r\n      </ion-button>\r\n    </div>\r\n  }\r\n</div>","\r\nimport { Component, effect, ElementRef, EventEmitter, Input, model, ModelSignal, OnInit, Output } from '@angular/core';\r\nimport { RefresherCustomEvent } from \"@ionic/angular\";\r\nimport { Observable, firstValueFrom } from \"rxjs\";\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { CompileLstTableField, Comparison } from \"../../../classes/comparison/comparison\";\r\nimport { HttpService, ViewRetorno } from '../../../services/web/http.service';\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { ViewFiltros } from \"../../../classes/filters/view-filtros\";\r\nimport { TableField } from \"../../../classes/inputs/table-field\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\nimport { LongProperty } from '../../../classes/comparison/properties/long-property';\r\n\r\n//Classe de listagem, implemente carregamento e filtragem de dados\r\n@Component({ template: '', styles: '' })\r\nexport abstract class List<T extends HttpService<V>, V = any> implements OnInit {\r\n\r\n  protected genericService: GenericService;\r\n  protected activatedRoute: ActivatedRoute;\r\n  protected elementRef: ElementRef;\r\n  @Input() service: T;\r\n\r\n  constructor() { \r\n    effect(() => {\r\n      this.SetFilters();\r\n    });\r\n  }\r\n  \r\n  /** @optional Filtro a ser aplicado na busca da listagem na API */\r\n  preloadFilter: ModelSignal<Comparison[]> = model<Comparison[]>([]); \r\n  \r\n  //TODO FIX https://stackoverflow.com/a/73761805 \r\n  /** End-point de carregamento de dados. Deve ser uma função no service aplicado */\r\n  @Input() loadFrom: (view: ViewFiltros) => Observable<ViewRetorno>;\r\n\r\n\r\n  lstDados: V[] = [];\r\n  total   : number;\r\n  nested  : boolean = false;\r\n  loading : boolean = true;\r\n  \r\n  originalFilters: Comparison[] = [];\r\n\r\n  /** Filtro précarregado  */\r\n  @Input() frm: ViewFiltros = new ViewFiltros();\r\n\r\n  /** Lista de campos a serem substituídos pelo padrão, armazenado no service enviado como parâmetro */\r\n  @Input() lstTableFields: TableField[] = [];\r\n\r\n  async ngOnInit(): Promise<void> {\r\n    this.originalFilters = this.frm.filter;\r\n\r\n    if(this.lstTableFields.length == 0){\r\n      this.lstTableFields = this.service.lstTableFields;\r\n    }\r\n    if(!this.service.route){ console.warn(\"[ Warning! ] [ Url is undefined ]\")}\r\n    if(!this.service.title){ console.warn(\"[ Warning! ] [ titulo is undefined ]\")}\r\n    \r\n    //[ Nested element ]\r\n    if(this.elementRef.nativeElement.parentElement){\r\n      this.nested = (this.elementRef.nativeElement.parentElement.tagName as string).toUpperCase() != \"ION-CONTENT\";\r\n    }else{\r\n      this.nested = true;\r\n    }\r\n\r\n    await this.SetFilters();\r\n    if(this.nested){ this.Refresh(); }\r\n  }\r\n\r\n  /** Carrega os filtros pré-carregados e os filtros compilados */\r\n  protected async SetFilters(): Promise<void>{\r\n    await this.LoadIdComparison();\r\n    const compiled      = CompileLstTableField(this.lstTableFields);\r\n    const preloadFilter = this.preloadFilter();\r\n    // Adiciona os filtros pré-carregados, os filtros compilados e os filtros originais e remove os nulos\r\n    this.frm.filter     = [...preloadFilter, ...compiled, ...this.originalFilters].filter(p => p);\r\n  }\r\n\r\n  async LoadIdComparison(): Promise<void>{\r\n    try{\r\n      const data: RouteData = (await firstValueFrom(this.activatedRoute.data)) as RouteData;\r\n\r\n      const id   = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n      var index: number = this.lstTableFields.indexOf(this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName));\r\n      const filter: Comparison = new LongProperty(data.idPreloaderConfiguration.propertyName).Equals(id);\r\n\r\n      filter.value = id;\r\n      filter.disableChange = data.idPreloaderConfiguration.disableChange;\r\n      this.lstTableFields[index].filter = [filter];\r\n    }finally{ \r\n      return;\r\n    }\r\n  }\r\n\r\n  @Output('WillRefresh') WillRefresh: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output('DidRefresh') DidRefresh: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  async Refresh(event?: RefresherCustomEvent): Promise<void> {\r\n    this.WillRefresh.emit();\r\n    this.loading = true;\r\n    try{\r\n      await this.Load();\r\n    }\r\n    finally{ }\r\n    \r\n    if(event){ event.target.complete(); }\r\n    this.loading = false;\r\n    this.DidRefresh.emit();\r\n  }\r\n  \r\n  async Load(): Promise<void>{\r\n    var vRetorno: ViewRetorno;\r\n\r\n    try{\r\n      if(this.loadFrom){\r\n        vRetorno = await firstValueFrom(this.service[this.loadFrom.name](this.frm));\r\n      }\r\n      else{\r\n        vRetorno = await firstValueFrom(this.service.List(this.frm));\r\n      }\r\n      this.lstDados = vRetorno.lstDados; \r\n      this.total    = vRetorno.total; \r\n    } finally{ }\r\n    return;\r\n  }\r\n}","export enum TelefoneCelular {\r\n  'Tel' = 'Tel',\r\n  'Cel' = 'Cel',\r\n  'TelCel' = 'TelCel',\r\n} \r\nexport class InputTelefoneCelularConfiguration {\r\n  constructor(public type: TelefoneCelular = TelefoneCelular.TelCel){}\r\n}","import { forwardRef, Provider } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\nexport class InputProviderFactory{\r\n  static GetProviders(component: unknown): Provider[] {\r\n    return [ {\r\n        provide: NG_VALUE_ACCESSOR,\r\n        useExisting: forwardRef(() => component),\r\n        multi: true,\r\n    } ]\r\n  }\r\n}","import { Component, ElementRef, Input, InputSignal, OnInit, OutputEmitterRef, ViewChild, WritableSignal, effect, inject, input, model, output, signal } from \"@angular/core\";\r\nimport { AbstractControl, ControlContainer, ControlEvent, ControlValueAccessor, ValidationErrors, Validator, Validators } from \"@angular/forms\";\r\nimport { InputProviderFactory } from \"./input-provider-factory\";\r\n\r\n@Component({ \r\n  template: '', \r\n  providers:  [\r\n    ...InputProviderFactory.GetProviders(CustomInput)\r\n  ] \r\n})\r\nexport abstract class CustomInput<T> implements ControlValueAccessor, OnInit{\r\n\r\n  /** Exibe o spinner de carregamento */\r\n  loading: WritableSignal<boolean> = model(false);\r\n  /** Se ativo desabilita o Input */\r\n  disabled: WritableSignal<boolean> = model(false);\r\n  /** Indica se o formulário foi enviado */\r\n  submitted: WritableSignal<boolean> = model(false);\r\n  /** Titulo do Input */\r\n  label: InputSignal<string> = input<string>(\"Label\");\r\n\r\n  /** Torna o input obrigatorio */\r\n  required: WritableSignal<boolean> = model<boolean>(false)\r\n  \r\n  abstract writeValue(obj: T): void | Promise<void>;\r\n  abstract setFocus(event: MouseEvent | null): void;\r\n\r\n  //[ Value ]\r\n  \r\n  value: WritableSignal<T | undefined> = signal<T | undefined>(undefined);\r\n\r\n  /** @virtual */\r\n  SetValue(obj: T): void {\r\n    this.value.set(obj); \r\n    this.runValidation();\r\n    this.propagateChange(obj); \r\n  }\r\n  // /** @virtual */\r\n  // GetValue(): T | undefined { return this.value; }\r\n\r\n  //[ Handle Form / NgModel ]\r\n  @Input()  formControlName : string;\r\n  public    controlContainer: ControlContainer;\r\n  @Input('formControl') \r\n  public    control    : AbstractControl;\r\n  protected elementRef : ElementRef;\r\n\r\n  constructor(){\r\n    try {\r\n      this.controlContainer = inject(ControlContainer);\r\n    } catch {}\r\n    effect(() => { \r\n      if(this.control){ this.invalid = this.control.invalid; }\r\n    });\r\n  }\r\n\r\n  /** @virtual */\r\n  ngOnInit(): void | Promise<void> {\r\n    if(!this.control && this.controlContainer && this.formControlName){ \r\n      this.control = this.controlContainer.control.get(this.formControlName); \r\n    }\r\n    \r\n    if(this.control){ \r\n      this.required.set(this.control.hasValidator(Validators.required));  \r\n      this.invalid  = this.control.invalid;\r\n\r\n      this.control.events.subscribe({ next: (event) => { this.runValidation(); } });\r\n    }\r\n  }\r\n\r\n  protected runValidation(): void{\r\n    if(this.control){\r\n      this.required.set(this.control.hasValidator(Validators.required)); \r\n      this.invalid = this.control.invalid;\r\n    }\r\n    else{\r\n      this.invalid = !this.value() && this.required();\r\n    }\r\n  }\r\n  \r\n  protected invalid: boolean = false;\r\n\r\n  //[ ControlValueAccessor ]\r\n  /** Acionado quando um elemento perde o foco. */\r\n  blur  : OutputEmitterRef<FocusEvent> = output<FocusEvent>();\r\n  /** Emitido quando o valor é alterado. */\r\n  change: OutputEmitterRef<T> = output<T>();\r\n  propagateChange(obj: T): void{ this.onChange(obj); this.change.emit(obj);; }\r\n\r\n  onChange: (value: T) => void = (value: T) => { return; }\r\n  onTouch : (value: T) => void = (value: T) => { return; }\r\n  registerOnChange (fn: (value: T) => void ){ this.onChange = fn }\r\n  registerOnTouched(fn: (value: T) => void ){ this.onTouch  = fn }\r\n}","import { Component, ElementRef, forwardRef, model, ModelSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { maskitoPhoneOptionsGenerator } from '@maskito/phone';\r\nimport metadata from 'libphonenumber-js/min/metadata';\r\n\r\nimport { InputTelefoneCelularConfiguration } from './input-telefone.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { TelefoneCelular } from './input-telefone.configuration';\r\nimport { CustomInput } from '../custom-input';\r\n\r\n@Component({\r\n  selector: 'input-telefone, input-celular, input-telefone-celular',\r\n  templateUrl: './input-telefone.component.html',\r\n  styleUrls: ['./input-telefone.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputTelefoneComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputTelefoneComponent) },\r\n  ],\r\n})\r\nexport class InputTelefoneComponent extends CustomInput<string> {\r\n  configuration: ModelSignal<InputTelefoneCelularConfiguration> = model<InputTelefoneCelularConfiguration>(new InputTelefoneCelularConfiguration());\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor(\r\n    protected override elementRef: ElementRef<HTMLInputElement>\r\n  ) { \r\n    super(); \r\n    if(this.elementRef.nativeElement.tagName.toLowerCase() == 'input-cpf-cnpj'){\r\n      this.configuration.set(new InputTelefoneCelularConfiguration());\r\n    }else{\r\n      const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-')[1];\r\n      if(selector == 'celular' ){ this.configuration.set(new InputTelefoneCelularConfiguration(TelefoneCelular.Cel))  } else\r\n      if(selector == 'telefone'){ this.configuration.set(new InputTelefoneCelularConfiguration(TelefoneCelular.TelCel)) } \r\n    }\r\n    this.value.set('+55');\r\n  }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n\r\n  override SetValue(obj: string): void {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    this.propagateChange(obj.replaceAll('.', '').replaceAll('-', '').replaceAll(' ', ''));\r\n  }\r\n\r\n  readonly mask: MaskitoOptions = mask;\r\n}\r\nconst mask: MaskitoOptions = maskitoPhoneOptionsGenerator({\r\n  metadata,\r\n  strict: false,\r\n  countryIsoCode: 'BR',\r\n});\r\nexport function FormatTelefoneCelular(value: string): string {\r\n  return maskitoTransform(value, mask);\r\n}","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <input #input\r\n    (focus)=\"!value() ? SetValue('+55') : null\"\r\n    [ngModel]=\"value()\" \r\n    [maskito]=\"mask\"\r\n    inputmode=\"numeric\"\r\n    [type]=\"'text'\" \r\n    (ngModelChange)=\"SetValue($event)\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    (blur)=\"blur.emit($event)\"\r\n  />\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { HttpClient, HttpEvent, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, lastValueFrom, map, filter } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ApiUrlProviderService } from './api-url-provider.service';\r\nimport { GenericService } from '../generic.service';\r\nimport { Utils } from '../utils.service';\r\n\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n  constructor(\r\n  private http : HttpClient,\r\n  private apiUrlProviderService: ApiUrlProviderService,\r\n  private genericService: GenericService\r\n  ) { }\r\n\r\n  private currentlyDownloading: Download[] = [];\r\n\r\n  public GetProgress(file: string): number{\r\n    const Download = this.currentlyDownloading.find(p => p.file == file)\r\n    return Download ? Download.progress : 0;\r\n  }\r\n\r\n  public StartDownload(file: string, params?: any, post: boolean = false, fileName : string | null = null): Download {\r\n    if(!this.currentlyDownloading.find(p => p.file == file)){\r\n      const download = new Download(file);\r\n      this.currentlyDownloading.push(download);\r\n      this.HandleDownload(download, params, post, fileName);\r\n      return download;\r\n    }\r\n    return this.currentlyDownloading.find(p => p.file == file);\r\n  }\r\n\r\n  private HandleDownload(download: Download, params?: any, post: boolean = false, fileName: string | null = null){\r\n    var request: Observable<any> = this.GetFile(download.file, params, post);\r\n\r\n    const requestProgess = new BehaviorSubject<any>(null);\r\n    download.requestProgess = requestProgess;\r\n    request.subscribe({\r\n      next: (event) => {\r\n        if (event.type === HttpEventType.DownloadProgress) { \r\n          download.progress = event.loaded / event.total; \r\n          requestProgess.next(download.progress);\r\n        } else \r\n        if (event.type === HttpEventType.Response) {\r\n          DownloadFile(event, download.file, fileName);\r\n          this.currentlyDownloading.splice(this.currentlyDownloading.indexOf(download), 1);\r\n          requestProgess.complete(); \r\n        }\r\n        if(event.status == 404){\r\n          this.genericService.PresentToast(\"Arquivo não encontrado / Url inválida\")\r\n          requestProgess.error(event); \r\n          requestProgess.complete(); \r\n        }\r\n      },\r\n      error: (err) => {\r\n        this.currentlyDownloading.splice(this.currentlyDownloading.indexOf(download), 1)\r\n      }\r\n    });\r\n    return request;\r\n  }\r\n\r\n  public static SanitizeFileName(v: string): string{\r\n    try{\r\n      var filenameEnd: string  = v.split('/').at(-1);\r\n      \r\n      if(filenameEnd.split('.').length <= 2){\r\n        return filenameEnd;\r\n      }else{\r\n        var lst = filenameEnd.split('.');\r\n        lst[0] = '';\r\n        return lst.join('.').replace('.', '');\r\n      }\r\n    }catch{\r\n      return v;\r\n    }\r\n  };\r\n  public static SanitizeName(original: string): string {\r\n    if (!original) return 'arquivo';\r\n\r\n    // desfaz encoding se vier\r\n    let name = original.replace(/\\+/g, ' ');\r\n    try { name = decodeURIComponent(name); } catch {}\r\n\r\n    // remove acentos\r\n    name = name.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n    // remove qualquer path acidental\r\n    name = name.split('/').pop() ?? name;\r\n    name = name.split('\\\\').pop() ?? name;\r\n\r\n    const lastDot = name.lastIndexOf('.');\r\n    const base = lastDot > 0 ? name.slice(0, lastDot) : name;\r\n    const ext  = lastDot > 0 ? name.slice(lastDot + 1) : '';\r\n\r\n    let safeBase = base\r\n      .replace(/[#%?&+=]/g, '')\r\n      .replace(/[<>:\"/\\\\|*]/g, '')\r\n      .replace(/[\\u0000-\\u001F]/g, '')\r\n      .replace(/\\s+/g, ' ')\r\n      .trim()\r\n      .replace(/ /g, '_')\r\n      .replace(/_+/g, '_');\r\n\r\n    if (!safeBase) safeBase = 'arquivo';\r\n\r\n    const safeExt = ext.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();\r\n\r\n    return safeExt ? `${safeBase}.${safeExt}` : safeBase;\r\n  }\r\n  public GetFile(fileUrl: string, params?: any, post: boolean = false): Observable<HttpEvent<Blob>> {\r\n    var url: string;\r\n    if(fileUrl[0] == '/'){ \r\n      url = fileUrl.slice(1, fileUrl.length - 1);\r\n    }else{\r\n      url = `${this.apiUrlProviderService.apiUrl}${fileUrl}`;\r\n    }\r\n    url = encodeURI(url).replace(/#/g, '%23')\r\n\r\n    if(!post){\r\n      return this.http.get(url, {\r\n        reportProgress: true,\r\n        observe: 'events',\r\n        responseType: 'blob',\r\n        params: params\r\n      });\r\n    }else{\r\n      return this.http.post(url, params, {\r\n        reportProgress: true,\r\n        observe: 'events',\r\n        responseType: 'blob'\r\n      });\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @param lstFiles \r\n   * lista de arquivos a serem baixados \r\n   * @param onUpdate \r\n   * funcao chamada a cada progresso de download\r\n   * @returns \r\n   * lista de respostas dos arquivos, como promise, quando todos estiverem completos ou deram erro, é retornada\r\n   */\r\n  public async GetBlobBatchLiveResponse(lstFiles: string[], onUpdate: (totalProgress: number, lstResponse?: LiveResponse[], eventType?: HttpEventType) => void): Promise<LiveResponse[]> {\r\n    if(!lstFiles || lstFiles.length === 0) {\r\n      return Promise.resolve([]);\r\n    }\r\n\r\n    const lst: LiveResponse[] = lstFiles.map(p => ({\r\n      path      : p,\r\n      observable: this.GetFile(p),\r\n      progress  : 0,\r\n      success   : undefined,\r\n      blob      : undefined\r\n    }));\r\n\r\n    const isAllComplete = () => lst.every(obs => obs.progress >= 1);\r\n    const getTotalProgressAvg = () => lst.reduce((acc, obs) => acc + obs.progress, 0) / lst.length;\r\n\r\n    return new Promise<LiveResponse[]>((resolve) => {\r\n      for (const obs of lst) {\r\n        obs.observable.subscribe({\r\n          next: (event) => {\r\n            if (event.type === HttpEventType.DownloadProgress) {\r\n              obs.progress = event.loaded / event.total;\r\n              onUpdate(getTotalProgressAvg(), lst, event.type);\r\n            } \r\n            else\r\n            if (event.type === HttpEventType.Response) {\r\n              obs.blob = new Blob([event.body], { type: event.body.type });\r\n              obs.success = true;\r\n              if(isAllComplete()){\r\n                resolve(lst);\r\n              }\r\n              onUpdate(getTotalProgressAvg(), lst, event.type);\r\n            }\r\n          },\r\n          error: (err) => {\r\n            obs.success = false;\r\n            obs.progress = 1;\r\n            onUpdate(getTotalProgressAvg(), lst);\r\n            if(isAllComplete()){\r\n              resolve(lst);\r\n            }\r\n          }\r\n        });\r\n      }\r\n    })\r\n  }\r\n\r\n  public async GetBlobLiveResponse(file: string, onUpdate?: (progress: number, response?: LiveResponse, eventType?: HttpEventType) => void): Promise<LiveResponse> {\r\n    return (await this.GetBlobBatchLiveResponse([file], (totalProgress, lstResponse, eventType) => {\r\n      onUpdate?.(totalProgress, lstResponse[0], eventType);\r\n    }))[0];\r\n  }\r\n}\r\n\r\nexport interface GetFileResponse{\r\n  path: string;\r\n  blob?: Blob;\r\n}\r\n\r\nexport interface LiveResponse{\r\n  path: string;\r\n  observable: Observable<HttpEvent<Blob>>;\r\n  progress: number;\r\n  blob?: Blob;\r\n  success?: boolean;\r\n}\r\n\r\nexport class Download {\r\n  requestProgess: Observable<any>;\r\n  progress      : number = 0.00001;\r\n  constructor(public file: string){}\r\n}\r\n\r\nfunction DownloadFile(data: HttpResponse<Blob>, fileUrl, fileName: string | null = null) {\r\n  const downloadedFile = new Blob([data.body], { type: data.body.type });\r\n\r\n  var fileURL = URL.createObjectURL(downloadedFile);\r\n  const linkElement = document.createElement(\"a\");\r\n  linkElement.setAttribute(\"href\", fileURL);\r\n  linkElement.setAttribute(\"target\", \"_blank\");\r\n  linkElement.setAttribute(\"download\", StorageService.SanitizeFileName(fileUrl));\r\n\r\n  if(fileName) {\r\n      linkElement.setAttribute(\"download\", fileName);\r\n  }\r\n\r\n  let me = new MouseEvent(\"click\", {\r\n      view: window,\r\n      bubbles: true,\r\n      cancelable: false,\r\n  });\r\n\r\n  linkElement.dispatchEvent(me);\r\n}","import { Component, ElementRef, forwardRef, model, ModelSignal, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputCpfCnpjConfiguration } from './input-cpf-cnpj.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\n\r\n@Component({\r\n  selector: 'input-cpf-cnpj, input-cpf, input-cnpj',\r\n  templateUrl: './input-cpf-cnpj.component.html',\r\n  styleUrls: ['./input-cpf-cnpj.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputCpfCnpjComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputCpfCnpjComponent) },\r\n  ],\r\n})\r\nexport class InputCpfCnpjComponent extends CustomInput<string> {\r\n\r\n  configuration: ModelSignal<InputCpfCnpjConfiguration> = model<InputCpfCnpjConfiguration>(new InputCpfCnpjConfiguration());\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor(\r\n    protected override elementRef: ElementRef<HTMLInputElement>\r\n  ) { \r\n    super(); \r\n    if(this.elementRef.nativeElement.tagName.toLowerCase() == 'input-cpf-cnpj'){\r\n      this.configuration.set(new InputCpfCnpjConfiguration());\r\n    }else{\r\n      const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-')[1];\r\n      if(selector == 'cpf' ){ this.configuration.set(new InputCpfCnpjConfiguration('CPF'))  } else\r\n      if(selector == 'cnpj'){ this.configuration.set(new InputCpfCnpjConfiguration('CNPJ')) } \r\n    }\r\n  }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n  \r\n  override SetValue(obj: string): void {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    this.propagateChange(obj.replaceAll('.', '').replaceAll('-', '').replaceAll('/', ''));\r\n  }\r\n\r\n\r\n  readonly mask: MaskitoOptions = {\r\n    mask: (elementState) => {\r\n      if(this.configuration().type == 'CPFCNPJ'){\r\n        if(!elementState.value){ \r\n          return cpfMask;\r\n        }else{\r\n          if(elementState.value.includes('.')){\r\n            if(elementState.value.length <= 14) { \r\n              return cpfMask; \r\n            }\r\n            return cnpjMask;\r\n          }else{\r\n            if(elementState.value.length <= 11) { \r\n              return cpfMask; \r\n            }\r\n            return cnpjMask;\r\n          }\r\n        }\r\n      }\r\n      if(this.configuration().type == 'CNPJ'){ return cnpjMask; }\r\n      if(this.configuration().type == 'CPF' ){ return cpfMask;  }\r\n    },\r\n  };\r\n}\r\n\r\nconst cpfMask : MaskitoMaskExpression = [ /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/  ];\r\nconst cnpjMask: MaskitoMaskExpression = [ /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/];\r\nconst cpfCnpjMask: MaskitoOptions = {\r\n  mask: (elementState) => {\r\n    if(!elementState.value){ \r\n      return cpfMask;\r\n    }else{\r\n      if(elementState.value.includes('.')){\r\n        if(elementState.value.length <= 14) { \r\n          return cpfMask; \r\n        }\r\n        return cnpjMask;\r\n      }else{\r\n        if(elementState.value.length <= 11) { \r\n          return cpfMask; \r\n        }\r\n        return cnpjMask;\r\n      }\r\n    }\r\n  }\r\n}\r\nexport function FormatCpfCnpj(value: string): string {\r\n  return maskitoTransform(value, cpfCnpjMask);\r\n}","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <input #input\r\n    [ngModel]=\"value()\" \r\n    [maskito]=\"mask\"\r\n    inputmode=\"numeric\"\r\n    [type]=\"'text'\" \r\n    (ngModelChange)=\"SetValue($event)\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    (blur)=\"blur.emit($event)\"\r\n  />\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","export class InputCepConfiguration{\r\n  constructor(\r\n  ){}\r\n}","import { Component, ElementRef, forwardRef, input, InputSignal, model, ModelSignal, ViewChild } from '@angular/core';\r\nimport { MaskitoMaskExpression, MaskitoOptions, maskitoTransform } from '@maskito/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { InputCepConfiguration } from './input-cep.configuration';\r\n\r\n@Component({\r\n  selector: 'input-cep',\r\n  templateUrl: './input-cep.component.html',\r\n  styleUrls: ['./input-cep.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputCepComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputCepComponent) },\r\n  ],\r\n})\r\nexport class InputCepComponent extends CustomInput<string> {\r\n  configuration: InputSignal<InputCepConfiguration> = input<InputCepConfiguration>(new InputCepConfiguration());\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor(\r\n    protected override elementRef: ElementRef<HTMLInputElement>\r\n  ) { super(); }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n\r\n  readonly mask: MaskitoOptions = mask;\r\n}\r\n\r\nconst cepMask : MaskitoMaskExpression = [ /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/ ];\r\nconst mask: MaskitoOptions = { mask: cepMask };\r\nexport function FormatCep(value: string): string {\r\n  return maskitoTransform(value, mask);  \r\n}\r\n","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <input #input\r\n    [ngModel]=\"value()\" \r\n    [maskito]=\"mask\"\r\n    inputmode=\"numeric\"\r\n    (ngModelChange)=\"SetValue($event)\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    (blur)=\"blur.emit($event)\"\r\n  />\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n  standalone: true,\r\n  selector: '[ngVar]',\r\n})\r\nexport class NgVarDirective {\r\n  @Input()\r\n  set ngVar(context: unknown) {\r\n      this.context.$implicit = this.context.ngVar = context;\r\n\r\n      if (!this.hasView) {\r\n        this.vcRef.createEmbeddedView(this.templateRef, this.context);\r\n        this.hasView = true;\r\n      }\r\n  }\r\n\r\n  private context: { $implicit: unknown; ngVar: unknown; } = { $implicit: null, ngVar: null, };\r\n\r\n  private hasView: boolean = false;\r\n\r\n  constructor(\r\n    private templateRef: TemplateRef<any>,\r\n    private vcRef: ViewContainerRef\r\n  ) {}\r\n}","import { Component, computed, ElementRef, Input, model, ModelSignal, Signal } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\nimport { InputFileConfiguration } from '../input-file.configuration';\r\nimport { ApiUrlProviderService } from '../../../../services/web/api-url-provider.service';\r\nimport { InputProviderFactory } from '../../input-provider-factory';\r\nimport { StorageService } from '../../../../services/web/storage.service';\r\nimport { lstImageTypes } from '../input-file.configuration';\r\nimport { Utils } from '../../../../services/utils.service';\r\n\r\n@Component({\r\n  selector: 'download-button',\r\n  templateUrl: './download-button.component.html',\r\n  styleUrls: ['./download-button.component.scss'],\r\n  providers: InputProviderFactory.GetProviders(DownloadButtonComponent)\r\n})\r\nexport class DownloadButtonComponent implements ControlValueAccessor {\r\n\r\n  @Input() expand: string = \"\";\r\n  value: ModelSignal<string> = model<string>();\r\n  @Input() size: string = \"small\";\r\n  @Input() color: string = \"primary\";\r\n  @Input() params: any;\r\n  @Input() disabled: boolean;\r\n  @Input() post: boolean = false;\r\n  @Input() configuration: InputFileConfiguration = new InputFileConfiguration();\r\n  \r\n  @Input() customLabel: boolean = false;\r\n\r\n  @Input() label : string = \"\";\r\n\r\n  @Input() fileName : string = null;\r\n  constructor(\r\n    public storageService: StorageService,\r\n    private elementRef: ElementRef,\r\n    private apiUrlProviderService: ApiUrlProviderService\r\n  ) { }\r\n\r\n  registerOnChange(fn: any): void {\r\n    //throw new Error('Method not implemented.');\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    //throw new Error('Method not implemented.');\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    //throw new Error('Method not implemented.');\r\n  }\r\n\r\n  guid : string = \"\";\r\n  apiUrl: string;\r\n\r\n  ngOnInit() {\r\n    this.apiUrl = this.apiUrlProviderService.apiUrl;\r\n    this.guid  = `${Utils.GenerateGUID()}${this.elementRef.nativeElement.tagName.toLowerCase()}`\r\n  }\r\n\r\n  lstFiles: Signal<string[]> = computed(() => {\r\n    if(typeof(this.value()) == \"string\"){\r\n      return this.value().split(';');\r\n    }else{\r\n      return [];\r\n    }\r\n  });\r\n\r\n  writeValue(value: string): void { this.value.set(value); }\r\n\r\n  Download(value: string): void{\r\n    this.storageService.StartDownload(value, this.params, this.post, this.fileName);\r\n  }\r\n\r\n  Sanitize(v): string {\r\n    return StorageService.SanitizeFileName(v);\r\n  }\r\n\r\n  ExtensionIsImage(v){\r\n    try{\r\n      return lstImageTypes.includes(v.split('.')[v.split('.').length - 1])\r\n    }catch{}\r\n  }\r\n\r\n  lstLoading: string[] = [];\r\n  SetLoading(path: string){\r\n    this.lstLoading.push(path);\r\n  }\r\n  SetNotLoading(path: string){\r\n    this.lstLoading.splice(this.lstLoading.indexOf(path), 1);\r\n  }\r\n  isLoading(path: string){\r\n    return this.lstLoading.indexOf(path) != -1;\r\n  }\r\n}\r\n","@if(lstFiles().length == 0){\r\n  <ion-button [color]=\"color\" fill=\"outline\" [disabled]=\"true\" [size]=\"size\"> \r\n    <ion-icon name=\"close-circle\" slot=\"start\"></ion-icon>  \r\n    <ion-label> Sem arquivos... </ion-label>\r\n  </ion-button>\r\n}\r\n@else if(lstFiles().length == 1){\r\n  <ion-button [color]=\"color\" *ngVar=\"storageService.GetProgress(lstFiles()[0]) as val\" class=\"relative block {{expand == 'block' ? 'size-full' : ''}}\" [disabled]=\"val != 0 || disabled\" (click)=\"Download(lstFiles()[0])\" fill=\"outline\" [size]=\"size\"> \r\n    <ion-icon name=\"download\" slot=\"start\"></ion-icon>  \r\n    <ion-label>  {{customLabel ? label : Sanitize(lstFiles()[0])}} </ion-label>\r\n    <div class=\"absolute size-full h-[calc(100%+var(--padding-top)+var(--padding-bottom))] w-[calc(100%+var(--padding-end)+var(--padding-start))]\">\r\n      <loading [type]=\"3\" [loading]=\"val != 0\"></loading>\r\n      <div class=\"size-full flex flex-row-reverse relative\">\r\n        <ion-progress-bar class=\"absolute bottom-0 left-0 w-full h-1 default-transition\" [ngClass]=\"{'-translate-y-4 opacity-0': (!val || val == 0)}\" [value]=\"val\"></ion-progress-bar>\r\n      </div>\r\n    </div>\r\n  </ion-button>\r\n}\r\n@else{\r\n  <ion-button [color]=\"color\" [id]=\"guid\" fill=\"outline\" [size]=\"size\"> \r\n    <ion-icon name=\"download\" slot=\"start\"></ion-icon>  \r\n    <ion-label> {{lstFiles().length}} Arquivos </ion-label>\r\n  </ion-button>\r\n\r\n  <ion-popover [trigger]=\"guid\" [keepContentsMounted]=\"true\" triggerAction=\"click\">\r\n    <ng-template>\r\n      <ion-content class=\"p-0 bg-transparent\">\r\n        <ion-list>\r\n          @for (item of lstFiles(); track item; let i = $index; let l = $last) {\r\n            <section *ngVar=\"storageService.GetProgress(item) as val\">\r\n              <ion-item style=\"--background: transparent\" lines=\"{{l ? 'none' : 'full'}}\" button [detail]=\"false\">\r\n\r\n                <ion-icon name=\"download\" (click)=\"Download(item)\" slot=\"start\"></ion-icon> \r\n                @if (ExtensionIsImage(item)) {\r\n                  <ion-icon [id]=\"guid + '-' + i + '-nested-popover'\" name=\"image\" slot=\"start\"></ion-icon> \r\n                }\r\n\r\n                <ion-label>{{Sanitize(item)}}</ion-label>\r\n                <ion-text *ngIf=\"val != 0\" slot=\"end\" class=\"text-sm\"><b>{{val * 100 | number : '1.2-2'}}%</b></ion-text>\r\n              </ion-item>\r\n              <ion-progress-bar class=\"h-0 default-transition\" [ngClass]=\"{'h-1': val != 0 }\" [value]=\"val\"></ion-progress-bar>\r\n              <ion-popover *ngIf=\"ExtensionIsImage(item)\" side=\"end\" alignment=\"center\" [trigger]=\"guid + '-' + i + '-nested-popover'\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n                <ng-template>\r\n                  <ion-content *ngVar=\"isLoading(item) as isLoading\">\r\n                    <loading    [hidden]=\"!isLoading\"></loading>\r\n                    <ion-img    [hidden]=\"isLoading\" [src]=\"apiUrl + item\" (ionImgWillLoad)=\"SetLoading(item)\" (ionImgDidLoad)=\"SetNotLoading(item)\"></ion-img>\r\n                  </ion-content>\r\n                </ng-template>\r\n              </ion-popover>\r\n            </section>\r\n            }\r\n        </ion-list>\r\n      </ion-content>\r\n    </ng-template>\r\n  </ion-popover>\r\n}","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { Utils } from '../../../services/utils.service';\r\n\r\n/** Componente de paginação padrão  */\r\n@Component({\r\n  selector: 'default-pagination',\r\n  templateUrl: './default-pagination.component.html',\r\n  styleUrls: ['./default-pagination.component.scss'],\r\n})\r\nexport class DefaultPaginationComponent  implements OnInit {\r\n\r\n\r\n  total: number = 0;\r\n  limit: number | null = 0;\r\n  /** Valor total de dados */\r\n  @Input('total') set _total(value: number){  \r\n    this.total = value;\r\n    this.TotalPages = this.GetTotalPages();\r\n    this.lstPages = this.GetlstPages();\r\n  };\r\n  /** Limite de páginas */\r\n  @Input('limit') set _limit(value: number | null){ \r\n    this.limit = value;\r\n    this.TotalPages = this.GetTotalPages();\r\n    this.lstPages = this.GetlstPages();\r\n  };\r\n\r\n  /** Quantidade de dados em tela */\r\n  @Input() length: number;\r\n  @Input() loading: boolean;\r\n  \r\n  /** Pagina atual (usando two way data binding) */\r\n  @Input() page: number;\r\n  @Output() pageChange: EventEmitter<number> = new EventEmitter<number>();\r\n  \r\n  /** Evento emitido na mudança de valores (Pagina) */\r\n  @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n  \r\n  constructor(\r\n    private genericService: GenericService\r\n  ) { }\r\n\r\n  ngOnInit() {}\r\n  pop_id: string = \"popover-id-\" + Utils.GenerateGUID();\r\n\r\n  GetlstPages(): number[] {\r\n    if(!this.TotalPages){ return []; }\r\n    var startIndex: number;\r\n    var start: number[] = [];\r\n\r\n    startIndex = this.page - 1;\r\n\r\n    var _: number[] = [];\r\n    for(let i = this.TotalPages - 4; i <= this.TotalPages ; i++){\r\n      if(i > 0){\r\n        _.push(i);\r\n      }\r\n    }\r\n\r\n    for(let i = startIndex; i <= this.TotalPages && i < startIndex + 5; i++){\r\n      if(i > 0){\r\n        start.push(i);\r\n      }\r\n    }\r\n    if(startIndex == 0 && this.TotalPages >= 5){\r\n      start.push(5);\r\n    }\r\n\r\n    if(start[0] > _[0]){\r\n      return _;\r\n    }\r\n\r\n    return start;\r\n  }\r\n\r\n  GetTotalPages(): number{\r\n    return this.limit ? Math.ceil(this.total / this.limit) : Math.ceil(this.total / this.total)\r\n  }\r\n\r\n  lstPages  : number[] = [];\r\n  TotalPages: number = 0;\r\n\r\n  PageAdd(): void{\r\n    if(this.page + 1 > this.TotalPages){ return; }\r\n    this.SetPage(this.page + 1);\r\n  }\r\n  \r\n  PageSub(): void{\r\n    if(this.page - 1 < 1){ return; }\r\n    this.SetPage(this.page - 1);\r\n  }\r\n\r\n  SetPage(value: number): void{\r\n    if(value != this.page){\r\n      this.pageChange.emit(value);\r\n      this.EmitChange()\r\n\r\n      setTimeout(() => {\r\n        this.TotalPages = this.GetTotalPages();\r\n        this.lstPages = this.GetlstPages();\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  _page: number;\r\n  SetPageManual(){\r\n    if(this._page && this._page > 0 && this._page <= this.TotalPages){\r\n      this.SetPage(this._page);\r\n    }else{\r\n      this.genericService.PresentToast(\"Página inválida\")\r\n    }\r\n  }\r\n\r\n  EmitChange(): void{\r\n    this.changeEmitter.emit();\r\n  }\r\n}","<div id=\"pagination\" class=\"flex items-center rounded-b-2xl p-2 portrait:flex-col\">\r\n  <div class=\"w-full h-full items-center justify-start flex portrait:justify-center\">\r\n    <ion-spinner [hidden]=\"!(loading && lstPages.length == 0)\"></ion-spinner>\r\n    <ion-text [hidden]=\"loading && lstPages.length == 0\">\r\n      <div class=\"flex\">\r\n        Mostrando &nbsp;\r\n        <ion-skeleton-text *ngIf=\"loading\" [animated]=\"true\" style=\"width: 2ch\"></ion-skeleton-text>\r\n        <b *ngIf=\"!loading\">{{limit * page - limit + length}}</b>  &nbsp;\r\n        de \r\n        @if (total != null) {\r\n          <b>&nbsp; {{total}} &nbsp;</b> itens\r\n        }\r\n        @else{\r\n          <b>&nbsp; - &nbsp; </b> itens\r\n        }\r\n      </div>\r\n    </ion-text>\r\n  </div>\r\n  <div class=\"w-full h-full items-center justify-end flex portrait:justify-center\" *ngIf=\"total != null\">\r\n    <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageSub()\">\r\n      <ion-icon [ngClass]=\"{'opacity-20': page == 1}\" name=\"chevron-back\" class=\"cursor-pointer default transition\"></ion-icon>\r\n    </button>\r\n\r\n    <ion-spinner *ngIf=\"loading && lstPages.length == 0\"></ion-spinner>\r\n\r\n    <button [disabled]=\"loading\" class=\"page\" *ngFor=\"let item of lstPages\" [ngClass]=\"{ 'selected' : page == item }\" (click)=\"SetPage(item)\"> {{item}} </button>\r\n\r\n    <button class=\"flex items-center\" [disabled]=\"loading\" (click)=\"PageAdd()\">\r\n      <ion-icon [ngClass]=\"{'opacity-20': page == TotalPages }\" name=\"chevron-forward\" class=\"cursor-pointer default transition\"></ion-icon>\r\n    </button>\r\n\r\n    @if (TotalPages > 5) {\r\n      <button [disabled]=\"loading\" class=\"page\" [id]=\"pop_id\"><ion-icon name=\"search\"></ion-icon></button>\r\n      <ion-popover [trigger]=\"pop_id\" triggerAction=\"click\">\r\n        <ng-template>\r\n          <ion-content>\r\n            <div class=\"grid grid-cols-10 pl-3\">\r\n              <div class=\"col-span-8 pb-2\">\r\n                <ion-input class=\"number-class\" [(ngModel)]=\"_page\" type=\"Number\" labelPlacement=\"stacked\" label=\"Página [Max. {{TotalPages}}]\"></ion-input>\r\n              </div>\r\n              <div class=\"col-span-2\">\r\n                <ion-button [disabled]=\"loading\" class=\"size-full\" size=\"small\" (click)=\"SetPageManual()\" style=\"--border-radius: 0rem\">\r\n                  <ion-icon class=\"w-4 aspect-square\" slot=\"icon-only\" name=\"checkmark-circle\"></ion-icon>\r\n                </ion-button>\r\n              </div>\r\n            </div>\r\n          </ion-content>\r\n        </ng-template>\r\n      </ion-popover>\r\n    }\r\n    </div>\r\n</div>","import { AfterViewInit, Component, ElementRef, EmbeddedViewRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef, ViewRef } from '@angular/core';\r\nimport { autoUpdate, computePosition, ComputePositionReturn, flip, limitShift, offset, Placement, shift, arrow } from '@floating-ui/dom';\r\nimport { Timeout } from '../../../services/utils.service';\r\n\r\ntype Fill = 'solid' | 'outline' | 'blur' | 'clear';\r\n\r\n@Component({\r\n  selector: 'sion-popover',\r\n  templateUrl: './sion-popover.component.html',\r\n  styleUrls: ['./sion-popover.component.scss'],\r\n})\r\nexport class SIonPopoverComponent implements AfterViewInit, OnDestroy {\r\n\r\n  @Input() fill: Fill = 'blur';\r\n  @Input() arrow: boolean = true;\r\n  @Input() flip : boolean = true;\r\n\r\n\r\n  @Input() placement: Placement = 'bottom';\r\n  @Input() height: string = 'auto';\r\n  @Input() width: string = 'auto';\r\n\r\n\r\n  @Output() onWillPresent: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() onDidPresent: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  @Output() onWillDismiss: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() onDidDismiss: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  @Input() anchor: HTMLElement | undefined = undefined;\r\n\r\n  constructor(\r\n    private ngZone: NgZone\r\n  ) { }\r\n\r\n  @ViewChild('popoverWrapper' , { read: ElementRef }) contentContainer: ElementRef<HTMLDivElement>;\r\n  \r\n  ngAfterViewInit() {\r\n    //TODO: Use Renderer2 to add event listeners for better Angular compatibility when updating to Angular 19\r\n    this.ngZone.runOutsideAngular(() => {\r\n      this.documentClickListener = (event: MouseEvent) => {\r\n        // Run back inside Angular's zone when handling the event\r\n        this.ngZone.run(() => {\r\n          if(!this._instance){ return;}\r\n          if (\r\n            !this._instance.contains(event.target as Node) &&\r\n            !this.anchor.contains(event.target as Node)\r\n          ) {\r\n            this.dismiss();\r\n          }\r\n        });\r\n      };\r\n      \r\n      // Use the native DOM API directly with capture phase\r\n      document.addEventListener('click', this.documentClickListener, true);\r\n    });\r\n  }\r\n  documentClickListener: (event: MouseEvent) => void;\r\n  viewRef?: ViewRef;\r\n\r\n  private _embeddedView?: EmbeddedViewRef<any> | undefined;\r\n  private get _instance(): HTMLElement | undefined {\r\n    return this.contentContainer?.nativeElement;\r\n  }\r\n\r\n  get arrowEl(): HTMLElement | undefined {\r\n    return this._instance.querySelector('.popover-arrow') as HTMLElement;\r\n  }\r\n  \r\n  private cleanupAutoUpdate?: () => void;\r\n  public state: POPOVER_STATE = POPOVER_STATE.IDLE;\r\n  public async present(event?: Event): Promise<void> {\r\n    if(this.state != POPOVER_STATE.IDLE) { return; }\r\n    document.body.appendChild(this._instance);\r\n\r\n    this.onWillPresent.emit();\r\n    \r\n    this.state = POPOVER_STATE.PRESENTING;\r\n    const refEl   = this.anchor ? this.anchor : event.target as HTMLElement;\r\n    const arrowEl = this.arrowEl;\r\n\r\n    await this.update(refEl, arrowEl)\r\n    this._instance.classList.add('show');\r\n    this.cleanupAutoUpdate = autoUpdate(refEl, this._instance, async () => this.update(refEl, arrowEl));\r\n    \r\n    this.state = POPOVER_STATE.VISIBLE;\r\n    this.onDidPresent.emit();\r\n  }\r\n\r\n  private async update(refEl: HTMLElement, arrowEl: HTMLElement): Promise<void> {\r\n    const computePositionReturn: ComputePositionReturn = await this.GetComputePositionReturn(refEl, this._instance, arrowEl);\r\n    this.HandleComputePositionReturn(computePositionReturn, arrowEl);\r\n  }\r\n\r\n  public async dismiss(): Promise<void> {\r\n    if(this.state == POPOVER_STATE.IDLE) { return; }\r\n    \r\n    if(this.cleanupAutoUpdate) {\r\n      this.cleanupAutoUpdate();\r\n      this.cleanupAutoUpdate = undefined;\r\n    }\r\n    this.onWillDismiss.emit();\r\n    this.state = POPOVER_STATE.DISMISSING;\r\n    this._instance.classList.remove('show');\r\n    await Timeout(200);\r\n    this._instance?.remove();\r\n    this.state = POPOVER_STATE.IDLE;\r\n    this.onDidDismiss.emit();\r\n  }\r\n\r\n  HandleComputePositionReturn(computePositionReturn: ComputePositionReturn, arrowEl: HTMLElement): void {\r\n    Object.assign(this._instance.style, {\r\n      left: `${computePositionReturn.x}px`,\r\n      top:  `${computePositionReturn.y}px`,\r\n      width : this.width,\r\n      height: this.height,\r\n      position: 'absolute',\r\n    });\r\n    if(computePositionReturn.middlewareData.arrow){\r\n      const { x: arrowX, y: arrowY } = computePositionReturn.middlewareData.arrow;\r\n      const position = computePositionReturn.placement.split('-')[0];\r\n      const staticSide = STATIC_SIDES[position];\r\n      Object.assign(arrowEl.style, {\r\n        left: arrowX != null ? `${arrowX}px` : '',\r\n        top : arrowY != null ? `${arrowY}px` : '',\r\n        right : '',\r\n        bottom: '',\r\n        [staticSide]: `-7px`,\r\n      });\r\n      arrowEl.style.setProperty(`--rotation`, ROTATIONS[position]);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if(this._instance) {\r\n      this._instance?.remove();\r\n    }\r\n    if(this._embeddedView) {\r\n      this._embeddedView.destroy();\r\n      this._embeddedView = undefined;\r\n    }\r\n\r\n    if (this.documentClickListener) {\r\n      document.removeEventListener('click', this.documentClickListener, true);\r\n    }\r\n    if (this.viewRef) {\r\n      this.viewRef.destroy();\r\n      this.viewRef = undefined;\r\n    }\r\n  }\r\n\r\n  async GetComputePositionReturn(refEl: HTMLElement, popEl: HTMLElement, arrowEl: HTMLElement): Promise<ComputePositionReturn> {\r\n    return await computePosition(refEl, popEl, {\r\n      placement: this.placement,\r\n      middleware: [ \r\n        offset(10), \r\n        this.flip  ? flip({ crossAxis: false }) : undefined, \r\n        shift({ limiter: limitShift(), padding: 5 }), \r\n        this.arrow ? arrow({ element: arrowEl, padding: 10 }) : undefined,\r\n      ].filter(p => p),\r\n    });\r\n  }\r\n}\r\n\r\nenum POPOVER_STATE{\r\n  IDLE       = 1,\r\n  PRESENTING = 2,\r\n  DISMISSING = 3,\r\n  VISIBLE    = 4\r\n}\r\nconst STATIC_SIDES = {\r\n  top: \"bottom\",\r\n  right: \"left\",\r\n  bottom: \"top\",\r\n  left: \"right\"\r\n};\r\nconst ROTATIONS = {\r\n  bottom: \"135deg\",\r\n  top: \"315deg\",\r\n  left: \"225deg\",\r\n  right: \"45deg\",\r\n}\r\n","<div #popoverWrapper \r\n  class=\"popover-wrapper translucid-border\"\r\n  [style.height]=\"height\"\r\n  [style.width]=\"width\"\r\n  [ngClass]=\"{\r\n      'bg-light'        : fill == 'solid',\r\n      'bg-transparent'  : fill == 'outline',\r\n      'bg-light/90'     : fill == 'blur',\r\n      '!border-0'       : fill == 'clear',\r\n    }\"\r\n> \r\n  <div #popoverArrow class=\"popover-arrow size-4 translucid-border\"\r\n    [ngClass]=\"{\r\n      'bg-light'        : fill == 'solid',\r\n      'bg-transparent'  : fill == 'outline',\r\n      'bg-light/90'     : fill == 'blur',\r\n      '!border-0'       : fill == 'clear',\r\n    }\"\r\n  ></div>\r\n  <ng-content #content></ng-content>\r\n</div>","import { Component, computed, ElementRef, forwardRef, HostListener, input, InputSignal, OnInit, Signal, signal, ViewChild, WritableSignal } from '@angular/core';\r\nimport { maskitoDateTimeOptionsGenerator } from '@maskito/kit';\r\nimport { maskitoDateOptionsGenerator } from '@maskito/kit';\r\nimport { maskitoTimeOptionsGenerator } from '@maskito/kit';\r\nimport { MaskitoOptions } from '@maskito/core';\r\nimport moment, { Moment } from 'moment';\r\n\r\nimport { InputDateConfiguration } from './input-date.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { IonDatetime, IonModal, IonPopover } from '@ionic/angular';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\r\n\r\n\r\n@Component({\r\n  selector: 'input-date, input-date-time, input-time',\r\n  templateUrl: './input-date.component.html',\r\n  styleUrls: ['./input-date.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputDateComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputDateComponent) },\r\n  ],\r\n})\r\nexport class InputDateComponent extends CustomInput<string> {\r\n  static FormatISO = 'YYYY-MM-DDTHH:mm:ss';\r\n  \r\n  configuration: InputSignal<InputDateConfiguration> = input<InputDateConfiguration>(new InputDateConfiguration());\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if (this.presentation == DatePresentation.Time) {\r\n      // em vez de focar, já abre o picker/modal\r\n      if (!event) return;\r\n      this.Present(event);\r\n      return;\r\n    }\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n  \r\n  options: MaskitoOptions;\r\n  // Formato do input html (string)\r\n  momentFormat: 'DD/MM/YYYY HH:mm' | 'DD/MM/YYYY' | 'HH:mm' = 'DD/MM/YYYY HH:mm';\r\n\r\n\r\n  //Handle input interface\r\n  windowSize: WritableSignal<number> = signal<number>(window.innerWidth);\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize(event: any) { this.windowSize.set(window.innerWidth); }\r\n  interface: Signal<DateInterfaces> = computed<DateInterfaces>(() => {\r\n    return this.windowSize() > window.innerHeight ? DateInterfaces.Popover : DateInterfaces.Modal;\r\n  });\r\n  DateInterfaces = DateInterfaces;\r\n\r\n\r\n  constructor(\r\n    override elementRef: ElementRef\r\n  ) { \r\n    super(); \r\n    const presentation = (this.elementRef.nativeElement.tagName.toLowerCase() as string).replace('input-', '');\r\n    this.presentation = {\r\n      'date-time': DatePresentation.DateTime,\r\n      'date': DatePresentation.Date,\r\n      'time': DatePresentation.Time,\r\n    }[presentation] ?? DatePresentation.DateTime;\r\n\r\n    if(this.presentation == DatePresentation.DateTime){ \r\n      this.momentFormat = 'DD/MM/YYYY HH:mm';\r\n      this.options = maskitoDateTimeOptionsGenerator({\r\n        dateMode: 'dd/mm/yyyy',\r\n        timeMode: 'HH:MM',\r\n        dateSeparator: '/',\r\n        dateTimeSeparator: ' ',\r\n        timeStep: 1,\r\n      });\r\n    } else\r\n    if(this.presentation == DatePresentation.Date) {\r\n      this.momentFormat = 'DD/MM/YYYY';\r\n      this.options = maskitoDateOptionsGenerator({ mode: 'dd/mm/yyyy', separator: '/'});\r\n    } else\r\n    if(this.presentation == DatePresentation.Time) {\r\n      this.momentFormat = 'HH:mm'; \r\n      this.options = maskitoTimeOptionsGenerator({\r\n        mode: 'HH:MM',\r\n        step: 1,\r\n      });\r\n    }\r\n  }\r\n  \r\n  @HostListener('keydown', ['$event'])\r\n  onKeyDown(event: KeyboardEvent) {\r\n    if (this.presentation === DatePresentation.Time && event.target === this.input?.nativeElement) {\r\n      event.preventDefault();\r\n    }\r\n  }\r\n  \r\n  ClearValue(event?: MouseEvent) {\r\n    if (event) {\r\n      event.stopPropagation(); // impede de abrir o calendário ao clicar no clear\r\n    }\r\n    this.value.set(null);\r\n    this.momentValue = undefined;\r\n    this.readableValue = '';\r\n    this.hour = '00';\r\n    this.minute = '00';\r\n    this.propagateChange(null);\r\n  }\r\n\r\n  public presentation: DatePresentation = DatePresentation.DateTime;\r\n  \r\n  readableValue: string = '';\r\n  SetValueFromReadable(value: string): void {\r\n    const m = moment(value, this.momentFormat, true).format(InputDateComponent.FormatISO);  \r\n    this.SetValue(m);\r\n  }\r\n  SetValueFromMoment(value: moment.Moment | null): void {\r\n    if (!value) { return; }\r\n    if (this.presentation === DatePresentation.Time) {\r\n      const formatted = value.format('HH:mm');\r\n      this.value.set(formatted);\r\n      this.readableValue = formatted;\r\n      this.propagateChange(formatted);\r\n      return;\r\n    }\r\n    if (this.configuration().setHourMoment && this.presentation == DatePresentation.DateTime) {\r\n      const now = moment();\r\n\r\n      // Se ainda não existe momentValue OU hora/minuto zerados\r\n      const aplicarHoraAtual =\r\n        !this.momentValue ||\r\n        (this.momentValue.hour() == 0 && this.momentValue.minute() == 0);\r\n\r\n      if (aplicarHoraAtual) {\r\n        value = value.clone()\r\n          .hour(now.hour())\r\n          .minute(now.minute())\r\n          .second(0);\r\n      } else {\r\n        // mantém hora já escolhida anteriormente\r\n        value = value.clone()\r\n          .hour(this.hour ? Number(this.hour) : value.hour())\r\n          .minute(this.minute ? Number(this.minute) : value.minute());\r\n      }\r\n    }\r\n    this.SetValue(value.format(InputDateComponent.FormatISO));\r\n  }\r\n\r\n  @ViewChild('calendar') calendar: MatCalendar<moment.Moment>;\r\n  /**\r\n   * @param obj String in ISO format (YYYY-MM-DDThh:mm:ss)\r\n   */\r\n  override SetValue(obj: string): void {\r\n    this.value.set(obj);\r\n\r\n    if(this.value()){\r\n      this.momentValue   = moment(this.value(), InputDateComponent.FormatISO, true);\r\n      this.readableValue = this.momentValue.format(this.momentFormat.toString());\r\n\r\n      if(this.calendar){\r\n        this.calendar.activeDate = this.momentValue; // set the active date to the selected date\r\n        this.calendar.updateTodaysDate(); // update calendar state\r\n      }\r\n      if(this.momentValue){\r\n        this.hour   = this.momentValue.get('hour').toString().padStart(2,'0');\r\n        this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n      }\r\n    }\r\n    \r\n    this.runValidation();\r\n    if(this.momentValue.isValid()){\r\n      this.propagateChange(obj);\r\n    } else{\r\n      this.propagateChange(null);\r\n    }\r\n  }\r\n\r\n  momentValue?: moment.Moment;\r\n\r\n  @ViewChild(IonDatetime) datetime: IonDatetime;\r\n  \r\n  override writeValue(obj?: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n  \r\n    if (this.value()) {\r\n      if (this.presentation === DatePresentation.Time) {\r\n        this.readableValue = moment(this.value(), 'HH:mm', true).format('HH:mm');\r\n      \r\n        // cria momentValue se quiser manipular hora/minuto depois\r\n        this.momentValue = moment(this.readableValue, 'HH:mm', true);\r\n      \r\n        this.hour   = this.momentValue.get('hour').toString().padStart(2,'0');\r\n        this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n      } else {\r\n        this.momentValue   = moment(this.value(), InputDateComponent.FormatISO, true);\r\n        this.readableValue = this.momentValue.format(this.momentFormat.toString());\r\n        \r\n        if (this.calendar) {\r\n          this.calendar.activeDate = this.momentValue;\r\n          this.calendar.updateTodaysDate();\r\n        }\r\n        if (this.momentValue) {\r\n          this.hour   = this.momentValue.get('hour').toString().padStart(2,'0');\r\n          this.minute = this.momentValue.get('minute').toString().padStart(2,'0');\r\n        }\r\n      }\r\n    }\r\n    this.runValidation();\r\n  }\r\n\r\n\r\n  @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n  @ViewChild(IonModal) modal: IonModal;\r\n  async Present(event: MouseEvent) {\r\n    if(this.interface() == DateInterfaces.Popover){\r\n      return this.popover.present(event);\r\n    } else {\r\n      return this.modal.present();\r\n    }\r\n  }\r\n\r\n  async Dismiss() {\r\n    if(this.popover){\r\n      this.popover.dismiss();\r\n    }\r\n    if(this.modal){\r\n      this.modal.dismiss();\r\n    }\r\n  }\r\n\r\n  DatePresentation = DatePresentation;\r\n\r\n  lstHours = lstHours;\r\n  lstMinutes = lstMinutes;\r\n\r\n  hour  : string = '00';\r\n  minute: string = '00';\r\n\r\n  OnChangeHour(event: string) {\r\n    if (event == this.hour) { return; }\r\n    this.hour = event;\r\n  \r\n    if (!this.momentValue) {\r\n      this.momentValue = moment().startOf('day'); // cria um moment base\r\n    }\r\n  \r\n    this.momentValue.set('hour', Number(event));\r\n    this.SetValueFromMoment(this.momentValue);\r\n  }\r\n  \r\n  OnChangeMinute(event: string) {\r\n    if (event == this.minute) { return; }\r\n    this.minute = event;\r\n  \r\n    if (!this.momentValue) {\r\n      this.momentValue = moment().startOf('day');\r\n    }\r\n  \r\n    this.momentValue.set('minute', Number(event));\r\n    this.SetValueFromMoment(this.momentValue);\r\n  }\r\n}\r\n\r\n\r\nenum DatePresentation {\r\n  DateTime = 1,\r\n  Date     = 2,\r\n  Time     = 3\r\n}\r\nenum DateInterfaces{\r\n  Popover = 1,\r\n  Modal   = 2,\r\n}\r\n\r\nconst lstHours = Array.from(Array(24).keys()).map(i => i.toString().padStart(2,'0'));\r\nconst lstMinutes = Array.from(Array(60).keys()).map(i => i.toString().padStart(2,'0'));","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  \r\n  <input #input\r\n    [ngModel]=\"readableValue\" \r\n    (ngModelChange)=\"SetValueFromReadable($event);\"\r\n    [readOnly]=\"presentation == DatePresentation.Time\"\r\n    [maskito]=\"options\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    (blur)=\"blur.emit($event)\"\r\n    (keydown)=\"onKeyDown($event)\"\r\n  />\r\n  <ion-button  *ngIf=\"configuration().clearable && readableValue\" tabindex=\"-1\" class=\"absolute right-8 bottom-1\" \r\n                (click)=\"ClearValue($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\"\r\n  >\r\n    <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n  </ion-button>\r\n  \r\n  <ion-button tabindex=\"-1\" class=\"absolute right-2 bottom-1\" (click)=\"Present($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n    <ion-icon [name]=\"presentation == DatePresentation.Time ? 'time' : 'calendar'\" slot=\"icon-only\"></ion-icon>\r\n  </ion-button>\r\n\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>\r\n\r\n@if (interface() == DateInterfaces.Popover) {\r\n  <sion-popover\r\n    #popover \r\n    [anchor]=\"inputContainer\"\r\n  >\r\n    <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n  </sion-popover>\r\n}\r\n@else {\r\n  <ion-modal \r\n    #modal\r\n    [class.time]=\"presentation == DatePresentation.Time\" \r\n    [class.date]=\"presentation == DatePresentation.Date\" \r\n    [class.datetime]=\"presentation == DatePresentation.DateTime\"\r\n  >\r\n    <ng-template>\r\n      <ng-container *ngTemplateOutlet=\"datetimeTemplate;\"></ng-container>\r\n    </ng-template>\r\n  </ion-modal>\r\n}\r\n\r\n\r\n<ng-template #datetimeTemplate>\r\n  <div class=\"flex items-center justify-center bg-[--ion-color-light] rounded-xl\" tabindex=\"-1\">\r\n    \r\n    @if ([DatePresentation.DateTime, DatePresentation.Date].includes(presentation)) {\r\n      <mat-calendar #calendar class=\"w-72 text-dark\" \r\n        [(selected)]=\"momentValue\" \r\n        (selectedChange)=\"SetValueFromMoment($event)\"\r\n      ></mat-calendar>\r\n    }\r\n    @if ([DatePresentation.DateTime, DatePresentation.Time].includes(presentation)) {\r\n      <div class=\"flex h-full mask-y/30 items-center justify-center\">\r\n        <ion-picker>\r\n          <ion-picker-column (ionChange)=\"OnChangeHour($event.target.value.toString())\" [value]=\"hour\">\r\n            @for (item of lstHours; track $index) {\r\n              <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n            }\r\n          </ion-picker-column>\r\n          <ion-picker-column (ionChange)=\"OnChangeMinute($event.target.value.toString())\" [value]=\"minute\">\r\n            @for (item of lstMinutes; track $index) {\r\n              <ion-picker-column-option [value]=\"item\">{{item}}</ion-picker-column-option>\r\n            }\r\n          </ion-picker-column>\r\n        </ion-picker>\r\n      </div>\r\n    }\r\n\r\n  </div>\r\n</ng-template>\r\n","import { Component, computed, ElementRef, forwardRef, HostListener, model, ModelSignal, Signal, ViewChild } from '@angular/core';\r\nimport { formatNumber } from '@angular/common';\r\nimport { InputCurrencyConfiguration, InputDecimalConfiguration, InputNumberConfiguration, InputPercentageConfiguration } from './input-decimal.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Timeout } from '../../../services/utils.service';\r\n\r\n@Component({\r\n  selector: 'input-decimal, input-number, input-currency, input-percentage',\r\n  templateUrl: './input-decimal.component.html',\r\n  styleUrls: ['./input-decimal.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputDecimalComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputDecimalComponent) },\r\n  ],\r\n})\r\nexport class InputDecimalComponent extends CustomInput<number | null> {\r\n\r\n  configuration: ModelSignal<InputDecimalConfiguration> = model<InputDecimalConfiguration>();\r\n  digitsInfo: Signal<string> = computed(() => `1.${this.configuration().precision}-${this.configuration().precision}`);\r\n  divider: Signal<number> = computed(() => Math.pow(10, this.configuration().precision));\r\n\r\n  placeholder: Signal<string> = computed(() => {\r\n    const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-').at(-1);\r\n    if(selector == \"number\"){\r\n      return `0`;\r\n    }else{\r\n      const zeros = '0'.repeat(this.configuration().precision);\r\n      return `0,${zeros}`;\r\n    }\r\n  });\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && event.target == this.inputContainer.nativeElement) { \r\n      this.input.nativeElement.focus(); \r\n      this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n    }      \r\n  }\r\n  constructor(\r\n    override elementRef: ElementRef\r\n  ) { \r\n    super(); \r\n    this.value.set(null);\r\n    this.valueString = '';\r\n    const selector: string = this.elementRef.nativeElement.tagName.toLowerCase().split('-').at(-1);\r\n    if(selector == \"number\"     && !this.configuration()){ this.configuration.set(new InputNumberConfiguration());     } else\r\n    if(selector == \"decimal\"    && !this.configuration()){ this.configuration.set(new InputDecimalConfiguration());    } else\r\n    if(selector == \"currency\"   && !this.configuration()){ this.configuration.set(new InputCurrencyConfiguration());   } else\r\n    if(selector == \"percentage\" && !this.configuration()){ this.configuration.set(new InputPercentageConfiguration()); }\r\n    this.SetValueString(); \r\n  }\r\n  \r\n  override writeValue(obj: number | null): void {\r\n    this.value.set(obj);\r\n\r\n    if (!obj) {\r\n      this.valueString = '';\r\n    } else {\r\n      this.SetValueString();\r\n    }\r\n\r\n    this.runValidation();\r\n  }\r\n  override SetValue(obj: number | null): void {\r\n    this.value.set(obj);\r\n\r\n    if (!obj) {\r\n      this.valueString = '';\r\n    } else {\r\n      this.SetValueString();\r\n    }\r\n\r\n    this.runValidation();\r\n    this.propagateChange(obj);\r\n  }\r\n  SetValueString(): void {\r\n    this.valueString = formatNumber(this.value(), \"pt-BR\", this.digitsInfo());\r\n  }\r\n  \r\n  valueString: string;\r\n\r\n  @HostListener('paste', ['$event'])\r\n  onPaste(event: ClipboardEvent): void {\r\n    event.preventDefault();\r\n    \r\n    let clipboardData = event.clipboardData || window['clipboardData'];\r\n    let pastedText    = clipboardData.getData('text');\r\n\r\n    const s = pastedText.replaceAll('.', '').replaceAll(',', '.');\r\n    const n = Number(s);\r\n\r\n    if(Number(s) && isFinite(n)){ \r\n      this.SetValue(n);\r\n    }\r\n    event.preventDefault();\r\n  }\r\n\r\n  async onKeyDown(event: KeyboardEvent): Promise<void>{\r\n    const value: string = this.input.nativeElement.value;\r\n\r\n    const selectionStart: number = this.input.nativeElement.selectionStart;\r\n    const selectionEnd  : number = this.input.nativeElement.selectionEnd;\r\n\r\n    const atLeft  = value.slice(0, selectionStart); \r\n    const atRight = value.slice(selectionEnd, value.length); \r\n    if([\"-\"].includes(event.key)){ \r\n      return await this.HandleNegative(event, selectionStart, selectionEnd, value, atLeft, atRight);\r\n    }else\r\n    if(lstNumbers.includes(event.key)){ \r\n      return await this.HandleNumber(event, selectionStart, selectionEnd, value, atLeft, atRight); \r\n    }else\r\n    if(lstEspecialCases.includes(event.key)){ \r\n      return await this.HandleEspecial(event, selectionStart, selectionEnd, value, atLeft, atRight); \r\n    }else\r\n    if([\"A\", \"a\"].includes(event.key) && event.ctrlKey){ \r\n      return; \r\n    }else\r\n    if([\"C\", \"c\"].includes(event.key) && event.ctrlKey){ \r\n      return; \r\n    }else\r\n    if([\"V\", \"v\"].includes(event.key) && event.ctrlKey){ \r\n      return; \r\n    }else\r\n    if(lstIgnoreNotPrevent.includes(event.key)){ \r\n      return; \r\n    }else{\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  async HandleNegative(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void>{\r\n    event.preventDefault();\r\n\r\n    let focusEnd = (selectionStart == 0 && selectionEnd == this.valueString.length);\r\n    /** [ Remove decimalSeparator & thousandSeparator ] */\r\n    let f;\r\n    if(!atLeft.includes('-')){\r\n      f = event.key + atLeft + atRight;\r\n    }else{\r\n      f = (atLeft + atRight).replace('-', '')\r\n    }\r\n\r\n    if(f == \"-\"){ \r\n      if(value.includes('-')){\r\n        f = value.replace('-', '');\r\n      }\r\n      else{\r\n        f = `-${value}`;\r\n      }\r\n    }\r\n\r\n    const CurrentValue: number = this.SanitizeValue(f);\r\n    if(CurrentValue == this.value()){ return; }\r\n    \r\n    //[ Handle Set Cursor Position]\r\n    this.SetValue(CurrentValue);\r\n    const newPos = selectionStart + 1 + this.valueString.split('.').length - value.split('.').length;\r\n    \r\n    //Horrivel, mas nao tem uma alternativa boa, https://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element\r\n    await Timeout(0);\r\n    this.input.nativeElement.setSelectionRange(newPos, newPos); \r\n    if(focusEnd){\r\n      this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n    }\r\n    return;\r\n  }\r\n\r\n  async HandleNumber(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void> {\r\n    event.preventDefault();\r\n    \r\n    let focusEnd = (selectionStart == 0 && selectionEnd == this.valueString.length);\r\n    /** [ Remove decimalSeparator & thousandSeparator ] */\r\n    const f = atLeft + event.key + atRight;\r\n    const CurrentValue: number = this.SanitizeValue(f);\r\n    if(CurrentValue == this.value()){ return; }\r\n    if(CurrentValue > decimalMaxValue){ return; }\r\n    \r\n    //[ Handle Set Cursor Position]\r\n    this.SetValue(CurrentValue);\r\n    const newPosition = selectionStart + 1 + this.valueString.split('.').length - value.split('.').length;\r\n    \r\n    //Horrivel, mas nao sem uma alternativa boa, https://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text-in-text-input-element\r\n    await Timeout(0);\r\n    this.input.nativeElement.setSelectionRange(newPosition, newPosition); \r\n    if(focusEnd){\r\n      this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n    }\r\n    return;\r\n  }\r\n\r\n  SanitizeValue(f: string): number{\r\n    var CurrentValue: number = Number(Sanitize(f)) / this.divider();\r\n    if(CurrentValue >= decimalMaxValue){ \r\n      return this.value(); \r\n    }\r\n    return CurrentValue;\r\n  }\r\n\r\n  async HandleEspecial(event: KeyboardEvent, selectionStart: number, selectionEnd: number, value: string, atLeft: string, atRight: string): Promise<void> {\r\n    event.preventDefault();\r\n    if(selectionStart == selectionEnd){\r\n      if(event.key == \"Backspace\"){\r\n        if(selectionStart ==  selectionEnd && selectionStart == 0){ \r\n          return; \r\n        }\r\n\r\n        const previousChar: string = atLeft.at(-1);\r\n        const isNumber = lstNumbers.includes(previousChar);\r\n        const f = atLeft.slice(0, atLeft.length - (isNumber ? 1 : 2)) + atRight;\r\n        const CurrentValue = this.SanitizeValue(f);\r\n        if (f === '' || Sanitize(f) === '') {\r\n          this.SetValue(null);\r\n          await Timeout(0);\r\n          this.input.nativeElement.setSelectionRange(0, 0);\r\n          return;\r\n        }\r\n        \r\n        //[ Handle Set Cursor Position]\r\n        this.SetValue(CurrentValue);\r\n        await Timeout(0);\r\n        let pos = isNumber ? selectionStart - 1 : selectionStart - 2;\r\n\r\n        if (selectionEnd == this.valueString.length) {\r\n          pos++;\r\n        }\r\n        this.input.nativeElement.setSelectionRange(pos, pos); \r\n        return;\r\n      }else\r\n      if(event.key == \"Delete\"){\r\n        const nextChar: string =  atRight[0];\r\n        const isNumber = lstNumbers.includes(nextChar);\r\n        const f = atLeft + atRight.slice(isNumber ? 1 : 2);\r\n        const CurrentValue = this.SanitizeValue(f);\r\n        if (f === '' || Sanitize(f) === '') {\r\n          this.SetValue(null);\r\n          await Timeout(0);\r\n          this.input.nativeElement.setSelectionRange(0, 0);\r\n          return;\r\n        }\r\n        //[ Handle Set Cursor Position]\r\n        this.SetValue(CurrentValue);\r\n        var pos: number = selectionStart;\r\n        if(pos <= -1){ pos = 0; }\r\n        if(CurrentValue < 1){\r\n          pos++;\r\n        }\r\n        if(!isNumber){\r\n          pos++;\r\n        }\r\n\r\n        await Timeout(0);\r\n        this.input.nativeElement.setSelectionRange(pos, pos);\r\n        return;\r\n      }\r\n    }else{\r\n      const f = atLeft + atRight;\r\n      const CurrentValue = this.SanitizeValue(f);\r\n      this.SetValue(CurrentValue);\r\n      \r\n      await Timeout(0);\r\n      this.input.nativeElement.setSelectionRange(this.valueString.length, this.valueString.length); \r\n\r\n      return;\r\n    }\r\n  }\r\n}\r\n\r\n\r\nconst decimalMaxValue = 9_000_000_000_000.00\r\n\r\nconst decimalSeparator : string = \",\";\r\nconst thousandSeparator: string = \".\";\r\n\r\nconst Sanitize: Function = ((v: string): string => { \r\n  return v.replaceAll(thousandSeparator, '')\r\n          .replace   (decimalSeparator , '') \r\n        });\r\n\r\nconst lstNumbers          = [ \"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\" ];\r\nconst lstIgnoreNotPrevent = [ \"Tab\", \"CapsLock\", \"Shift\", \"Control\", \"Alt\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\"];\r\nconst lstEspecialCases    = [ \"Backspace\", \"Delete\" ];","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n\r\n  <div class=\"decimal-input-container text-dark\">\r\n    <span *ngIf=\"configuration().prefix\" slot=\"start\">{{configuration().prefix}}</span>\r\n    <input #input\r\n      inputmode=\"numeric\"\r\n      [attr.placeholder]=\"!valueString ? placeholder() : null\"\r\n      [value]=\"valueString\" \r\n      (keydown)=\"onKeyDown($event)\"\r\n      [disabled]=\"disabled() || loading()\"\r\n      (blur)=\"blur.emit($event)\"\r\n    />\r\n    <span *ngIf=\"configuration().sufix\"  slot=\"end\"  >{{configuration().sufix}}</span>\r\n  </div>\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sionPlaceholderTemplate]',\r\n})\r\nexport class SIonPlaceholderTemplateDirective {\r\n  constructor(public template: TemplateRef<PlaceholderTemplateContext>) {}\r\n}\r\n\r\nexport interface PlaceholderTemplateContext {\r\n  /**\r\n   * Placeholder na configuração do componente de input select.\r\n   */\r\n  $implicit: string;\r\n  /**\r\n   * Placeholder na configuração do componente de input select.\r\n   */\r\n  placeholder: string;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sionOptionTemplate]',\r\n})\r\nexport class SIonOptionTemplateDirective<T> {\r\n  constructor(public template: TemplateRef<OptionTemplateContext<T>>) {}\r\n}\r\n\r\n\r\nexport interface OptionTemplateContext<T> {\r\n  /**\r\n   * O item naquela opção\r\n   */\r\n  item: T;\r\n}","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[sionLabelTemplate]',\r\n})\r\nexport class SIonLabelTemplateDirective<T> {\r\n  constructor(public template: TemplateRef<LabelTemplateContext<T>>) {}\r\n}\r\n\r\nexport interface LabelTemplateContext<T> {\r\n  /**\r\n   * O valor do item via bindLabel que está sendo renderizado.\r\n   */\r\n  $implicit: string;\r\n  /**\r\n   * O item selecionado no componente de input select.\r\n   */\r\n  item: T;\r\n}","import { afterNextRender, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, ContentChild, effect, ElementRef, forwardRef, HostListener, inject, Injector, input, InputSignal, model, ModelSignal, signal, Signal, TemplateRef, ViewChild, WritableSignal, } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { ActionSheetButton, AlertButton, AlertInput, InfiniteScrollCustomEvent, IonActionSheet, IonAlert, IonContent, IonModal } from '@ionic/angular';\r\n\r\nimport { debounceTime, distinctUntilChanged, Subject, Subscription, takeUntil } from 'rxjs';\r\nimport { BindLabelFactory, BindValueFactory, InputSelectConfiguration, SelectInterfaces } from './input.select.configuration';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Search, Timeout } from '../../../services/utils.service';\r\n\r\nimport { PlaceholderTemplateContext, SIonPlaceholderTemplateDirective } from './directives/sion-placeholder-template.directive';\r\nimport { OptionTemplateContext, SIonOptionTemplateDirective } from './directives/sion-option-template.directive';\r\nimport { LabelTemplateContext, SIonLabelTemplateDirective } from './directives/sion-label-template.directive';\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\n\r\n@Component({\r\n  selector: 'input-select',\r\n  templateUrl: './input-select.component.html',\r\n  styleUrls: ['./input-select.component.scss', '../inputs.scss'],\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputSelectComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputSelectComponent) },\r\n  ],\r\n})\r\nexport class InputSelectComponent<T = any> extends CustomInput<T | T[]> implements AfterViewInit {\r\n\r\n  SelectInterfaces = SelectInterfaces;\r\n\r\n  /** Items disponíveis no select */\r\n  items            : ModelSignal<any[]>                      = model<any[]>([]);\r\n  /** Configuração do select */\r\n  configuration    : InputSignal<InputSelectConfiguration> = input<InputSelectConfiguration>(new InputSelectConfiguration()); \r\n  loadingFromLoader: boolean = false;\r\n\r\n  currentLabel: string | undefined = undefined;\r\n  currentItems : any | ItemValue<any>[] | undefined = undefined;\r\n  \r\n  SetCurrentItemLabel(): void {\r\n    if(this.configuration().multiple){\r\n      this.currentLabel = this.lstOptionsItemValue().filter(p => p.selected).map(p => p.label).join(', ');\r\n      this.currentItems = this.lstOptionsItemValue().filter(p => p.selected);\r\n    }\r\n    else{\r\n      this.currentLabel = this.lstOptionsItemValue().find(p => p.selected)?.label;\r\n      this.currentItems = this.lstOptionsItemValue().find(p => p.selected);\r\n    }\r\n  }\r\n\r\n  lstOptionsItemValue: Signal<ItemValue<any>[]> = computed(() => {\r\n    const bindLabel = BindLabelFactory(this.configuration());\r\n    const bindValue = BindValueFactory(this.configuration());\r\n    return this.items().filter(p => (this.somenteAtivos() && this.hasAtivo()) ? p.ativo : true) .map(p => {\r\n      const item = new ItemValue<any>();\r\n      item.label = bindLabel(p);\r\n      item.value = bindValue(p);\r\n      item.item  = p;\r\n      item.selected = this.value() == item.value;\r\n      item.disabled = p.disabled || false || (this.hasAtivo() && p.ativo == false);\r\n      return item;\r\n    });\r\n  });\r\n\r\n  windowSize: WritableSignal<number> = signal<number>(window.innerWidth);\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize(event: any) {\r\n    this.windowSize.set(window.innerWidth);\r\n    this.SetInterface();\r\n  }\r\n  SetInterface(): void {\r\n    var _interface = this.configuration().interface;\r\n    if(_interface == SelectInterfaces.Dynamic){\r\n      _interface = isPortrait() ? SelectInterfaces.ActionSheet : SelectInterfaces.Popover;\r\n    }\r\n    this.interface.set(_interface);\r\n  }\r\n  interface: WritableSignal<SelectInterfaces> = signal<SelectInterfaces>(undefined);\r\n\r\n  lstOptions: ItemValue<any>[] = [];\r\n  lstOptionsAlert      : AlertInput[] = [];\r\n  lstButtonsAlert      : AlertButton[] = [];\r\n  lstOptionsActionSheet: ActionSheetButton[] = [];\r\n\r\n  infiniteScrollPage: WritableSignal<number> = signal<number>(1);\r\n  AddPage(event: InfiniteScrollCustomEvent): void {\r\n    this.infiniteScrollPage.set(this.infiniteScrollPage() + 1);\r\n    event.target.complete();\r\n  }\r\n\r\n  UpdateLstOptions(search: string): void {\r\n    // Update the search \r\n    if (search) {\r\n      this.lstOptions = Search<ItemValue<any>>(this.lstOptionsItemValue(), search, (item: ItemValue<any>) => item.label);\r\n    } else { \r\n      this.lstOptions = this.lstOptionsItemValue(); \r\n    }\r\n    if(this.configuration().useInfiniteScroll){\r\n      this.lstOptions = this.lstOptions.slice(0, this.infiniteScrollPage() * 25);\r\n    }\r\n    \r\n    if(this.interface() == SelectInterfaces.ActionSheet){\r\n      this.lstOptionsActionSheet = [...this.lstOptions.map(p => {\r\n        return {\r\n          text: p.label,\r\n          handler: () => { this.Select(p); },\r\n          role    : p.selected ? 'selected' : '',\r\n        };\r\n      }), \r\n        {\r\n          text: 'Cancelar',\r\n          role: 'cancel',\r\n          data: { action: 'cancel', },\r\n          handler() {\r\n            this.renderInterface = false;\r\n          },\r\n        }\r\n      ];\r\n    }\r\n  }\r\n  UpdateSelected(): void {\r\n    if (this.configuration().multiple){\r\n      const arr = this.value() as any[] || [];\r\n      for (const item of this.lstOptions) {\r\n        item.selected = arr.find(p => p == item.value) != undefined;\r\n      }\r\n    } else {\r\n      this.lstOptions.forEach((item: ItemValue<any>) => { item.selected = this.value() == item.value; });\r\n    }\r\n    this.SetCurrentItemLabel();\r\n  }\r\n\r\n  @ContentChild(SIonLabelTemplateDirective      , { read: TemplateRef }) labelTemplate      : TemplateRef<LabelTemplateContext<T>>;\r\n  @ContentChild(SIonOptionTemplateDirective     , { read: TemplateRef }) optionTemplate     : TemplateRef<OptionTemplateContext<T>>;\r\n  @ContentChild(SIonPlaceholderTemplateDirective, { read: TemplateRef }) placeholderTemplate: TemplateRef<PlaceholderTemplateContext>;\r\n\r\n\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  @ViewChild('inputSelectLabel') inputSelectLabel: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void { \r\n    if(this.configuration().loader.error || this.loadingFromLoader || this.loading() || this.disabled()) { return; }\r\n    this.Present(event);\r\n  }\r\n\r\n  \r\n  constructor(\r\n    private cdr: ChangeDetectorRef\r\n  ) { \r\n    super(); \r\n    effect(() => {\r\n      this.cdr.markForCheck();    \r\n      this.UpdateLstOptions(this.searchValue());\r\n      this.UpdateSelected();\r\n\r\n    }, { allowSignalWrites: true }) \r\n  }\r\n  override async ngOnInit(): Promise<void> {\r\n    await super.ngOnInit();\r\n    this.SetInterface();\r\n    this.configuration().loader.AddComponent(this);\r\n    this.configuration().loader.Refresh(this.items());\r\n  }\r\n  hasAtivo: Signal<boolean> = computed(() => {\r\n    return (\r\n      this.configuration().hasAtivo == true ||\r\n      this.configuration().loadFromService instanceof HttpServiceAtivo\r\n    );\r\n  });\r\n  somenteAtivos: WritableSignal<boolean> = signal<boolean>(true);\r\n\r\n  @HostListener('document:keydown', ['$event'])\r\n  HandleKeyboardEvent(event: KeyboardEvent): void {\r\n    // [ Popover ]\r\n    if(this.selectContent?.nativeElement?.contains(event.target as Node)){\r\n      if(event.key == \"Tab\"){\r\n        event.preventDefault();\r\n        return;\r\n      } else\r\n      if (event.key == \"Escape\"){\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        this.Dismiss();\r\n        return;\r\n      }\r\n    }\r\n    // [ inputContainer ]\r\n    if(this.inputContainer?.nativeElement?.contains(event.target as Node)){ \r\n      if([\"ArrowDown\", \"ArrowUp\"].includes(event.key)){\r\n        event.preventDefault();\r\n        this.Present(event);\r\n        return;\r\n      }\r\n    }\r\n    // [ inputSelectSearchBar ]\r\n    if(this.inputSearchBar?.nativeElement == event.target){\r\n      if(event.key == \"Enter\"){\r\n        event.preventDefault();\r\n        // If the select is not ativo ignore the selected item\r\n        const item = this.lstOptions[this.selectedIndex!];\r\n        if(this.hasAtivo() && !item.item.ativo) { return; }\r\n        this.Select(item);\r\n        return;\r\n      } else \r\n      if(event.key == \"ArrowDown\"){\r\n        if(this.selectedIndex == undefined){ this.selectedIndex = 0; return; }\r\n        event.preventDefault();\r\n        this.selectedIndex = (this.selectedIndex < this.lstOptions.length - 1 ? this.selectedIndex + 1 : this.selectedIndex)\r\n        return;\r\n      } else \r\n      if(event.key == \"ArrowUp\"){\r\n        if(this.selectedIndex == undefined){ this.selectedIndex = 0; return; }\r\n        event.preventDefault();\r\n        this.selectedIndex = (this.selectedIndex > 0 ? this.selectedIndex - 1 : this.selectedIndex)\r\n        return;\r\n      }\r\n    }\r\n  }\r\n  selectedIndex: number | undefined = undefined;\r\n\r\n  //[ Search Bar ]\r\n  @ViewChild('inputSearchBar') inputSearchBar: ElementRef<HTMLInputElement>;\r\n  searchBarControl: FormControl = new FormControl('');\r\n  searchValue     : WritableSignal<string> =  signal<string>(\"\");\r\n  private searchBarSubscription: Subscription | null = null;\r\n  private destroy$ = new Subject<void>();\r\n  public destroyed: boolean = false\r\n\r\n  ngAfterViewInit(): void {\r\n    const observable = this.searchBarControl.valueChanges.pipe(\r\n      takeUntil(this.destroy$),\r\n      distinctUntilChanged(),\r\n      debounceTime(200),\r\n    )\r\n    //OnSearchChange\r\n    this.searchBarSubscription = observable.subscribe(async (value: string) => { \r\n      this.selectedIndex = undefined;\r\n      this.searchValue.set(value); \r\n    });\r\n  }\r\n\r\n  ClearSearchBar(): void {\r\n    this.destroyed = true;\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n    if (this.searchBarSubscription) { this.searchBarSubscription.unsubscribe(); }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.ClearSearchBar();\r\n  }\r\n\r\n  override writeValue(obj: T | T[]): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    this.UpdateSelected();\r\n  }\r\n  \r\n  override SetValue(obj: T | T[]): void {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    this.UpdateSelected();\r\n    this.propagateChange(this.value());\r\n    if(!this.configuration().multiple){\r\n      this.Dismiss();\r\n    }\r\n  }\r\n  Clear(event: MouseEvent): void {\r\n    event.stopPropagation();\r\n    if(this.configuration().multiple){\r\n      this.SetValue([]);\r\n    }\r\n    else {\r\n      this.SetValue(undefined);\r\n    }\r\n  }\r\n  public Select(itemValue: ItemValue<T>): void{\r\n    const item = itemValue.value;\r\n    if(this.configuration().multiple){\r\n      const currentValue = this.value();\r\n      if(Array.isArray(currentValue)){\r\n        const index = currentValue.findIndex(p => p == item);\r\n        if(index > -1){\r\n          currentValue.splice(index, 1);\r\n        } else {\r\n          currentValue.push(item);\r\n        }\r\n        this.SetValue([...currentValue]);\r\n      } else {\r\n        this.SetValue([item]);\r\n      }\r\n    } else {\r\n      this.SetValue(item);\r\n      this.Dismiss();\r\n    }\r\n  }\r\n\r\n  //#region [ Popover / Modal ]\r\n  @ViewChild('selectContent') selectContent: ElementRef<HTMLDivElement>;\r\n  \r\n  @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n  @ViewChild(IonModal)   modal: IonModal;\r\n  @ViewChild(IonAlert)   alert: IonAlert;\r\n  @ViewChild(IonActionSheet) actionSheet: IonActionSheet;\r\n\r\n  floatingVisible: boolean = false;\r\n  renderInterface: boolean = false;\r\n  @ViewChild('scrollContent') ionContent: IonContent;\r\n  async Present(event: Event): Promise<void> {\r\n    this.renderInterface = true;\r\n    this.cdr.markForCheck();\r\n    await Timeout(0); //Espera a renderização da interface\r\n    if(this.interface() == SelectInterfaces.Modal){\r\n      await this.modal.present();\r\n      this.inputSearchBar.nativeElement.focus();\r\n    } else\r\n    if(this.interface() == SelectInterfaces.Popover){\r\n      await this.popover.present(event);\r\n      this.inputSearchBar.nativeElement.focus();\r\n    } else\r\n    if(this.interface() == SelectInterfaces.ActionSheet){\r\n      await this.actionSheet.present();\r\n      this.inputSearchBar?.nativeElement?.focus();\r\n    }\r\n  }\r\n\r\n  async Dismiss(): Promise<void> {\r\n    if(this.modal) {\r\n      await this.modal.dismiss();\r\n    }\r\n    if(this.popover) {\r\n      await this.popover.dismiss();\r\n    }\r\n    this.selectedIndex = undefined;\r\n    if(this.inputSelectLabel?.nativeElement){ \r\n      this.inputSelectLabel.nativeElement.focus();\r\n    }\r\n    if(this.configuration().useInfiniteScroll){\r\n      this.infiniteScrollPage.set(1);\r\n    }\r\n  }\r\n  OnDismiss(): void {\r\n    this.renderInterface = false;\r\n    this.floatingVisible = false; \r\n    this.searchValue.set('');\r\n    this.searchBarControl.setValue('');\r\n  }\r\n  OnPresent(): void {\r\n    this.floatingVisible = true;\r\n  }\r\n\r\n  isArray(obj : any ) {\r\n   return Array.isArray(obj)\r\n  }\r\n}\r\n\r\nclass ItemValue<T>{\r\n  label: string;\r\n  value: T;\r\n  selected: boolean = false;\r\n  item    : any; \r\n  disabled: boolean = false;\r\n}\r\n\r\nfunction isPortrait() {\r\n  return window.innerHeight > window.innerWidth;\r\n}","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event);\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.manual-focus]=\"floatingVisible\"\r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"loading() || loadingFromLoader || disabled()\"\r\n  [class.loading]=\"loading() || loadingFromLoader\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  \r\n  <div class=\"w-full truncate outline-none\" [class.pr-7]=\"!configuration().clearable\" [class.pr-10]=\"configuration().clearable\"  #inputSelectLabel tabindex=\"0\">\r\n    @if (!configuration().multiple && currentLabel){\r\n      @if(labelTemplate){\r\n        <ng-container \r\n          [ngTemplateOutlet]=\"labelTemplate\"\r\n          [ngTemplateOutletContext]=\"{ $implicit: currentLabel, item: currentItems.item }\">\r\n        </ng-container>\r\n      }\r\n      @else {\r\n        <span class=\"input-select-label\"> {{currentLabel}} </span>\r\n      }\r\n    }\r\n    @else if (configuration().multiple && isArray(currentItems) && $any(currentItems).length) {\r\n      <div class=\"w-full min-h-6 overflow-hidden relative\">\r\n        <div class=\"absolute left-0 top-0 overflow-x-auto flex gap-2 size-full mask-x/2\">\r\n          @for (item of currentItems; track $index) {\r\n            <div class=\"translucid-border rounded-lg flex items-center justify-center gap-2 pl-2\">\r\n              @if(labelTemplate){\r\n                <ng-container \r\n                  [ngTemplateOutlet]=\"labelTemplate\"\r\n                  [ngTemplateOutletContext]=\"{ $implicit: item.label, item: item.item }\">\r\n                </ng-container>\r\n              }\r\n              @else {\r\n                <span class=\"input-select-label\"> {{item.label}} </span>\r\n              }\r\n            \r\n              <div class=\"h-full aspect-square flex items-center justify-center cursor-pointer\" (click)=\"Select(item); $event.stopPropagation()\">\r\n                <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n              </div>\r\n              <!-- <ion-button class=\"m-0 h-full\" (click)=\"Select(item.value); $event.stopPropagation()\" color=\"medium\" size=\"small\" fill=\"outline\" style=\"--border-radius: .5rem\">\r\n                <ion-icon name=\"close\" color=\"danger\" slot=\"icon-only\"></ion-icon>\r\n              </ion-button> -->\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>\r\n    }\r\n    @else {\r\n      @if(placeholderTemplate){\r\n        <ng-container \r\n          [ngTemplateOutlet]=\"placeholderTemplate\"\r\n          [ngTemplateOutletContext]=\"{ $implicit: this.configuration().placeholder, placeholder: this.configuration().placeholder }\">\r\n        </ng-container>\r\n      }\r\n      @else {\r\n        <span class=\"input-select-label !text-medium\"> {{this.configuration().placeholder}} </span>\r\n      }\r\n    }\r\n  </div>\r\n\r\n  <div class=\"absolute bottom-1 flex flex-col items-center justify-center size-7\" [class.right-1]=\"!configuration().clearable\" [class.right-8]=\"configuration().clearable\">\r\n    <ion-icon class=\"-mb-0.5\" name=\"chevron-up\"></ion-icon>\r\n    <ion-icon class=\"-mt-0.5\" name=\"chevron-down\"></ion-icon>\r\n  </div>\r\n  @if(configuration().clearable){\r\n    <ion-button class=\"absolute right-1 bottom-1\" (click)=\"Clear($event)\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n      <ion-icon name=\"close\" slot=\"icon-only\"></ion-icon>\r\n    </ion-button>\r\n  } \r\n\r\n  <div class=\"loading-container\" [class.loading]=\"loading() || loadingFromLoader\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n  <div class=\"error-container\" (click)=\"configuration().loader.Refresh()\" [class.active]=\"configuration().loader.error && !loadingFromLoader\">\r\n    <ion-icon class=\"text-xl\" color=\"danger\" name=\"refresh-circle\"></ion-icon>\r\n  </div>\r\n</div>\r\n\r\n@if(!disabled() && renderInterface){\r\n  @switch (interface()) {\r\n    @case (SelectInterfaces.Popover) {\r\n      <sion-popover \r\n          #popover \r\n          [width]=\"inputContainer.offsetWidth + 'px'\" \r\n          (onWillPresent)=\"OnPresent()\" \r\n          (onDidDismiss)=\"OnDismiss()\" \r\n          [anchor]=\"inputContainer\" \r\n          [placement]=\"configuration().popoverConfiguration.placement\" \r\n          [flip]=\"configuration().popoverConfiguration.flip\"\r\n        >\r\n        <ng-container [ngTemplateOutlet]=\"selectContentTemplate\"></ng-container>\r\n      </sion-popover>\r\n    }\r\n    @case (SelectInterfaces.Modal) {\r\n      <ion-modal #modal (ionModalWillPresent)=\"OnPresent()\" (didDismiss)=\"OnDismiss()\" [initialBreakpoint]=\"0.9\" [keepContentsMounted]=\"true\">\r\n        <ng-template>\r\n          <ion-header>\r\n            <ion-toolbar>\r\n              <ion-title class=\"text-center\">\r\n                {{label()}}\r\n              </ion-title>\r\n              <ion-buttons slot=\"end\">\r\n                <ion-button (click)=\"modal.dismiss()\">\r\n                  <ion-icon name=\"close-circle\"></ion-icon>\r\n                </ion-button>\r\n              </ion-buttons>\r\n            </ion-toolbar>\r\n          </ion-header>\r\n    \r\n          <ng-container [ngTemplateOutlet]=\"selectContentTemplate\" [ngTemplateOutletContext]=\"{ modal: true }\"></ng-container>\r\n        </ng-template>\r\n      </ion-modal>\r\n    }\r\n    @case (SelectInterfaces.ActionSheet) {\r\n      <ion-action-sheet #actionSheet trigger=\"open-action-sheet\" [header]=\"label()\" [buttons]=\"lstOptionsActionSheet\"></ion-action-sheet>\r\n    }\r\n  }\r\n}\r\n\r\n<ng-template #selectContentTemplate let-modal=\"modal\">\r\n  <div #selectContent class=\"select-content\" [class.!size-full]=\"modal\">\r\n    <div class=\"select-search-bar-container\">\r\n      <div class=\"select-search-bar-icon-container !border-r-0 border-primary/70 bg-primary/70 shrink-0\">\r\n        <ion-icon color=\"dark\" name=\"search\"></ion-icon>\r\n      </div>\r\n      <input #inputSearchBar tabindex=\"-1\" class=\"select-search-bar border-primary/70 !rounded-l-none\" [formControl]=\"searchBarControl\"/>\r\n    </div> \r\n    <ul class=\"select-item-list mask-y\" role=\"listbox\" [attr.aria-activedescendant]=\"'sion-is-' + selectedIndex\">\r\n      <ion-content #scrollContent class=\"size-full\" [scrollY]=\"true\">\r\n        @for (item of lstOptions; track item.value) { \r\n          <ng-container \r\n            [ngTemplateOutlet]=\"baseOptionTemplate\"\r\n            [ngTemplateOutletContext]=\"{ item: item, index: $index }\">\r\n          </ng-container>\r\n        }\r\n        @if(configuration().useInfiniteScroll){\r\n          <ion-infinite-scroll threshold=\"10px\" *ngIf=\"lstOptions.length && lstOptions.length != lstOptionsItemValue().length\" (ionInfinite)=\"AddPage($event)\">\r\n            <ion-infinite-scroll-content></ion-infinite-scroll-content>\r\n          </ion-infinite-scroll>\r\n        }\r\n      </ion-content>\r\n    </ul>\r\n    @if(hasAtivo()){\r\n      <div class=\"w-full text-xs flex items-center justify-end\">\r\n        <ion-checkbox [ngModel]=\"somenteAtivos()\" (ngModelChange)=\"somenteAtivos.set($event)\" class=\"scale-75\"> Somente ativos </ion-checkbox>\r\n      </div>\r\n    }\r\n  </div>\r\n</ng-template>\r\n\r\n<ng-template #baseOptionTemplate let-item=\"item\" let-index=\"index\">\r\n  <li [id]=\"'sion-is-' + index\" class=\"select-item\" [class.disabled]=\"item.disabled\" [attr.aria-selected]=\"index == selectedIndex\" (mouseenter)=\"selectedIndex = index\" (click)=\"Select(item)\">\r\n    <div class=\"select-item-checkmark-conteiner\">\r\n      @if(item.selected) {\r\n        <ion-icon class=\"select-item-checkmark\" color=\"primary\" name=\"checkmark\"></ion-icon>\r\n      }\r\n    </div>\r\n    @if (optionTemplate) {\r\n      <ng-container \r\n        [ngTemplateOutlet]=\"optionTemplate\"\r\n        [ngTemplateOutletContext]=\"{ item: item.item }\">\r\n      </ng-container>\r\n    }\r\n    @else {\r\n      <span class=\"select-item-label\"> {{item.label}} </span>\r\n    }\r\n  </li>\r\n</ng-template>","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { InputStringConfiguration } from './input-string.configuration';\r\n\r\n@Component({\r\n  selector: 'input-string',\r\n  templateUrl: './input-string.component.html',\r\n  styleUrls: ['./input-string.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputStringComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputStringComponent) },\r\n  ],\r\n})\r\nexport class InputStringComponent extends CustomInput<string> {\r\n  \r\n  configuration: InputSignal<InputStringConfiguration> = input<InputStringConfiguration>(new InputStringConfiguration());\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null = null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor() { super(); }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n}\r\n","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <input #input\r\n    [ngModel]=\"value()\" \r\n    [type]=\"configuration().type\" \r\n    (ngModelChange)=\"SetValue($event)\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    [maxlength]=\"configuration().maxlength\"\r\n    (blur)=\"blur.emit($event)\"\r\n  />\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, viewChildren } from '@angular/core';\r\n\r\nimport { TableField } from '../../../../classes/inputs/table-field';\r\nimport { InputType } from '../../../inputs/input-type';\r\nimport { Utils } from '../../../../services/utils.service';\r\n\r\nimport { InputDecimalConfiguration, InputCurrencyConfiguration, InputNumberConfiguration } from '../../../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../../../inputs/input-string/input-string.configuration';\r\nimport { InputSelectConfiguration } from '../../../inputs/input-select/input.select.configuration';\r\nimport { InputDateConfiguration } from '../../../inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../../../inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../../../inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from '../../../inputs/input-configuration';\r\n\r\nimport { ImplicitProperty } from '../../../../classes/comparison/properties/implicit-property';\r\nimport { DecimalProperty } from '../../../../classes/comparison/properties/decimal-property';\r\nimport { StringProperty } from '../../../../classes/comparison/properties/string-property';\r\nimport { BoolProperty } from '../../../../classes/comparison/properties/bool-property';\r\nimport { DateProperty } from '../../../../classes/comparison/properties/date-property';\r\n\r\nimport { Comparison } from '../../../../classes/comparison/comparison';\r\nimport { InputDateComponent } from '../../../inputs/input-date/input-date.component';\r\nimport { InputCpfCnpjConfiguration } from '../../../inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\nimport { InputCepConfiguration } from '../../../inputs/input-cep/input-cep.configuration';\r\nimport { ComparisonValueType } from '../../../../classes/comparison/comparison-value-type';\r\n\r\n\r\n@Component({\r\n  selector: 'th-filter',\r\n  templateUrl: './th-filter.component.html',\r\n  styleUrls: ['./th-filter.component.scss'],\r\n})\r\nexport class ThFilterComponent implements OnInit {\r\n\r\n  @Input() field : TableField \r\n\r\n  guid: string = Utils.GenerateGUID();\r\n  configuration: InputConfiguration;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    this.configuration = this.field.configuration;\r\n    \r\n    if(!this.configuration){\r\n      if([InputType.Date, InputType.DateTime, InputType.Time].includes(this.field.type)){ this.configuration = new InputDateConfiguration() } else\r\n      if(this.field.type == InputType.File    ){ this.configuration = new InputFileConfiguration()     }else\r\n      if(this.field.type == InputType.Number  ){ this.configuration = new InputNumberConfiguration()   }else\r\n      if(this.field.type == InputType.Decimal ){ this.configuration = new InputDecimalConfiguration()  }else\r\n      if(this.field.type == InputType.Currency){ this.configuration = new InputCurrencyConfiguration() }else\r\n      if(this.field.type == InputType.String  ){ this.configuration = new InputStringConfiguration()   }else\r\n      if(this.field.type == InputType.Select  ){ this.configuration = new InputSelectConfiguration()   }else\r\n      if(this.field.type == InputType.TextArea){ this.configuration = new InputStringConfiguration();  }else \r\n      if(this.field.type == InputType.Bool    ){ this.configuration = new InputBoolConfiguration();    } else\r\n      if(this.field.type == InputType.Cpf     ){ this.configuration = new InputCpfCnpjConfiguration(\"CPF\"); }  else\r\n      if(this.field.type == InputType.Cnpj    ){ this.configuration = new InputCpfCnpjConfiguration(\"CNPJ\"); }  else\r\n      if(this.field.type == InputType.CpfCnpj ){ this.configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\"); } else\r\n      if(this.field.type == InputType.Cep     ){ this.configuration = new InputCepConfiguration();  }\r\n    }\r\n\r\n    if(this.configuration instanceof InputSelectConfiguration){\r\n      this.configuration = new InputSelectConfiguration(\r\n        this.configuration.bindValue,\r\n        this.configuration.bindLabel,\r\n        true,\r\n        true,\r\n        this.configuration.loadFrom,\r\n        true,\r\n      );\r\n      (this.configuration as InputSelectConfiguration).popoverConfiguration.flip = false;\r\n    }\r\n\r\n    if(this.configuration instanceof InputDateConfiguration){\r\n      this.configuration = new InputDateConfiguration(true);\r\n    }\r\n\r\n    if(this.field.type == InputType.Bool){\r\n      if(this.field.index == \"ativo\"){\r\n        this.configuration = this.configuration = new InputSelectConfiguration('value', 'label', true, true, [\r\n          { label: 'Somente Ativos'    , value: true  },\r\n          { label: 'Somente Não Ativos', value: false },\r\n        ]);\r\n        this.model = true;\r\n      }\r\n      else{\r\n        this.configuration = new InputSelectConfiguration('value', 'label', true, false, [\r\n          { label: 'Sim', value: true  },\r\n          { label: 'Não', value: false },\r\n        ])\r\n      }\r\n    }\r\n  }\r\n\r\n  isFilterActive: boolean = false;\r\n\r\n  model: any | null = null;\r\n  modelMinimum: any | null = null;\r\n  modelMaximum: any | null = null;\r\n  @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n    Change(): void{\r\n      if(((typeof(this.model) == 'string' && !this.model) || \r\n           this.model == null || \r\n           (Array.isArray(this.model) && this.model.length == 0)) && \r\n        !this.modelMinimum && !this.modelMaximum)\r\n      {\r\n        this.SetInactive();\r\n        return;\r\n      }\r\n\r\n      if([InputType.Currency, InputType.Decimal, InputType.Number].includes(this.field.type)){\r\n        var Comparison: Comparison[] = [];\r\n        if(this.modelMinimum){\r\n          var Bigger  = new DecimalProperty(this.field.index).GreaterThanOrEqual(this.modelMinimum);\r\n          Comparison = [Bigger];\r\n        }\r\n        if(this.modelMaximum){\r\n          var Smaller = new DecimalProperty(this.field.index).LessThanOrEqual(this.modelMaximum);\r\n          if(Comparison.length){ Comparison.push(Smaller); } \r\n          else                 { Comparison = [Smaller]; }\r\n        }\r\n\r\n        this.field.filter = Comparison;\r\n        this.isFilterActive = true;\r\n        this.changeEmitter.emit();\r\n        return;\r\n      }else\r\n      if([InputType.String, InputType.TextArea, InputType.Cep, InputType.Cpf, InputType.Cnpj, InputType.CpfCnpj].includes(this.field.type)){\r\n        this.field.filter   = [new StringProperty(this.field.index).IsContainedIn(this.model)];\r\n        this.isFilterActive = true;\r\n        this.changeEmitter.emit();\r\n        return;\r\n      }else\r\n      if(this.field.type == InputType.Select){\r\n        this.field.filter   = [new ImplicitProperty(this.field.index).IsContainedIn(this.model)];\r\n        this.isFilterActive = true;\r\n        this.changeEmitter.emit();\r\n        return;\r\n      }else\r\n      if(this.field.type == InputType.Bool){\r\n        this.field.filter   = [new BoolProperty(this.field.index).Equals(this.model)];\r\n        this.isFilterActive = true;\r\n        this.changeEmitter.emit();\r\n        return;\r\n      } else\r\n      if ([InputType.Date, InputType.DateTime].includes(this.field.type)) {\r\n\r\n    if (this.field.type == InputType.Date) {\r\n      if (this.modelMinimum) {\r\n        this.modelMinimum = this.modelMinimum.split(\"T\")[0] + \"T00:00:00\";\r\n      }\r\n      if (this.modelMaximum) {\r\n        this.modelMaximum = this.modelMaximum.split(\"T\")[0] + \"T23:59:59\";\r\n      }\r\n    }\r\n\r\n    const valueType = (this.field.type == InputType.DateTime)\r\n        ? ComparisonValueType.DateTime\r\n        : ComparisonValueType.Date;\r\n\r\n    let ComparisonList: Comparison[] = [];\r\n\r\n    if (this.modelMinimum) {\r\n      let c = new DateProperty(this.field.index)\r\n                  .GreaterThanOrEqual(this.modelMinimum);\r\n\r\n      c.valueType = valueType;  \r\n      ComparisonList = [c];\r\n    }\r\n\r\n    if (this.modelMaximum) {\r\n      let c = new DateProperty(this.field.index)\r\n                  .LessThanOrEqual(this.modelMaximum);\r\n\r\n      c.valueType = valueType;  \r\n      if (ComparisonList.length) {\r\n        ComparisonList.push(c);\r\n      } else {\r\n        ComparisonList = [c];\r\n      }\r\n    }\r\n\r\n    this.field.filter = ComparisonList;\r\n    this.isFilterActive = true;\r\n    this.changeEmitter.emit();\r\n    return;\r\n  }\r\n\r\n\r\n    this.changeEmitter.emit();\r\n  }\r\n\r\n  SetInactive(): void{\r\n    this.field.filter = null;\r\n    this.isFilterActive = false;\r\n    this.changeEmitter.emit();\r\n    return;\r\n  }\r\n\r\n  @ViewChildren(InputDateComponent) lstInputDate: QueryList<InputDateComponent>;\r\n  WillDismiss(): void{\r\n    console.log(this.lstInputDate.toArray());\r\n    this.lstInputDate.forEach(i => i.Dismiss());\r\n  }\r\n}\r\n","<div #anchor class=\"h-5 aspect-square flex items-center justify-center cursor-pointer\">\r\n  <ion-icon name=\"filter-circle\" (click)=\"popover.present($event)\" class=\"text-xl align-sub size-full\" [color]=\"isFilterActive ? 'secondary' : 'medium' \"></ion-icon>\r\n</div>\r\n\r\n<ion-popover class=\"th-filter\" fill=\"solid\" #popover triggerAction=\"click\" (onWillDismiss)=\"WillDismiss()\">\r\n  <ng-template>\r\n    <div class=\"w-72 flex flex-col gap-2 p-2\" >\r\n      @if(!['Select', 'Bool', 'String', 'TextArea', 'Cpf', 'Cnpj', 'CpfCnpj', 'Cep'].includes(field.type)){\r\n        <ion-label class=\"w-full flex items-center justify-center\">  Filtro - {{field.header}} </ion-label>\r\n      }\r\n      @switch (field.type) {\r\n        @case ('String') {\r\n          <input-string [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" (blur)=\"Change()\"></input-string>\r\n        }\r\n        @case ('Number') {\r\n          <div class=\"grid grid-cols-1 gap-2\">\r\n            <input-number (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-number>\r\n            <input-number (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-number>\r\n          </div>\r\n        }\r\n        @case ('Decimal') {\r\n          <div class=\"grid grid-cols-1 gap-2\">\r\n            <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-decimal>\r\n            <input-decimal (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-decimal>\r\n          </div>\r\n        }\r\n        @case ('Currency') {\r\n          <div class=\"grid grid-cols-1 gap-2\">\r\n            <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Valor Mínimo\" [configuration]=\"field.configuration\"></input-currency>\r\n            <input-currency (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Valor Maximo\" [configuration]=\"field.configuration\"></input-currency>\r\n          </div>\r\n        }\r\n        @case ('Select') {\r\n          <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" [configuration]=\"configuration\"></input-select>\r\n        }\r\n        @case ('TextArea') {\r\n          <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-string>\r\n        }\r\n        @case ('Bool') {\r\n          <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\" placeholder=\"\" [configuration]=\"configuration\"></input-select>\r\n        }\r\n        @case ('Date') {\r\n          <div class=\"size-full grid grid-cols-1 gap-2\">\r\n            <input-date (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data Mínima\" [configuration]=\"configuration\"></input-date>\r\n            <input-date (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date>\r\n          </div>\r\n        }\r\n        @case ('DateTime') {\r\n          <div class=\"grid grid-cols-1 gap-2\">\r\n            <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMinimum\" label=\"Data Mínima\" [configuration]=\"configuration\"></input-date-time>\r\n            <input-date-time (change)=\"Change()\" [(ngModel)]=\"modelMaximum\" label=\"Data Maxima\" [configuration]=\"configuration\"></input-date-time>\r\n          </div>\r\n        }\r\n        @case(\"Cep\") {\r\n          <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cep>\r\n        }\r\n        @case ('Cpf') {\r\n          <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cpf>\r\n        }\r\n        @case ('Cnpj') {\r\n          <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cnpj>\r\n        }\r\n        @case ('CpfCnpj') {\r\n          <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" label=\"Filtro - {{field.header}}\"></input-cpf-cnpj>\r\n        }\r\n      }\r\n    </div>\r\n  </ng-template>\r\n</ion-popover>\r\n","import { formatNumber } from '@angular/common';\r\nimport { Component, computed, effect, Input, input, InputSignal, model, ModelSignal, OnInit, output, OutputEmitterRef, OutputRef, Signal, TemplateRef } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { InputDecimalConfiguration } from '../../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputSelectConfiguration } from '../../inputs/input-select/input.select.configuration';\r\nimport { FormatTelefoneCelular } from '../../inputs/input-telefone/input-telefone.component';\r\nimport { StorageService } from '../../../services/web/storage.service';\r\nimport { FormatCpfCnpj } from '../../inputs/input-cpf-cnpj/input-cpf-cnpj.component';\r\nimport { HttpService } from '../../../services/web/http.service'\r\nimport { TableField } from '../../../classes/inputs/table-field';\r\nimport { Comparison, CompileLstTableField } from '../../../classes/comparison/comparison';\r\nimport { FormatCep } from '../../inputs/input-cep/input-cep.component';\r\nimport { InputType } from '../../inputs/input-type';\r\nimport { Utils } from '../../../services/utils.service';\r\n\r\ntype CSSStyleStringGenerator = (index: string, object: any) => string;\r\n\r\n@Component({\r\n  selector: 'default-table',\r\n  templateUrl: './default-table.component.html',\r\n  styleUrls: ['./default-table.component.scss'],\r\n})\r\nexport class DefaultTableComponent<Service extends HttpService, T = any> implements OnInit {\r\n\r\n  @Input() acoesTemplate: TemplateRef<any>;\r\n  /** Template de ações, deve ser um elemento ```<ng-template>``` */\r\n  // acoesTemplate: InputSignal<TemplateRef<any>> = input<TemplateRef<any>>();\r\n\r\n  /** Service a ser utilizado na listagem */\r\n  service: InputSignal<Service> = input<Service>();\r\n\r\n  total: ModelSignal<number> = model<number>(0);\r\n\r\n  /** Número de items máximo (usando two way data binding) */\r\n  limit: ModelSignal<number> = model<number>();\r\n\r\n  /** Valor da pagina, setado = 1 quando troca-se o valor de limite de paginas (usando two way data binding) */\r\n  page: ModelSignal<number> = model<number>(1);\r\n\r\n  /** Propriedade de ordenação (usando two way data binding) */\r\n  orderByProperty: ModelSignal<string | null> = model<string | null>(null);\r\n    \r\n  /** Propriedade de ordenação\r\n   * Se = true  Ordenará de menor ao maior \r\n   * Se = false Ordenará de maior ao menor (usando two way data binding) */\r\n  ascending: ModelSignal<boolean> = model<boolean>(true);\r\n\r\n  /** Filtros (usando two way data binding) */ \r\n  filter: ModelSignal<Comparison[]> = model<Comparison[]>([]);\r\n\r\n  /** Evento emitido quando um dos dados é ativado. Emite o id do dado */  \r\n  ativar : OutputEmitterRef<number> = output<number>();\r\n  refresh: OutputEmitterRef<void> = output<void>();\r\n\r\n\r\n  loading: ModelSignal<boolean> = model<boolean>(false);\r\n\r\n  /** Lista de dados a ser exibidos */\r\n  items: ModelSignal<T[]> = model<T[]>([]);\r\n\r\n  /** Lista de campos a ser exibidos */\r\n  lstTableFields: ModelSignal<TableField[]> = model<TableField[]>([]);\r\n  lstTableFieldsAvailable: Signal<AvailableTableField[]> = computed<AvailableTableField[]>(() => { \r\n    return this.lstTableFields().filter(p => !p.hidden).map(tf => {\r\n      return new AvailableTableField(\r\n        tf, \r\n        this.ascending() && this.orderByProperty() == tf.index, \r\n        !this.ascending() && this.orderByProperty() == tf.index\r\n      );\r\n    });\r\n  });\r\n\r\n  /** Remove os filtros no cabeçalho da tabela  */\r\n  noFilters: InputSignal<boolean> = input<boolean>(false);\r\n\r\n  /** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro  */\r\n  columnClass: InputSignal<CSSStyleStringGenerator | null> = input<CSSStyleStringGenerator | null>(null);\r\n\r\n  /** Aplica style de CSS na coluna de acirco com o retorno da função passada como parametro  */\r\n  columnStyle: InputSignal<CSSStyleStringGenerator | null> = input<CSSStyleStringGenerator | null>(null);\r\n\r\n  /** Remove a paginação da listagem */\r\n  noPagination: InputSignal<boolean> = input<boolean>(false);\r\n\r\n  /** Caminho de redirecionamento do item */\r\n  itemPath: InputSignal<string> = input<string>('view/:id');\r\n  itemClick: OutputEmitterRef<{item: T, field: TableField}> = output<{item: T, field: TableField}>();\r\n\r\n  InputType = InputType;\r\n\r\n  constructor(\r\n    public storageService : StorageService,\r\n    private activatedRoute: ActivatedRoute,\r\n    private router        : Router,\r\n  ) { \r\n    effect(() => {\r\n      for (const tf of this.lstTableFields().filter(p => p.type == InputType.Select)) {\r\n        (tf.configuration as InputSelectConfiguration).loader.Refresh().then(() => this.SetLstRows());\r\n      }\r\n      this.SetLstRows();\r\n    });\r\n  }\r\n\r\nRedirect(field: TableField | undefined, item: T): void {\r\n  if (field == null) {\r\n    return;\r\n  }\r\n  this.itemClick.emit({ item, field });\r\n  if (field.index == 'ativo') {\r\n    return;\r\n  }\r\n  if (field.type == 'File') {\r\n    return;\r\n  }\r\n  if (this.itemPath()) {\r\n    const id = item['id'];\r\n    const path = this.itemPath().replace(\":id\", id.toString());\r\n    this.router.navigate([`./${path}`], { relativeTo: this.activatedRoute })\r\n  }\r\n}\r\n\r\n  SetLstRows(){ \r\n    this.lstRows = this.items().map(item => {\r\n      return new DefaultTableRow<T>(\r\n        item, \r\n        item['id'],\r\n        this.GetColumns(item),\r\n        '',\r\n        '',\r\n      );\r\n    });\r\n  }\r\n  \r\n  lstRows: DefaultTableRow<T>[] = []; \r\n\r\n  GetColumns(item: T): DefaultTableColumn[] {\r\n    return this.lstTableFields().filter(p => !p.hidden).map(tf => {\r\n      const value = item[tf.index];\r\n      const column = new DefaultTableColumn(value, tf);\r\n      column.class = this.columnClass() ? this.columnClass()(tf.index, item) : '';\r\n      column.style = this.columnStyle() ? this.columnStyle()(tf.index, item) : '';\r\n      \r\n      if(!value){ \r\n        column.label = '-' \r\n        return column;\r\n      }\r\n      \r\n      if(tf.type == InputType.Bool){\r\n        column.label = \"<bool>\"\r\n      } else\r\n      if(tf.type == InputType.Cep){\r\n        column.label = FormatCep(value);\r\n      } else\r\n      if(tf.type == InputType.Color){\r\n        column.label = value;\r\n      } else\r\n      if([InputType.Cpf, InputType.Cnpj, InputType.CpfCnpj].includes(tf.type)){\r\n        column.label = FormatCpfCnpj(value);\r\n      } else\r\n      if(tf.type == InputType.DateTime){\r\n        column.class += ' font-mono';\r\n        column.label = Utils.DateISOToDDMMYYYYHHMM(value);\r\n      } else\r\n      if(tf.type == InputType.Date){\r\n        column.class += ' font-mono';\r\n        column.label = Utils.DateISOToDDMMYYYY(value);\r\n      } else\r\n      if(tf.type == InputType.Time){\r\n        column.class += ' font-mono';\r\n        column.label = value;\r\n      } else\r\n      if([InputType.Decimal, InputType.Decimal, InputType.Currency, InputType.Number].includes(tf.type)){\r\n        const configuration: InputDecimalConfiguration = tf.configuration;\r\n        column.label = [\r\n          configuration.prefix, \r\n          formatNumber(value as number, 'pt-BR', `1.${configuration.precision}-${configuration.precision}`),\r\n          configuration.sufix, \r\n        ].join(' ');\r\n      } else\r\n      if(tf.type == InputType.File){\r\n        column.label = '<file>';\r\n      } else\r\n      if(tf.type == InputType.Icon){\r\n        column.label = 'icon';\r\n      } else\r\n      if(tf.type == InputType.Select){\r\n        column.label = (tf.configuration as InputSelectConfiguration).loader.GetLabel(value);\r\n        column.loading = !(tf.configuration as InputSelectConfiguration).loader.isLoaded;\r\n      } else\r\n      if([InputType.String, InputType.TextArea].includes(tf.type)){\r\n        column.label = value\r\n      } else\r\n      if([InputType.Telefone, InputType.Celular, InputType.TelefoneCelular].includes(tf.type)){\r\n        column.label = FormatTelefoneCelular(value);\r\n      }\r\n\r\n      return column;\r\n    });\r\n  }\r\n\r\n  ngOnInit() { this.SetLstRows(); }\r\n\r\n  SwitchOrder(tf: TableField): void{\r\n    if(this.orderByProperty() != tf.index){\r\n      this.orderByProperty.set(tf.index);\r\n      this.ascending.set(true);\r\n    } else \r\n    if(this.ascending()){\r\n      this.ascending.set(false);\r\n    } else{ \r\n      this.orderByProperty.set(null); \r\n    }\r\n    this.refresh.emit();\r\n  }\r\n\r\n  ChangeFilter(): void{\r\n    this.filter.set(CompileLstTableField(this.lstTableFields()));\r\n    this.page.set(1);\r\n    this.refresh.emit();\r\n  }\r\n\r\n  Ativar(id: number): void{\r\n    this.ativar.emit(id);\r\n  }\r\n}\r\n\r\nclass DefaultTableRow<T>{\r\n  constructor(\r\n    public item: T,\r\n    public id: number | undefined,\r\n    public lstColumns: DefaultTableColumn[],\r\n    public acoesClass: string = '',\r\n    public acoesStyle: string = '',\r\n  ){}\r\n} \r\n\r\nclass DefaultTableColumn{\r\n  public label: string | null\r\n  public loading: boolean = false;\r\n  public class: string = '';\r\n  public style: string = '';\r\n  constructor(\r\n    public value: any = null,\r\n    public tf: TableField,\r\n  ){}\r\n}\r\n\r\nclass AvailableTableField{\r\n  constructor(\r\n    public tf: TableField,\r\n    public ascending: boolean,\r\n    public descending: boolean,\r\n  ){}\r\n}","<div class=\"size-full rounded-xl flex flex-col overflow-hidden relative\">\r\n    <loading [type]=\"3\" [loading]=\"loading()\"></loading>\r\n    <content-block text=\"Sem Dados\" [value]=\"!(items.length != 0 || loading)\"></content-block>\r\n\r\n     <div class=\"size-full shrink relative overflow-y-auto\">\r\n        <table>\r\n            <thead>\r\n                <tr>\r\n                    @if(acoesTemplate){\r\n                        <th scope=\"col\" class=\"p-2\"> \r\n                            Ações \r\n                        </th>\r\n                    }\r\n\r\n                    @for (tfa of lstTableFieldsAvailable(); track tfa.tf.index) {\r\n                        <th scope=\"col\" class=\"p-2\"> \r\n                            <div class=\"flex gap-2 items-center justify-start th\">\r\n                                @if(!noFilters()){\r\n                                    <th-filter class=\"!text-base\" style=\"text-transform: none !important\" \r\n                                    *ngIf=\"((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters())\"\r\n                                        [field]=\"tfa.tf\"\r\n                                        (change)=\"ChangeFilter()\"\r\n                                    ></th-filter>\r\n                                }\r\n\r\n                                {{tfa.tf.header}} \r\n\r\n                                @if((tfa.tf.type != InputType.File || (tfa.tf.filter && tfa.tf.disabledChange())) && !noFilters()){\r\n                                    <a [ngClass]=\"{ 'bg-light/10 !opacity-100': tfa.ascending || tfa.descending }\"\r\n                                        class=\"order h-4 w-5 relative cursor-pointer rounded-lg opacity-0 default-transition\" \r\n                                        (click)=\"SwitchOrder(tfa.tf)\"\r\n                                    >\r\n                                        <ion-icon \r\n                                            [class.text-primary]=\"tfa.ascending\"\r\n                                            class=\"absolute left-0 top-0\" \r\n                                            name=\"arrow-up\"\r\n                                        ></ion-icon> \r\n                                        <ion-icon \r\n                                            [class.text-primary]=\"tfa.descending\"\r\n                                            class=\"absolute right-0 bottom-0\" \r\n                                            name=\"arrow-down\"\r\n                                        ></ion-icon> \r\n                                    </a>\r\n                                }\r\n                            </div>\r\n                        </th>\r\n                    }\r\n                </tr>\r\n            </thead>\r\n            <tbody>\r\n                @for (row of lstRows; track row.id || $index) {\r\n                    <tr [hidden]=\"loading()\">\r\n                        @if(acoesTemplate){\r\n                            <td (click)=\"Redirect(undefined, row.item)\" class=\"whitespace-nowrap py-1 px-3 {{row.acoesClass}}\" [style]=\"row.acoesStyle\" >\r\n                                <ng-container *ngTemplateOutlet=\"acoesTemplate; context: { $implicit: row.item }\"></ng-container>\r\n                            </td>\r\n                        }\r\n\r\n                        @for (col of row.lstColumns; track col.tf.index) {\r\n                            <td class=\"{{col.class}} p-2 cursor-pointer\" (click)=\"Redirect(col.tf, row.item)\" [style]=\"'white-space: var(--ion-table-row-wrap);' + col.style\">\r\n                                @if(col.tf.index == 'ativo') {\r\n                                    <div class=\"size-full flex items-center justify-start\" [routerLink]=\"null\">\r\n                                        <ion-toggle [checked]=\"col.value\" [disabled]=\"loading()\" (ionChange)=\"Ativar(row.id)\" ></ion-toggle>\r\n                                    </div>\r\n                                }\r\n                                @else if (col.tf.type == InputType.Bool){\r\n                                    <div class=\"h-full flex items-center justify-start\">\r\n                                        @if(col.tf.configuration.type == 'toggle') {\r\n                                            <ion-toggle [checked]=\"col.value\" [disabled]=\"true\"></ion-toggle>\r\n                                        }\r\n                                        @else {\r\n                                            <ion-checkbox [checked]=\"col.value\" [disabled]=\"true\"></ion-checkbox>\r\n                                        }\r\n                                    </div>\r\n                                }\r\n                                @else if (col.tf.type == InputType.File) {\r\n                                    <download-button [(ngModel)]=\"col.value\" [configuration]=\"col.tf.configuration\"></download-button>\r\n                                }\r\n                                @else if (col.loading){\r\n                                    <ion-spinner name=\"dots\"></ion-spinner>\r\n                                } @else {\r\n                                    <span [ngClass]=\"col.class\">{{ col.label }}</span>\r\n                                }\r\n                            </td>\r\n                        }\r\n                    </tr>\r\n                    <ng-content select=\"[slot=item-end]\"></ng-content>\r\n                }\r\n            </tbody>\r\n        </table>\r\n     </div>\r\n     @if(!noPagination()){\r\n        <div class=\"shrink-0 z-[100]\">\r\n            <default-pagination\r\n                [page]=\"page()\"\r\n                (pageChange)=\"page.set($event); refresh.emit()\"\r\n                [total]=\"total()\"\r\n                [limit]=\"limit()\"\r\n                [length]=\"items().length\"\r\n                [loading]=\"loading()\"\r\n            ></default-pagination>\r\n        </div>\r\n    }\r\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, output, Output, OutputEmitterRef, OutputRef, TemplateRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { HttpService } from '../../../services/web/http.service';\r\nimport { List } from './list';\r\nimport { TableField } from '../../../classes/inputs/table-field';\r\n\r\n/** Componente de listagem padrão\r\n * Tipo Generic deve ser um service HttpService \r\n * @link https://sapphire-ion-framework.gitbook.io/framework/componentes-default/default-list\r\n */\r\n@Component({\r\n  selector: 'default-list',\r\n  templateUrl: './default-list.component.html',\r\n  styleUrls: ['./default-list.component.scss'],\r\n})\r\nexport class DefaultListComponent<T extends HttpService> extends List<T> implements OnInit {\r\n\r\n  //#region [@Table]\r\n  /** Remove o botão NOVO da listagem */\r\n  @Input() noNew: boolean = false;\r\n  /** Remove a paginação da listagem */\r\n  @Input() noPage: boolean = false;\r\n  /** Remove o elemento de pesquisa da listagem */\r\n  @Input() noSearch: boolean = false;\r\n  \r\n  /** Aplica classes de CSS na coluna de acirdo com o retorno da função passada como parametro  */\r\n  @Input() columnClass: ((index:string, object: any) => string) | null = null;\r\n  /** Aplica style de CSS na coluna de acirdo com o retorno da função passada como parametro  */\r\n  @Input() columnStyle: ((index:string, object: any) => string) | null = null;\r\n  \r\n  /** Desabilita o redirect de novo em um botão para ser utilizado com [onNewEmitter] */\r\n  @Input() overrideNew: boolean = false;\r\n  /** Evento quando o botão NOVO é clicado */\r\n  @Output('onNew') onNewEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n  /** Template de ações, é enviado com #tmpAcoes, deve ser um elemento ```<ng-template>``` */\r\n  @ContentChild('tmpAcoes', { static: false }) acoesTemplate!: TemplateRef<any>;\r\n  //#endregion [@Table]\r\n\r\n  /** Remove a paginação da listagem */\r\n  @Input() noPagination : boolean = false;\r\n  /** Remove os breadcrumbs da listagem */\r\n  @Input() noBreadcrumbs: boolean = false;\r\n  /** Caminho de redirecionamento do item */\r\n  @Input() itemPath: string | null = \"view/:id\"\r\n\r\n  itemClick: OutputEmitterRef<{item: any, field: TableField}> = output<{item: any, field: TableField}>();\r\n\r\n  constructor(\r\n    public override elementRef    : ElementRef,\r\n    public override activatedRoute: ActivatedRoute,\r\n    public override genericService: GenericService\r\n  ) { super(); }\r\n  \r\n  public async Ativar(id: number): Promise<void>{\r\n    if(!(this.service instanceof HttpServiceAtivo)){ return; }\r\n    this.loading = true;\r\n    try{\r\n      await firstValueFrom(this.service.Ativar(id));\r\n      this.Refresh();\r\n    }catch{\r\n      this.loading = false;\r\n    }\r\n  }\r\n\r\n  override async ngOnInit() {\r\n    await super.ngOnInit();    \r\n  }\r\n}","<ion-content class=\"bg-transparent\">\r\n  <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\">\r\n    @if (!noBreadcrumbs) {\r\n      <ion-breadcrumbs>\r\n        <ion-breadcrumb [routerLink]=\"[service ? service.route : '']\" [replaceUrl]=\"true\">{{service.title}}</ion-breadcrumb>\r\n      </ion-breadcrumbs>\r\n    }\r\n    <ion-card>\r\n      <ion-card-header [ngClass]=\"{'!px-0 !pb-0': noNew && noPage && noSearch}\">\r\n        <header-list \r\n          [(limit)]=\"frm.limit\"\r\n          [(search)]=\"frm.search\"        \r\n          [(page)]=\"frm.page\"        \r\n          [loading]=\"loading\"  \r\n          (refresh)=\"Refresh()\"\r\n          [noNew]=\"noNew\"\r\n          [noPage]=\"noPage\"\r\n          [noSearch]=\"noSearch\"\r\n          [overrideNew]=\"overrideNew\"\r\n          (onNew)=\"onNewEmitter.emit()\"\r\n        > \r\n          <ng-content slot=\"start\" select=\"[slot=header-start]\"></ng-content>\r\n          <ng-content slot=\"end\" select=\"[slot=header-end]\"></ng-content>\r\n        </header-list>\r\n      </ion-card-header>\r\n      <ion-card-content>\r\n        <ion-refresher slot=\"fixed\" class=\"z-20\" (ionRefresh)=\"Refresh($event)\">\r\n          <ion-refresher-content></ion-refresher-content>\r\n        </ion-refresher>\r\n        <div class=\"size-full ion-content-scroll-host\">\r\n          @if(frm){\r\n            <default-table \r\n              class=\"block size-full relative\" \r\n              [ngClass]=\"{ 'translate-y-0' : !loading }\"\r\n              [loading]=\"loading\"\r\n              [items]=\"lstDados\" \r\n              [total]=\"total\"\r\n              [(limit)]=\"frm.limit\"\r\n              [(page)]=\"frm.page\"\r\n              [(ascending)]=\"frm.ascending\"\r\n              [(orderByProperty)]=\"frm.orderByProperty\"\r\n              [(filter)]=\"frm.filter\"\r\n              (itemClick)=\"itemClick.emit($event)\"\r\n              [itemPath]=\"itemPath\"\r\n              [columnClass]=\"columnClass\"\r\n              [columnStyle]=\"columnStyle\"\r\n              [service]=\"service\"\r\n              [acoesTemplate]=\"acoesTemplate\"\r\n              (refresh)=\"Refresh();\"\r\n              (ativar)=\"Ativar($event)\"\r\n              [lstTableFields]=\"lstTableFields\"\r\n              [noPagination]=\"noPagination\"\r\n            >\r\n            </default-table>\r\n          }\r\n        </div>\r\n      </ion-card-content>\r\n    </ion-card>\r\n  </div>\r\n</ion-content>","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport { AlertButton } from \"@ionic/angular\";\r\n\r\nimport { DefaultListComponent } from \"./default-list.component\";\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { HttpService } from \"../../../services/web/http.service\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\n\r\n/** Componente padrão para a invocação do DefaultList */\r\n@Component({ template: '', styles: '' })\r\nexport abstract class AbstractList<T extends HttpService> implements OnInit {\r\n  \r\n  protected service: T\r\n  protected genericService: GenericService\r\n  protected activatedRoute: ActivatedRoute;\r\n\r\n  public id: number;\r\n  \r\n  ngOnInit(): void { \r\n    this.LoadId();\r\n    if(this.activatedRoute){ this.LoadId(); }\r\n  }\r\n\r\n  /** Busca o id da tabela se estiver configurado */\r\n  async LoadId(){\r\n    if(this.activatedRoute){\r\n      const data: RouteData = (await firstValueFrom(this.activatedRoute.data)) as RouteData;\r\n      if(data && data.idPreloaderConfiguration){\r\n        this.id = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n      }\r\n    }\r\n  }\r\n\r\n  @ViewChild('defList') DefaultList: DefaultListComponent<T>;\r\n  ionViewWillEnter(): void{\r\n    if(this.DefaultList){\r\n      this.DefaultList.Refresh();\r\n    }\r\n  }\r\n  \r\n  Delete(id: number): void {\r\n    const buttons: AlertButton[] = [\r\n      { text: \"Cancelar\", role: 'cancel' },\r\n      { text: \"OK\"      , role: 'confirm', handler: (() => { \r\n          this.service.Delete(id).subscribe({ \r\n            next: (() => { this.DefaultList.Refresh(); this.genericService.PresentToastSuccess(\"Excluido com sucesso!\"); }) \r\n          }); \r\n        }) \r\n      }\r\n    ]\r\n\r\n    this.genericService.PresentAlert(\"Atenção!\", \"Tem certeza que deseja excluir o dado?\", buttons)\r\n  }\r\n}","import { Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class NavigationContextService {\r\n  private previousUrl: string | null = null;\r\n  private currentUrl: string | null = null;\r\n\r\n  constructor(private router: Router) {\r\n    this.currentUrl = this.router.url;\r\n\r\n    this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e: NavigationEnd) => {\r\n      const nextUrl = e.urlAfterRedirects;\r\n      const preserve = history.state?.__preserveBack == true;\r\n    \r\n      const currentBase = this.currentUrl ? this.getBaseRoute(this.currentUrl) : null;\r\n      const nextBase    = this.getBaseRoute(nextUrl);\r\n    \r\n      const nav = this.router.getCurrentNavigation();\r\n      const isBack = nav?.trigger == 'popstate';\r\n    \r\n      // Redirect técnico - ignora\r\n      if (preserve) {\r\n        this.currentUrl = nextUrl;\r\n        return;\r\n      }\r\n    \r\n      // Navegação interna da mesma view (Ex: Item <-> View Principal)\r\n      if (currentBase && currentBase == nextBase) {\r\n        // ajustes no histórico baseando-se estritamente na hierarquia.\r\n        \r\n        const cleanNext = nextUrl.split('?')[0].replace(/\\/$/, '');\r\n        const cleanBase = nextBase.replace(/\\/$/, '');\r\n\r\n        if (cleanNext == cleanBase) {\r\n          // voltou para a raiz da entidade\r\n          this.previousUrl = this.getListRoute(nextBase);\r\n        } else {\r\n          // voltou de um filho → pai REAL\r\n          this.previousUrl = this.getParentRoute(nextUrl);\r\n        }\r\n\r\n\r\n        this.currentUrl = nextUrl;\r\n        return;\r\n      }\r\n    \r\n      // Chegou numa view base VIA BACK (de outro módulo)\r\n      if (isBack) {\r\n        // Se voltou de fora (OS -> Obra), recalcula para garantir\r\n        const cleanNext = nextUrl.split('?')[0].replace(/\\/$/, '');\r\n        const cleanBase = nextBase.replace(/\\/$/, '');\r\n\r\n        if (cleanNext === cleanBase) {\r\n           this.previousUrl = this.getListRoute(nextBase);\r\n        } else {\r\n           this.previousUrl = nextBase;\r\n        }\r\n\r\n        this.currentUrl  = nextUrl;\r\n        return;\r\n      }\r\n    \r\n      // Navegação real (Entrando em um módulo novo ou avançando)\r\n      this.previousUrl = this.currentUrl;\r\n      this.currentUrl  = nextUrl;\r\n    });\r\n  }\r\n\r\n  private getBaseRoute(url: string): string {\r\n    const parts = url.split('/').filter(Boolean);\r\n    const base: string[] = [];\r\n    \r\n    for (const part of parts) {\r\n      if (!isNaN(Number(part))) {\r\n        break;\r\n      }\r\n      base.push(part);\r\n    }\r\n    return '/' + base.join('/');\r\n  }\r\n  \r\n  private getListRoute(baseRoute: string): string {\r\n    //verifica se a rota de retorno é a inicial\r\n    const parts = baseRoute.split('/').filter(Boolean);\r\n    return '/' + parts[0];\r\n  }\r\n\r\n  private getParentRoute(url: string): string {\r\n    const clean = url.split('?')[0].replace(/\\/$/, '');\r\n    let parts = clean.split('/').filter(Boolean);\r\n    // ---- REGRA FROM ----\r\n    const idx = parts.indexOf('from');\r\n    if (idx != -1) {\r\n      // remove o \"from\" e o parâmetro após ele\r\n      parts = parts.slice(0, idx);\r\n      // se o último item for view → remove também\r\n      if (parts[parts.length - 1] === 'view') {\r\n        parts.pop();\r\n      }\r\n    \r\n      return '/' + parts.join('/');\r\n    }\r\n  \r\n    // ---- REGRA VIEW ----\r\n    if (parts.length <= 1) {\r\n      return '/' + parts.join('/');\r\n    }\r\n    if (!isNaN(Number(parts[parts.length - 1]))) {\r\n      parts.pop();\r\n    }\r\n    if (parts[parts.length - 1] === 'view') {\r\n      parts.pop();\r\n    }\r\n    return '/' + parts.join('/');\r\n  }\r\n  getBackRoute(): string | null {\r\n    return this.previousUrl;\r\n  }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IonBackButton, NavController } from '@ionic/angular';\r\nimport { ActivatedRoute, UrlTree } from '@angular/router';\r\nimport { NavigationContextService } from '../../../../services/navigation-context.service';\r\n\r\n@Component({\r\n  selector: 'header-view',\r\n  templateUrl: './header-view.component.html',\r\n  styleUrls: ['./header-view.component.scss'],\r\n})\r\nexport class HeaderViewComponent implements OnInit {\r\n\r\n  @Input() novo: boolean = false;\r\n  @Input() loading: boolean;\r\n  @Input() progress: number | null = null;\r\n  \r\n  @Output('save') saveEmitter: EventEmitter<void> = new EventEmitter<void>();  \r\n\r\n  /** Habilita/Desabilita o focus no primeiro campo da view */\r\n  @Input() focusInFirstField: boolean = false;\r\n  /** Remove o botão de volta */\r\n  @Input() noBack: boolean = false;\r\n  /** Remove o botão de Novo */\r\n  @Input() noNew : boolean = false;\r\n  /** Parâmetro usado em telas dentro de telas, para que o retorno sempre seja a tela anterior */\r\n  @Input() useDefaultRouting: boolean = false;\r\n  /**  \r\n   * Rota para voltar, caso não seja definida, o componente irá tentar usar rota do ionic\r\n  */\r\n  @Input() backRouterLink: string | any[] | UrlTree | undefined = undefined;\r\n\r\n  constructor(\r\n    private navController: NavController,\r\n    private activatedRoute: ActivatedRoute,\r\n    private navContext : NavigationContextService\r\n  ) { }\r\n\r\n  ngOnInit() {}\r\n\r\n  protected get DefaultBackRoute(): string {\r\n    return this.navContext.getBackRoute() ?? '/';\r\n  }\r\n\r\n  @ViewChild(IonBackButton) IonBackButtonElement: IonBackButton; \r\n  public Back($event = null){\r\n    this.IonBackButtonElement.onClick($event)\r\n  }\r\n  @ViewChild('new') NewIonButtonElement: ElementRef; \r\n  public New(){\r\n    if(!this.novo){\r\n      this.navController.navigateForward(['../'], { \r\n        relativeTo: this.activatedRoute,\r\n        replaceUrl: true \r\n      });\r\n    }\r\n  }\r\n\r\n  Save(): void{\r\n    this.saveEmitter.emit();\r\n  }\r\n\r\n}\r\n","<div class=\"w-full h-7 flex\">\r\n  <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n    @if(!noBack){\r\n      @if(useDefaultRouting || backRouterLink){\r\n        <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n          <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n          <ion-text class=\"text-base\">Voltar</ion-text>\r\n        </ion-button>\r\n      }\r\n      @else{\r\n        <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n      }\r\n\r\n      <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n        <ion-card-content class=\"p-0 bg-transparent\">\r\n          @if(!useDefaultRouting){\r\n            <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\"  [defaultHref]=\"BackRoute\" >\r\n            </ion-back-button>\r\n          }@else {\r\n            <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n              <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n            </ion-button>\r\n          }\r\n        </ion-card-content>\r\n      </ion-card> -->\r\n    }\r\n    @if(!noBack){\r\n      <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n    }\r\n\r\n    <div class=\"relative\">\r\n      <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n        <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n        <ion-text class=\"text-base\">\r\n          Salvar\r\n        </ion-text>\r\n      </ion-button>\r\n\r\n      <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n        <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n          @if(progress){\r\n            {{(progress * 100) | number: '1.1-1'}}%\r\n          }@else {\r\n            {{0 | number: '1.1-1'}}%\r\n          }\r\n        </b></ion-text>\r\n        <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n      </div>\r\n    </div>\r\n    <ng-content select=\"[slot=start]\"></ng-content>\r\n  </div>\r\n  <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n    <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n    @if(!(noNew || novo)){\r\n      <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n        <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n        <ion-text class=\"text-base\">\r\n          Novo\r\n        </ion-text>\r\n      </ion-button>\r\n    }\r\n  </div>\r\n</div>","import { Component, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, QueryList, ViewChild, viewChild, ViewChildren } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { HttpService      } from \"../../../services/web/http.service\";\r\nimport { HttpServiceAtivo } from \"../../../services/web/http.ativo.service\";\r\nimport { GenericService   } from \"../../../services/generic.service\";\r\nimport { TableFieldFormBuilder } from \"../../../classes/inputs/table-field-form-builder\";\r\nimport { NavController } from \"@ionic/angular\";\r\nimport { firstValueFrom, lastValueFrom } from \"rxjs\";\r\nimport { HeaderViewComponent } from \"./header-view/header-view.component\";\r\nimport { TableField } from \"../../../classes/inputs/table-field\";\r\nimport { RouteData } from \"../../../classes/routes/route-data\";\r\nimport { CustomInput } from \"../../inputs/custom-input\";\r\nimport { Timeout } from \"../../../services/utils.service\";\r\nimport { NavigationContextService } from '../../../services/navigation-context.service';\r\n\r\n@Component({ template: '', styles: '' })\r\nexport abstract class View<T extends HttpService | HttpServiceAtivo> implements OnInit {\r\n  /** Id do dado a ser carregado */\r\n  @Input() id       : number | null = null;\r\n  @Input() loading  : boolean = false;\r\n  @Input() submitted: boolean = false;\r\n  /** Progresso de salvamento */\r\n  @Input() progress : number;\r\n  /** Service a ser utlizado na view */\r\n  @Input() service  : T;\r\n  /** Habilita/Desabilita o focus no primeiro campo da view\r\n   * 1 - para ativar no novo e no editar\r\n   * 2 - para ativar apenas no novo\r\n   * 3 - para desativar para os dois casos\r\n   */\r\n  @Input() startInFirstField : number = 2;\r\n\r\n  protected genericService: GenericService;\r\n  protected activatedRoute: ActivatedRoute;\r\n  protected elementRef: ElementRef;\r\n  protected fb: FormBuilder;\r\n  protected navContext : NavigationContextService\r\n  protected nested: boolean = false;\r\n\r\n  constructor(){\r\n    this.genericService = inject(GenericService)\r\n    this.activatedRoute = inject(ActivatedRoute)\r\n    this.elementRef     = inject(ElementRef)\r\n    this.fb             = inject(FormBuilder)\r\n    this.navContext     = inject(NavigationContextService)\r\n  }\r\n\r\n  /** Lista de TableFields a serem invocados de acordo com sua configuração.\r\n   * Automaticamente preenchido com service.lstTableFieldsView ou service.lstTableFields quando não informado\r\n    */\r\n  @Input() lstTableFields: TableField[] = [];\r\n  @Input() public redirectPath: string | null = \"/view/:id\"\r\n  \r\n  \r\n  @ViewChild('.wrapper') Wrapper: HTMLElement;\r\n  async ngOnInit() {\r\n    if(this.lstTableFields.length == 0){\r\n      if(this.service.lstTableFieldsView.length != 0){\r\n        this.lstTableFields = this.service.lstTableFieldsView;\r\n      }else{\r\n        this.lstTableFields = this.service.lstTableFields;\r\n      }\r\n    }\r\n\r\n    if(this.id == null){\r\n      this.id = this.genericService.GetId(this.activatedRoute, 0);\r\n    }\r\n    \r\n    if(!this.service){ console.warn(\"[ View service is not valid! ]\"); }\r\n    if (instanceOfViewWillCreateForm(this)) { this.OnViewWillCreateForm() }\r\n    await this.CreateForm();\r\n    if (instanceOfViewDidCreateForm(this)) { this.OnViewDidCreateForm() }\r\n  \r\n    if(this.elementRef && this.elementRef.nativeElement && this.elementRef.nativeElement.parentElement){\r\n      this.nested = (this.elementRef.nativeElement.parentElement.tagName as string).toUpperCase() != \"ION-CONTENT\";\r\n    }else{\r\n      this.nested = true;\r\n    }\r\n\r\n    await this.Refresh();\r\n\r\n    if(this.startInFirstField == 1){\r\n      await this.FocusOnFirstField();\r\n    }else if (this.startInFirstField == 2){\r\n      if(!this.id){\r\n        await this.FocusOnFirstField();\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  @ViewChildren(CustomInput) lstCustomInputs: QueryList<CustomInput<any>>;\r\n  async FocusOnFirstField(): Promise<void> {\r\n    try{\r\n      await Timeout(100);\r\n      this.lstCustomInputs.first.setFocus(null);\r\n    }catch{}\r\n  }\r\n\r\n  @Output('ViewDidRefresh') ViewDidRefreshEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n  async Refresh() {\r\n    this.loading = true;\r\n    try{\r\n      await this.Load();\r\n    }finally{ }\r\n    this.loading = false;\r\n    this.ViewDidRefreshEmitter.emit();\r\n  }\r\n\r\n  async Load(): Promise<void>{\r\n    if(!this.id){ return; }\r\n    const res = await firstValueFrom(this.service.Get(this.id));\r\n    this.frm.patchValue(res);\r\n  }\r\n\r\n  frm: FormGroup;\r\n  async CreateForm() {\r\n    this.frm = TableFieldFormBuilder.create(this.lstTableFields, this.fb);\r\n    await this.LoadIdComparison();\r\n  }\r\n\r\n  async LoadIdComparison(): Promise<void> {\r\n    try{\r\n      const data: RouteData = await firstValueFrom(this.activatedRoute.data) as RouteData;\r\n      if(!data){ return; }\r\n      const id   = this.genericService.GetId(this.activatedRoute, data.idPreloaderConfiguration.routeDepth);\r\n      \r\n      if(!id){ return; }\r\n\r\n      this.frm.controls[data.idPreloaderConfiguration.propertyName].setValue(id);\r\n      this.lstTableFields.find(p => p.index == data.idPreloaderConfiguration.propertyName).disabled = true;\r\n    }catch{ }\r\n  }\r\n\r\n  /** Emite o id da entidade salva apos o salvamento */\r\n  @Output('Save') SaveEmitter: EventEmitter<number> = new EventEmitter<number>();\r\n  async Save() {\r\n    await lastValueFrom(this.service.Save(this.frm, this));\r\n    this.SaveEmitter.emit(this.id);\r\n  }\r\n\r\n  public get BackRoute(){\r\n    return this.navContext.getBackRoute() ?? '/';\r\n  }\r\n\r\n  public GetCurrentRouting(): ActivatedRoute { return this.activatedRoute; }\r\n\r\n  protected navController: NavController;\r\n\r\n  protected NavigateToList(): void {\r\n  const back = this.navContext.getBackRoute() ?? '/';\r\n  this.navController.navigateBack(back);\r\n}\r\n\r\n\r\n  @ViewChild(HeaderViewComponent) HeaderViewComponentElement: HeaderViewComponent;\r\n\r\n  @HostListener('window:keydown',['$event'])\r\n  onKeyPress($event: KeyboardEvent) {\r\n    if(!(this.elementRef.nativeElement.contains(document.activeElement) || document.activeElement == this.elementRef.nativeElement)){\r\n      return;\r\n    }\r\n    if($event.key == 'Escape'){\r\n      this.HeaderViewComponentElement.Back($event);\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n    if(($event.ctrlKey || $event.metaKey) && ($event.key == 'Enter')){\r\n      this.Save();\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n    if($event.altKey && $event.key == 'Insert'){\r\n      this.HeaderViewComponentElement.New();\r\n      $event.preventDefault();\r\n      return;\r\n    }\r\n  }\r\n}\r\n\r\nexport interface ViewWillCreateForm{\r\n  OnViewWillCreateForm(): void | any;\r\n} \r\nfunction instanceOfViewWillCreateForm(object: any): object is ViewWillCreateForm {\r\n  return 'OnViewWillCreateForm' in object;\r\n}\r\nexport interface ViewDidCreateForm {\r\n  OnViewDidCreateForm(): void | any;\r\n} \r\nfunction instanceOfViewDidCreateForm(object: any): object is ViewDidCreateForm {\r\n  return 'OnViewDidCreateForm' in object;\r\n}\r\n\r\n","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { InputBoolConfiguration } from './input-bool.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\nimport { IonCheckbox, IonToggle } from '@ionic/angular';\r\n\r\n@Component({\r\n  selector: 'input-bool',\r\n  templateUrl: './input-bool.component.html',\r\n  styleUrls: ['./input-bool.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputBoolComponent), \r\n    { provide: CustomInput, useExisting: forwardRef(() => InputBoolComponent) },\r\n  ],\r\n})\r\n\r\n\r\n\r\nexport class InputBoolComponent extends CustomInput<boolean> {\r\n\r\n  configuration: InputSignal<InputBoolConfiguration> = input<InputBoolConfiguration>(new InputBoolConfiguration());\r\n\r\n  @ViewChild(IonCheckbox) ionCheckbox: ElementRef<IonCheckbox>;\r\n  @ViewChild(IonToggle)   ionToggle: ElementRef<IonToggle>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void { \r\n    if(this.inputContainer) { \r\n      this.inputContainer.nativeElement.focus(); \r\n      this.SetValue(!this.value);\r\n    }\r\n  }\r\n\r\n  constructor() { super(); }\r\n\r\n  override writeValue(obj: boolean): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n}\r\n","<div \r\n  #inputContainer\r\n  tabindex=\"-1\"\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  @if(configuration().type == \"checkbox\"){\r\n    <ion-checkbox (click)=\"$event.stopPropagation()\" #checkbox [ngModel]=\"value()\" (ngModelChange)=\"SetValue(!value())\" class=\"text-sm text-dark my-1.5 truncate\">\r\n      {{label()}}\r\n    </ion-checkbox>\r\n  }\r\n  @else { \r\n    <!-- toogle -->\r\n    <ion-toggle (click)=\"$event.stopPropagation()\" #toggle [ngModel]=\"value()\" (ngModelChange)=\"SetValue(!value())\" class=\"text-sm text-dark truncate\">\r\n      {{label()}}\r\n    </ion-toggle>\r\n  }\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { Component, ElementRef, forwardRef, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { Clipboard } from '@capacitor/clipboard';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { SIonPopoverComponent } from '../../popover/sion-popover/sion-popover.component';\r\nimport { MaskitoMaskExpression, MaskitoOptions } from '@maskito/core';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\n\r\ntype RGB = { r: number, g: number, b: number };\r\ntype HSL = { h: number, l: number, s: number };\r\n\r\n@Component({\r\n  selector: 'input-color',\r\n  templateUrl: './input-color.component.html',\r\n  styleUrls: ['./input-color.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputColorComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputColorComponent) },\r\n  ],\r\n})\r\nexport class InputColorComponent extends CustomInput<string> {\r\n  \r\n  // configuration: InputSignal<InputStringConfiguration> = input<InputStringConfiguration>(new InputStringConfiguration());\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor(\r\n    private genericService: GenericService\r\n  ) { super(); this.value.set(\"\"); }\r\n\r\n\r\n  @ViewChild(SIonPopoverComponent) popover: SIonPopoverComponent;\r\n\r\n  rgbColor : RGB = { r: 255, g: 0, b: 0 };\r\n  hslColor : HSL = { h: 0, s: 100, l: 50 };\r\n  alpha    : number = 100\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n\r\n  override SetValue(value: string): void {\r\n    this.value.set(value);\r\n    this.runValidation();\r\n    this.propagateChange(value);\r\n  }\r\n\r\n  rendering: boolean = false;\r\n  async Present(event: MouseEvent): Promise<void> {\r\n    this.rendering = true;\r\n    await this.popover.present(event);\r\n    this.InitializeGradient()\r\n    this.InitializeHueSlider()\r\n    this.InitializeAlphaSlider()\r\n    this.DrawColorGradient()\r\n    this.DrawHueSlider()\r\n    this.DrawAlphaSlider()\r\n    this.rendering = false;\r\n  }\r\n\r\n  //#region [ Gradient ]\r\n  indicatorX: number = 100\r\n  indicatorY: number = 0\r\n\r\n  @ViewChild('gradient'     ) gradient: ElementRef<HTMLCanvasElement>;\r\n  private isGradientDragging: boolean = false;\r\n  private gradientCtx: CanvasRenderingContext2D;\r\n  private gradientWidth: number = 0;\r\n  private gradientHeight: number = 0;\r\n  InitializeGradient(): void {\r\n    const gradient      = this.gradient.nativeElement;\r\n    this.gradientWidth  = gradient.width; \r\n    this.gradientHeight = gradient.height; \r\n    this.gradientCtx    = gradient.getContext('2d');\r\n\r\n    gradient.addEventListener('mousedown' , this.StartGradientDrag.bind(this));\r\n    gradient.addEventListener('mousemove' , this.GradientDrag.bind(this));\r\n    gradient.addEventListener('mouseup'   , this.EndGradientDrag.bind(this));\r\n    gradient.addEventListener('mouseleave', this.EndGradientDrag.bind(this));\r\n\r\n    // Touch events\r\n    gradient.addEventListener('touchstart', this.HandleGradientTouch.bind(this));\r\n    gradient.addEventListener('touchmove' , this.HandleGradientTouch.bind(this));\r\n    gradient.addEventListener('touchend'  , this.EndGradientDrag.bind(this));\r\n  }\r\n  StartGradientDrag(e: MouseEvent): void {\r\n    this.isGradientDragging = true\r\n    this.HandleColorSelection(e.offsetX, e.offsetY)\r\n  }\r\n  GradientDrag(e: MouseEvent): void {\r\n    if (this.isGradientDragging) {\r\n      this.HandleColorSelection(e.offsetX, e.offsetY)\r\n    }\r\n  }\r\n  EndGradientDrag(): void {\r\n    this.isGradientDragging = false\r\n  }\r\n  HandleGradientTouch(e: TouchEvent): void {\r\n    e.preventDefault()\r\n    if (e.type === \"touchstart\") {\r\n      this.isGradientDragging = true\r\n    }\r\n\r\n    if (this.isGradientDragging) {\r\n      const rect = this.gradient.nativeElement.getBoundingClientRect()\r\n      const touch = e.touches[0]\r\n      const x = touch.clientX - rect.left\r\n      const y = touch.clientY - rect.top\r\n      this.HandleColorSelection(x, y)\r\n    }\r\n  }\r\n\r\n  HandleColorSelection(x: number, y: number): void {\r\n    // Constrain coordinates to canvas bounds\r\n    x = Math.max(0, Math.min(x, this.gradientWidth))\r\n    y = Math.max(0, Math.min(y, this.gradientHeight))\r\n\r\n    // Store the raw position percentage for the indicator\r\n    this.indicatorX = (x / this.gradientWidth) * 100\r\n    this.indicatorY = (y / this.gradientHeight) * 100\r\n\r\n    // Calculate saturation and lightness based on position\r\n    this.hslColor.s = Math.round(this.indicatorX)\r\n    // Adjust lightness calculation:\r\n    // - Top of canvas (y=0) should be white (lightness=100) on the left and pure color (lightness=50) on the right\r\n    // - Bottom of canvas (y=height) should be black (lightness=0)\r\n    if (this.hslColor.s === 0) {\r\n      // Left edge is always white to black, regardless of y position\r\n      this.hslColor.l = Math.round(100 - this.indicatorY)\r\n    } else {\r\n      // For other saturation values, top is 50-100% lightness (based on saturation), bottom is 0%\r\n      const maxLightness = 100 - this.hslColor.s / 2\r\n      this.hslColor.l = Math.round(maxLightness - (this.indicatorY / 100) * maxLightness)\r\n    }\r\n\r\n    // Update selected color\r\n    this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n\r\n    // Redraw alpha slider with new color\r\n    this.DrawAlphaSlider()\r\n  }\r\n  //#endregion [ Gradient ]\r\n  \r\n  UpdateSelectedColor(saturation: number | null = null, lightness: number | null = null, emitChanges: boolean = false): void {\r\n    // Update HSL values\r\n    if(saturation != null){\r\n      this.hslColor.s = saturation\r\n    }\r\n    if(lightness != null){\r\n      this.hslColor.l = lightness\r\n    }\r\n    // Convert HSL to RGB\r\n    const rgb = HSLToRGB(this.hslColor);\r\n\r\n    this.rgbColor = rgb\r\n\r\n    // Convert RGB to HEX\r\n    const hex = RGBToHex(rgb, this.alpha / 100);\r\n    if(emitChanges){ \r\n      this.SetValue(hex);\r\n    } else { \r\n      this.value.set(hex);\r\n    }\r\n  }\r\n\r\n  //#region [ Hue Slider ]\r\n  @ViewChild(\"hueSlider\"  ) hueSlider: ElementRef<HTMLCanvasElement>\r\n  private isHueDragging: boolean = false;\r\n  private hueCtx: CanvasRenderingContext2D;\r\n  private hueSliderWidth: number = 0;\r\n  private hueSliderHeight: number = 0;\r\n  InitializeHueSlider(): void {\r\n    const hueSlider      = this.hueSlider.nativeElement\r\n    this.hueSliderWidth  = hueSlider.width;\r\n    this.hueSliderHeight = hueSlider.height;\r\n    this.hueCtx = hueSlider.getContext(\"2d\")\r\n\r\n    hueSlider.addEventListener(\"mousedown\" , this.StartHueDrag.bind(this))\r\n    hueSlider.addEventListener(\"mousemove\" , this.HueDrag.bind(this))\r\n    hueSlider.addEventListener(\"mouseup\"   , this.EndHueDrag.bind(this))\r\n    hueSlider.addEventListener(\"mouseleave\", this.EndHueDrag.bind(this))\r\n\r\n    // Touch events\r\n    hueSlider.addEventListener(\"touchstart\", this.HandleHueTouch.bind(this))\r\n    hueSlider.addEventListener(\"touchmove\" , this.HandleHueTouch.bind(this))\r\n    hueSlider.addEventListener(\"touchend\"  , this.EndHueDrag.bind(this))\r\n  }\r\n\r\n  StartHueDrag(e: MouseEvent): void {\r\n    this.isHueDragging = true\r\n    this.HandleHueSelection(e.offsetX)\r\n  }\r\n\r\n  HueDrag(e: MouseEvent): void {\r\n    if (this.isHueDragging) {\r\n      this.HandleHueSelection(e.offsetX)\r\n    }\r\n  }\r\n\r\n  EndHueDrag(): void {\r\n    this.isHueDragging = false\r\n  }\r\n  HandleHueTouch(e: TouchEvent): void {\r\n    e.preventDefault()\r\n    if (e.type === \"touchstart\") {\r\n      this.isHueDragging = true\r\n    }\r\n\r\n    if (this.isHueDragging) {\r\n      const rect = this.hueSlider.nativeElement.getBoundingClientRect()\r\n      const touch = e.touches[0]\r\n      const x = touch.clientX - rect.left\r\n      this.HandleHueSelection(x)\r\n    }\r\n  }\r\n  HandleHueSelection(x: number): void {\r\n    // Constrain x to canvas bounds\r\n    x = Math.max(0, Math.min(x, this.hueSliderWidth))\r\n\r\n    // Calculate hue based on x position (0-360)\r\n    this.hslColor.h = Math.round((x / this.hueSliderWidth) * 360)\r\n\r\n    // Redraw color gradient with new hue\r\n    this.DrawColorGradient()\r\n\r\n    // Redraw alpha slider with new color\r\n    this.DrawAlphaSlider()\r\n\r\n    // Update selected color\r\n    this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n  }\r\n  //#endregion [ Hue Slider ]\r\n\r\n  //#region [ Alpha Slider ]\r\n  @ViewChild(\"alphaSlider\") alphaSlider: ElementRef<HTMLCanvasElement>\r\n  private isAlphaDragging: boolean = false;\r\n  private alphaCtx: CanvasRenderingContext2D;\r\n  private alphaSliderWidth: number = 0;\r\n  private alphaSliderHeight: number = 0;\r\n  InitializeAlphaSlider(): void {\r\n    const alphaSlider      = this.alphaSlider.nativeElement;\r\n    this.alphaSliderHeight = alphaSlider.height;\r\n    this.alphaSliderWidth  = alphaSlider.width;\r\n\r\n    this.alphaCtx = alphaSlider.getContext(\"2d\")\r\n\r\n    alphaSlider.addEventListener(\"mousedown\" , this.StartAlphaDrag.bind(this))\r\n    alphaSlider.addEventListener(\"mousemove\" , this.AlphaDrag.bind(this))\r\n    alphaSlider.addEventListener(\"mouseup\"   , this.EndAlphaDrag.bind(this))\r\n    alphaSlider.addEventListener(\"mouseleave\", this.EndAlphaDrag.bind(this))\r\n\r\n    // Touch events\r\n    alphaSlider.addEventListener(\"touchstart\", this.HandleAlphaTouch.bind(this))\r\n    alphaSlider.addEventListener(\"touchmove\" , this.HandleAlphaTouch.bind(this))\r\n    alphaSlider.addEventListener(\"touchend\"  , this.EndAlphaDrag.bind(this))\r\n  }\r\n  StartAlphaDrag(e: MouseEvent): void {\r\n    this.isAlphaDragging = true\r\n    this.HandleAlphaSelection(e.offsetX)\r\n  }\r\n\r\n  AlphaDrag(e: MouseEvent): void {\r\n    if (this.isAlphaDragging) {\r\n      this.HandleAlphaSelection(e.offsetX)\r\n    }\r\n  }\r\n\r\n  EndAlphaDrag(): void {\r\n    this.isAlphaDragging = false\r\n  }\r\n\r\n  HandleAlphaTouch(e: TouchEvent): void {\r\n    e.preventDefault()\r\n    if (e.type === \"touchstart\") {\r\n      this.isAlphaDragging = true\r\n    }\r\n\r\n    if (this.isAlphaDragging) {\r\n      const rect = this.alphaSlider.nativeElement.getBoundingClientRect()\r\n      const touch = e.touches[0]\r\n      const x = touch.clientX - rect.left\r\n      this.HandleAlphaSelection(x)\r\n    }\r\n  }\r\n\r\n  HandleAlphaSelection(x: number): void {\r\n    // Constrain x to canvas bounds\r\n    x = Math.max(0, Math.min(x, this.alphaSliderWidth))\r\n\r\n    // Calculate alpha based on x position (0-100)\r\n    this.alpha = Math.round((x / this.alphaSliderWidth) * 100)\r\n\r\n    // Update selected color\r\n    this.UpdateSelectedColor(this.hslColor.s, this.hslColor.l, true)\r\n  }\r\n  //#endregion [ Alpha Slider ]\r\n\r\n  SetColorFromHex(hexColor: string, updateCanvas: boolean = true, emitChanges: boolean = false): void {\r\n    // Remove # if present\r\n    hexColor = hexColor.replace(/^#/, \"\")\r\n\r\n    let r: number, g: number, b: number, a = 1\r\n\r\n    // Parse hex values based on string length\r\n    if (hexColor.length === 3) {\r\n      // Short hex (#RGB)\r\n      r = Number.parseInt(hexColor.charAt(0) + hexColor.charAt(0), 16)\r\n      g = Number.parseInt(hexColor.charAt(1) + hexColor.charAt(1), 16)\r\n      b = Number.parseInt(hexColor.charAt(2) + hexColor.charAt(2), 16)\r\n    } else \r\n    if (hexColor.length === 6) {\r\n      // Standard hex (#RRGGBB)\r\n      r = Number.parseInt(hexColor.substring(0, 2), 16)\r\n      g = Number.parseInt(hexColor.substring(2, 4), 16)\r\n      b = Number.parseInt(hexColor.substring(4, 6), 16)\r\n    } else \r\n    if (hexColor.length === 8) {\r\n      // Hex with alpha (#RRGGBBAA)\r\n      r = Number.parseInt(hexColor.substring(0, 2), 16)\r\n      g = Number.parseInt(hexColor.substring(2, 4), 16)\r\n      b = Number.parseInt(hexColor.substring(4, 6), 16)\r\n      a = Number.parseInt(hexColor.substring(6, 8), 16) / 255\r\n    } else {\r\n      // Invalid hex, use default\r\n      console.error(\"Invalid hex color format\")\r\n      return;\r\n    }\r\n\r\n    // Update RGB color\r\n    this.rgbColor = { r, g, b }\r\n\r\n    // Convert RGB to HSL\r\n    this.hslColor = RGBToHSL(this.rgbColor)\r\n\r\n    // Update alpha\r\n    this.alpha = Math.round(a * 100)\r\n\r\n    // Update selected color\r\n    const hex = RGBToHex(this.rgbColor, a)\r\n    if(emitChanges){ \r\n      this.SetValue(hex);\r\n    } else { \r\n      this.value.set(hex);\r\n    }\r\n\r\n    if(updateCanvas){\r\n      // Calculate indicator position\r\n      this.UpdateIndicatorPositions()\r\n  \r\n      // Redraw components\r\n      this.DrawColorGradient()\r\n      this.DrawAlphaSlider()\r\n    }\r\n    \r\n  }\r\n\r\n  DrawColorGradient(): void {\r\n    const ctx = this.gradientCtx;\r\n\r\n    // Clear canvas\r\n    ctx.clearRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n    // Draw the pure hue color at the top-right corner\r\n    ctx.fillStyle = `hsl(${this.hslColor.h}, 100%, 50%)`\r\n    ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n    // White gradient (horizontal - saturation)\r\n    const whiteGradient = ctx.createLinearGradient(0, 0, this.gradientWidth, 0)\r\n    whiteGradient.addColorStop(0, \"white\")\r\n    whiteGradient.addColorStop(1, \"rgba(255, 255, 255, 0)\")\r\n    ctx.fillStyle = whiteGradient\r\n    ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n\r\n    // Black gradient (vertical - brightness)\r\n    const blackGradient = ctx.createLinearGradient(0, 0, 0, this.gradientHeight)\r\n    blackGradient.addColorStop(0, \"rgba(0, 0, 0, 0)\")\r\n    blackGradient.addColorStop(1, \"black\")\r\n    ctx.fillStyle = blackGradient\r\n    ctx.fillRect(0, 0, this.gradientWidth, this.gradientHeight)\r\n  }\r\n\r\n  DrawHueSlider(): void {\r\n    const ctx = this.hueCtx\r\n\r\n    // Create hue gradient\r\n    const gradient = ctx.createLinearGradient(0, 0, this.hueSliderWidth, 0)\r\n    for (let i = 0; i <= 360; i += 60) {\r\n      gradient.addColorStop(i / 360, `hsl(${i}, 100%, 50%)`)\r\n    }\r\n\r\n    ctx.fillStyle = gradient\r\n    ctx.fillRect(0, 0, this.hueSliderWidth, this.hueSliderHeight)\r\n  }\r\n\r\n  DrawAlphaSlider(): void {\r\n    const ctx = this.alphaCtx\r\n    const width  = this.alphaSliderWidth\r\n    const height = this.alphaSliderHeight\r\n\r\n    // Clear canvas\r\n    ctx.clearRect(0, 0, width, height)\r\n\r\n    // Create checkerboard pattern for transparency\r\n    const squareSize = 8\r\n    for (let i = 0; i < width; i += squareSize) {\r\n      for (let j = 0; j < height; j += squareSize) {\r\n        const isEven = (i / squareSize + j / squareSize) % 2 === 0\r\n        ctx.fillStyle = isEven ? \"#ffffff\" : \"#cccccc\"\r\n        ctx.fillRect(i, j, squareSize, squareSize)\r\n      }\r\n    }\r\n    \r\n\r\n    // Create alpha gradient\r\n    const gradient = ctx.createLinearGradient(0, 0, width, 0)\r\n    const rgb = HSLToRGB(this.hslColor);\r\n\r\n    gradient.addColorStop(0, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`)\r\n    gradient.addColorStop(1, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`)\r\n\r\n    ctx.fillStyle = gradient\r\n    ctx.fillRect(0, 0, width, height)\r\n  }\r\n\r\n  async CopyToClipboard() {\r\n    await Clipboard.write({\r\n      string: this.value()\r\n    });\r\n    await this.genericService.PresentToastSuccess(`${this.value()} copiada para a área de transferência!`);\r\n  }\r\n\r\n  UpdateIndicatorPositions(): void {\r\n    // Set X position directly from saturation (0-100)\r\n    this.indicatorX = this.hslColor.s;\r\n\r\n    // Calculate Y position using the inverse of the HandleColorSelection logic\r\n    if (this.hslColor.s === 0) {\r\n      // Left edge: simple white to black mapping\r\n      this.indicatorY = 100 - this.hslColor.l;\r\n    } else {\r\n      // For other saturation values, we need to reverse the maxLightness calculation\r\n      const maxLightness = 100 - this.hslColor.s / 2;\r\n      this.indicatorY = ((maxLightness - this.hslColor.l) / maxLightness) * 100;\r\n    }\r\n    \r\n    // Ensure the position stays within bounds\r\n    this.indicatorY = Math.max(0, Math.min(100, this.indicatorY));\r\n  }\r\n\r\n  HEXMask: MaskitoOptions = { mask: HEXMask };\r\n}\r\n\r\nfunction HSLToRGB(hsl: HSL): RGB {\r\n  var h = hsl.h / 360;\r\n  var s = hsl.s / 100;\r\n  var l = hsl.l / 100;\r\n\r\n  let r: number, g: number, b: number\r\n\r\n  if (s === 0) {\r\n    r = g = b = l // achromatic\r\n  } else {\r\n    const q = l < 0.5 ? l * (1 + s) : l + s - l * s\r\n    const p = 2 * l - q\r\n\r\n    r = HUEtoRGB(p, q, h + 1 / 3)\r\n    g = HUEtoRGB(p, q, h)\r\n    b = HUEtoRGB(p, q, h - 1 / 3)\r\n  }\r\n\r\n  return {\r\n    r: Math.round(r * 255),\r\n    g: Math.round(g * 255),\r\n    b: Math.round(b * 255),\r\n  }\r\n}\r\nfunction HUEtoRGB(p: number, q: number, t: number): number {\r\n  if (t < 0) t += 1\r\n  if (t > 1) t -= 1\r\n  if (t < 1 / 6) return p + (q - p) * 6 * t\r\n  if (t < 1 / 2) return q\r\n  if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6\r\n  return p\r\n}\r\n\r\nfunction RGBToHSL(rgb: RGB): HSL {\r\n  var r = rgb.r / 255\r\n  var g = rgb.g / 255\r\n  var b = rgb.b / 255\r\n\r\n  const max = Math.max(r, g, b)\r\n  const min = Math.min(r, g, b)\r\n  let h = 0,\r\n    s = 0\r\n  const l = (max + min) / 2\r\n\r\n  if (max !== min) {\r\n    const d = max - min\r\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\r\n\r\n    switch (max) {\r\n      case r:\r\n        h = ((g - b) / d + (g < b ? 6 : 0)) / 6\r\n        break\r\n      case g:\r\n        h = ((b - r) / d + 2) / 6\r\n        break\r\n      case b:\r\n        h = ((r - g) / d + 4) / 6\r\n        break\r\n    }\r\n  }\r\n\r\n  return {\r\n    h: Math.round(h * 360),\r\n    s: Math.round(s * 100),\r\n    l: Math.round(l * 100),\r\n  }\r\n}\r\n\r\nfunction RGBToHex(rgb: RGB, alpha = 1): string {\r\n  let { r, g, b } = rgb\r\n\r\n  const alphaHex = Math.round(alpha * 255)\r\n    .toString(16)\r\n    .padStart(2, \"0\")\r\n  return (\r\n    \"#\" +\r\n    [r, g, b]\r\n      .map((x) => {\r\n        const hex = x.toString(16)\r\n        return hex.length === 1 ? \"0\" + hex : hex\r\n      })\r\n      .join(\"\") +\r\n    (alpha < 1 ? alphaHex : \"\")\r\n  ).toUpperCase();\r\n}\r\n\r\nconst HEXDigitRegex: RegExp = /[0-9a-f]+/i;\r\nconst HEXMask: MaskitoMaskExpression = [ '#', HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex, HEXDigitRegex ];","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event); Present($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <input #input\r\n    [maskito]=\"HEXMask\"\r\n    [ngModel]=\"value()\"\r\n    (ngModelChange)=\"SetColorFromHex($event, true, true)\" \r\n    [disabled]=\"disabled() || loading()\"\r\n    (blur)=\"blur.emit($event)\"\r\n  />\r\n  <div class=\" absolute bottom-2 right-8 size-5 rounded-sm overflow-hidden\" [style]=\"{ 'background': value() }\"> </div>\r\n\r\n  <ion-button tabindex=\"-1\" class=\"absolute right-1 bottom-1\" (click)=\"CopyToClipboard(); $event.stopPropagation();\" color=\"medium\" size=\"small\" fill=\"clear\" style=\"--border-radius: .5rem\">\r\n    <ion-icon name=\"clipboard\" slot=\"icon-only\"></ion-icon>\r\n  </ion-button>\r\n\r\n    <!-- [maxlength]=\"configuration().maxlength\" -->\r\n    <!-- [type]=\"configuration().type\"  -->\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>\r\n\r\n<sion-popover\r\n  #popover \r\n  width=\"fit-content\" \r\n  [anchor]=\"inputContainer\" \r\n>\r\n  <div class=\"size-full p-2 flex gap-1\">  \r\n    <div class=\"flex flex-col w-44 shrink-0 gap-1\">\r\n      <div id=\"gradientWrapper\" class=\"w-44 h-32 relative\">\r\n        <canvas #gradient width=\"176\" height=\"128\" class=\"size-full rounded-sm translucid-border\"></canvas>\r\n        <div class=\"color-indicator quick-transition\" [style.left.%]=\"indicatorX\" [style.top.%]=\"indicatorY\"></div>\r\n      </div>\r\n\r\n      <div id=\"hueWrapper\" class=\"w-full relative\">\r\n        <canvas #hueSlider   class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n        <div class=\"indicator quick-transition\" [style.left.%]=\"hslColor.h / 3.6\"></div>\r\n      </div>\r\n\r\n      <div id=\"alphaWrapper\" class=\"w-full relative\">\r\n        <canvas #alphaSlider class=\"w-full rounded h-[22px]\" width=\"176\" height=\"22\"></canvas>\r\n        <div class=\"indicator quick-transition\" [style.left.%]=\"alpha\"></div>\r\n      </div>\r\n\r\n      <div class=\"w-full flex shrink-0\">\r\n        <div class=\"w-full grid grid-cols-5 gap-1\">\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#000000FF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#3880FFFF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#2DD36FFF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFC409FF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#EB445AFF' }\"></ng-container>\r\n          \r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FFFFFFFF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#59168bFF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#C6005CFF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#FB2C36FF' }\"></ng-container>\r\n          <ng-container *ngTemplateOutlet=\"templateColor; context: { $implicit: '#314158FF' }\"></ng-container>\r\n        </div>\r\n      </div>  \r\n    </div>\r\n  </div>\r\n</sion-popover>\r\n\r\n<ng-template #templateColor let-color>\r\n  <div class=\"size-8 rounded translucid-border cursor-pointer\" (click)=\"SetColorFromHex(color, true, true)\" [style.background]=\"color\"></div>\r\n</ng-template>","import { Component, ElementRef, forwardRef, input, InputSignal, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputFileConfiguration } from './input-file.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { UtilsService } from '../../../services/utils.service';\r\nimport { StorageService } from '../../../services/web/storage.service';\r\n\r\n@Component({\r\n  selector: 'input-file',\r\n  templateUrl: './input-file.component.html',\r\n  styleUrls: ['./input-file.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputFileComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputFileComponent) },\r\n  ],\r\n  \r\n})\r\nexport class InputFileComponent extends CustomInput<File | string> {\r\n\r\n  configuration: InputSignal<InputFileConfiguration> = input<InputFileConfiguration>(new InputFileConfiguration());\r\n\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(event){\r\n      this.Upload();\r\n    }\r\n    this.inputContainer.nativeElement.focus();\r\n  }\r\n\r\n  constructor(\r\n    private utilsService: UtilsService,\r\n    public storageService: StorageService\r\n  ) { super(); }\r\n\r\n  valueString: string = \"\";\r\n  isString: boolean = false;\r\n  isImage: boolean = false;\r\n  objectURL: string | null = null;\r\n\r\n\r\n  override writeValue(obj: File | string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.SetValueString();\r\n    this.runValidation();\r\n  }\r\n  override SetValue(value: File | string): void {\r\n    if (value instanceof File) {\r\n\r\n      const safeName = StorageService.SanitizeName(value.name);\r\n\r\n      // Se já estiver ok, evita recriar\r\n      if (safeName !== value.name) {\r\n        value = new File(\r\n          [value],\r\n          safeName,\r\n          { type: value.type, lastModified: value.lastModified }\r\n        );\r\n      }\r\n    }\r\n\r\n    this.value.set(value);\r\n    this.SetValueString();\r\n    this.runValidation();\r\n    this.propagateChange(this.value());\r\n  }\r\n  \r\n  SetValueString(): void {\r\n    this.objectURL = null;\r\n    this.isString = typeof this.value() == \"string\";\r\n    if(!this.value()) { this.valueString = \"...\"; return; }\r\n    this.valueString = typeof this.value() == \"string\" ?  StorageService.SanitizeFileName(this.value().toString()) : (this.value() as File).name;\r\n    \r\n    this.isImage = lstImage.includes(this.valueString.split('.').at(-1).toLowerCase());\r\n    if(this.isImage && !this.isString){\r\n      this.objectURL = URL.createObjectURL(this.value() as File);\r\n      \r\n    }\r\n  }\r\n\r\n  async Upload(): Promise<void>{\r\n    try{\r\n      const res = await this.utilsService.SelectFile(this.configuration());\r\n      if(res){ this.SetValue(res); }\r\n    }catch{}\r\n  }\r\n\r\n  Clear(event: MouseEvent): void {\r\n    event.stopPropagation();\r\n    this.SetValue(null);\r\n  }\r\n\r\n  Download(): void{\r\n    this.storageService.StartDownload(this.value() as string);\r\n  }\r\n}\r\nexport const lstImage: string[] = [\r\n  'jpe',\r\n  'jpg',\r\n  'jpeg',\r\n  'gif',\r\n  'png',\r\n  'bmp',\r\n  'ico',\r\n  'svg',\r\n  'svgz',\r\n  'tif',\r\n  'tiff',\r\n  'webp',\r\n  'jfif',\r\n  'avif',\r\n] ","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  \r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <div tabindex=\"0\" class=\"file-label-container text-dark !pb-1\">\r\n     <ion-icon class=\"shrink-0\" color=\"dark\" name=\"document\"></ion-icon> \r\n    <span\r\n      class=\"block flex-1 min-w-0 truncate\"\r\n      [title]=\"valueString\"\r\n    >\r\n      {{ valueString }}\r\n    </span>\r\n\r\n    <div class=\"size-full flex justify-center items-center gap-1 shrink-0 w-fit\">\r\n      @if(value()){\r\n        <ion-button class=\"rounded-full\" fill=\"outline\" color=\"danger\" size=\"small\"   (click)=\"Clear($event)\">\r\n          <ion-icon name=\"trash\" slot=\"icon-only\"></ion-icon>\r\n        </ion-button>\r\n      }\r\n      @if(isString) {\r\n        <ion-button class=\"rounded-full allow-click !opacity-100\" fill=\"outline\" color=\"dark\" size=\"small\" (click)=\"Download()\">\r\n          <ion-icon class=\"!opacity-100\" name=\"cloud-download\" slot=\"icon-only\"></ion-icon>\r\n        </ion-button>\r\n      }\r\n      <ion-button class=\"rounded-full\" fill=\"outline\" color=\"dark\" size=\"small\"  (click)=\"Upload()\">\r\n        <ion-icon slot=\"icon-only\" name=\"cloud-upload\"></ion-icon>\r\n      </ion-button>\r\n            <!-- @if(isString){\r\n              @if(storageService.GetProgress(this.value().toString())){\r\n                <ion-progress-bar [value]=\"storageService.GetProgress(this.value().toString())\"></ion-progress-bar>\r\n              }\r\n              @if(isImage){\r\n                <image fill=\"clear\" [src]=\"value().toString()\"></image>\r\n              }\r\n            }\r\n            @else if(isImage){\r\n              <ion-img [src]=\"objectURL\" class=\"w-full h-32\"></ion-img>\r\n            } -->\r\n      </div>\r\n    </div>\r\n\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","export const lstIconsIonicons = [\r\n  \"accessibility-outline.svg\",\r\n  \"accessibility-sharp.svg\",\r\n  \"accessibility.svg\",\r\n  \"add-circle-outline.svg\",\r\n  \"add-circle-sharp.svg\",\r\n  \"add-circle.svg\",\r\n  \"add-outline.svg\",\r\n  \"add-sharp.svg\",\r\n  \"add.svg\",\r\n  \"airplane-outline.svg\",\r\n  \"airplane-sharp.svg\",\r\n  \"airplane.svg\",\r\n  \"alarm-outline.svg\",\r\n  \"alarm-sharp.svg\",\r\n  \"alarm.svg\",\r\n  \"albums-outline.svg\",\r\n  \"albums-sharp.svg\",\r\n  \"albums.svg\",\r\n  \"alert-circle-outline.svg\",\r\n  \"alert-circle-sharp.svg\",\r\n  \"alert-circle.svg\",\r\n  \"alert-outline.svg\",\r\n  \"alert-sharp.svg\",\r\n  \"alert.svg\",\r\n  \"american-football-outline.svg\",\r\n  \"american-football-sharp.svg\",\r\n  \"american-football.svg\",\r\n  \"analytics-outline.svg\",\r\n  \"analytics-sharp.svg\",\r\n  \"analytics.svg\",\r\n  \"aperture-outline.svg\",\r\n  \"aperture-sharp.svg\",\r\n  \"aperture.svg\",\r\n  \"apps-outline.svg\",\r\n  \"apps-sharp.svg\",\r\n  \"apps.svg\",\r\n  \"archive-outline.svg\",\r\n  \"archive-sharp.svg\",\r\n  \"archive.svg\",\r\n  \"arrow-back-circle-outline.svg\",\r\n  \"arrow-back-circle-sharp.svg\",\r\n  \"arrow-back-circle.svg\",\r\n  \"arrow-back-outline.svg\",\r\n  \"arrow-back-sharp.svg\",\r\n  \"arrow-back.svg\",\r\n  \"arrow-down-circle-outline.svg\",\r\n  \"arrow-down-circle-sharp.svg\",\r\n  \"arrow-down-circle.svg\",\r\n  \"arrow-down-left-box-outline.svg\",\r\n  \"arrow-down-left-box-sharp.svg\",\r\n  \"arrow-down-left-box.svg\",\r\n  \"arrow-down-outline.svg\",\r\n  \"arrow-down-right-box-outline.svg\",\r\n  \"arrow-down-right-box-sharp.svg\",\r\n  \"arrow-down-right-box.svg\",\r\n  \"arrow-down-sharp.svg\",\r\n  \"arrow-down.svg\",\r\n  \"arrow-forward-circle-outline.svg\",\r\n  \"arrow-forward-circle-sharp.svg\",\r\n  \"arrow-forward-circle.svg\",\r\n  \"arrow-forward-outline.svg\",\r\n  \"arrow-forward-sharp.svg\",\r\n  \"arrow-forward.svg\",\r\n  \"arrow-redo-circle-outline.svg\",\r\n  \"arrow-redo-circle-sharp.svg\",\r\n  \"arrow-redo-circle.svg\",\r\n  \"arrow-redo-outline.svg\",\r\n  \"arrow-redo-sharp.svg\",\r\n  \"arrow-redo.svg\",\r\n  \"arrow-undo-circle-outline.svg\",\r\n  \"arrow-undo-circle-sharp.svg\",\r\n  \"arrow-undo-circle.svg\",\r\n  \"arrow-undo-outline.svg\",\r\n  \"arrow-undo-sharp.svg\",\r\n  \"arrow-undo.svg\",\r\n  \"arrow-up-circle-outline.svg\",\r\n  \"arrow-up-circle-sharp.svg\",\r\n  \"arrow-up-circle.svg\",\r\n  \"arrow-up-left-box-outline.svg\",\r\n  \"arrow-up-left-box-sharp.svg\",\r\n  \"arrow-up-left-box.svg\",\r\n  \"arrow-up-outline.svg\",\r\n  \"arrow-up-right-box-outline.svg\",\r\n  \"arrow-up-right-box-sharp.svg\",\r\n  \"arrow-up-right-box.svg\",\r\n  \"arrow-up-sharp.svg\",\r\n  \"arrow-up.svg\",\r\n  \"at-circle-outline.svg\",\r\n  \"at-circle-sharp.svg\",\r\n  \"at-circle.svg\",\r\n  \"at-outline.svg\",\r\n  \"at-sharp.svg\",\r\n  \"at.svg\",\r\n  \"attach-outline.svg\",\r\n  \"attach-sharp.svg\",\r\n  \"attach.svg\",\r\n  \"backspace-outline.svg\",\r\n  \"backspace-sharp.svg\",\r\n  \"backspace.svg\",\r\n  \"bag-add-outline.svg\",\r\n  \"bag-add-sharp.svg\",\r\n  \"bag-add.svg\",\r\n  \"bag-check-outline.svg\",\r\n  \"bag-check-sharp.svg\",\r\n  \"bag-check.svg\",\r\n  \"bag-handle-outline.svg\",\r\n  \"bag-handle-sharp.svg\",\r\n  \"bag-handle.svg\",\r\n  \"bag-outline.svg\",\r\n  \"bag-remove-outline.svg\",\r\n  \"bag-remove-sharp.svg\",\r\n  \"bag-remove.svg\",\r\n  \"bag-sharp.svg\",\r\n  \"bag.svg\",\r\n  \"balloon-outline.svg\",\r\n  \"balloon-sharp.svg\",\r\n  \"balloon.svg\",\r\n  \"ban-outline.svg\",\r\n  \"ban-sharp.svg\",\r\n  \"ban.svg\",\r\n  \"bandage-outline.svg\",\r\n  \"bandage-sharp.svg\",\r\n  \"bandage.svg\",\r\n  \"bar-chart-outline.svg\",\r\n  \"bar-chart-sharp.svg\",\r\n  \"bar-chart.svg\",\r\n  \"barbell-outline.svg\",\r\n  \"barbell-sharp.svg\",\r\n  \"barbell.svg\",\r\n  \"barcode-outline.svg\",\r\n  \"barcode-sharp.svg\",\r\n  \"barcode.svg\",\r\n  \"baseball-outline.svg\",\r\n  \"baseball-sharp.svg\",\r\n  \"baseball.svg\",\r\n  \"basket-outline.svg\",\r\n  \"basket-sharp.svg\",\r\n  \"basket.svg\",\r\n  \"basketball-outline.svg\",\r\n  \"basketball-sharp.svg\",\r\n  \"basketball.svg\",\r\n  \"battery-charging-outline.svg\",\r\n  \"battery-charging-sharp.svg\",\r\n  \"battery-charging.svg\",\r\n  \"battery-dead-outline.svg\",\r\n  \"battery-dead-sharp.svg\",\r\n  \"battery-dead.svg\",\r\n  \"battery-full-outline.svg\",\r\n  \"battery-full-sharp.svg\",\r\n  \"battery-full.svg\",\r\n  \"battery-half-outline.svg\",\r\n  \"battery-half-sharp.svg\",\r\n  \"battery-half.svg\",\r\n  \"beaker-outline.svg\",\r\n  \"beaker-sharp.svg\",\r\n  \"beaker.svg\",\r\n  \"bed-outline.svg\",\r\n  \"bed-sharp.svg\",\r\n  \"bed.svg\",\r\n  \"beer-outline.svg\",\r\n  \"beer-sharp.svg\",\r\n  \"beer.svg\",\r\n  \"bicycle-outline.svg\",\r\n  \"bicycle-sharp.svg\",\r\n  \"bicycle.svg\",\r\n  \"binoculars-outline.svg\",\r\n  \"binoculars-sharp.svg\",\r\n  \"binoculars.svg\",\r\n  \"bluetooth-outline.svg\",\r\n  \"bluetooth-sharp.svg\",\r\n  \"bluetooth.svg\",\r\n  \"boat-outline.svg\",\r\n  \"boat-sharp.svg\",\r\n  \"boat.svg\",\r\n  \"body-outline.svg\",\r\n  \"body-sharp.svg\",\r\n  \"body.svg\",\r\n  \"bonfire-outline.svg\",\r\n  \"bonfire-sharp.svg\",\r\n  \"bonfire.svg\",\r\n  \"book-outline.svg\",\r\n  \"book-sharp.svg\",\r\n  \"book.svg\",\r\n  \"bookmark-outline.svg\",\r\n  \"bookmark-sharp.svg\",\r\n  \"bookmark.svg\",\r\n  \"bookmarks-outline.svg\",\r\n  \"bookmarks-sharp.svg\",\r\n  \"bookmarks.svg\",\r\n  \"bowling-ball-outline.svg\",\r\n  \"bowling-ball-sharp.svg\",\r\n  \"bowling-ball.svg\",\r\n  \"briefcase-outline.svg\",\r\n  \"briefcase-sharp.svg\",\r\n  \"briefcase.svg\",\r\n  \"browsers-outline.svg\",\r\n  \"browsers-sharp.svg\",\r\n  \"browsers.svg\",\r\n  \"brush-outline.svg\",\r\n  \"brush-sharp.svg\",\r\n  \"brush.svg\",\r\n  \"bug-outline.svg\",\r\n  \"bug-sharp.svg\",\r\n  \"bug.svg\",\r\n  \"build-outline.svg\",\r\n  \"build-sharp.svg\",\r\n  \"build.svg\",\r\n  \"bulb-outline.svg\",\r\n  \"bulb-sharp.svg\",\r\n  \"bulb.svg\",\r\n  \"bus-outline.svg\",\r\n  \"bus-sharp.svg\",\r\n  \"bus.svg\",\r\n  \"business-outline.svg\",\r\n  \"business-sharp.svg\",\r\n  \"business.svg\",\r\n  \"cafe-outline.svg\",\r\n  \"cafe-sharp.svg\",\r\n  \"cafe.svg\",\r\n  \"calculator-outline.svg\",\r\n  \"calculator-sharp.svg\",\r\n  \"calculator.svg\",\r\n  \"calendar-clear-outline.svg\",\r\n  \"calendar-clear-sharp.svg\",\r\n  \"calendar-clear.svg\",\r\n  \"calendar-number-outline.svg\",\r\n  \"calendar-number-sharp.svg\",\r\n  \"calendar-number.svg\",\r\n  \"calendar-outline.svg\",\r\n  \"calendar-sharp.svg\",\r\n  \"calendar.svg\",\r\n  \"call-outline.svg\",\r\n  \"call-sharp.svg\",\r\n  \"call.svg\",\r\n  \"camera-outline.svg\",\r\n  \"camera-reverse-outline.svg\",\r\n  \"camera-reverse-sharp.svg\",\r\n  \"camera-reverse.svg\",\r\n  \"camera-sharp.svg\",\r\n  \"camera.svg\",\r\n  \"car-outline.svg\",\r\n  \"car-sharp.svg\",\r\n  \"car-sport-outline.svg\",\r\n  \"car-sport-sharp.svg\",\r\n  \"car-sport.svg\",\r\n  \"car.svg\",\r\n  \"card-outline.svg\",\r\n  \"card-sharp.svg\",\r\n  \"card.svg\",\r\n  \"caret-back-circle-outline.svg\",\r\n  \"caret-back-circle-sharp.svg\",\r\n  \"caret-back-circle.svg\",\r\n  \"caret-back-outline.svg\",\r\n  \"caret-back-sharp.svg\",\r\n  \"caret-back.svg\",\r\n  \"caret-down-circle-outline.svg\",\r\n  \"caret-down-circle-sharp.svg\",\r\n  \"caret-down-circle.svg\",\r\n  \"caret-down-outline.svg\",\r\n  \"caret-down-sharp.svg\",\r\n  \"caret-down.svg\",\r\n  \"caret-forward-circle-outline.svg\",\r\n  \"caret-forward-circle-sharp.svg\",\r\n  \"caret-forward-circle.svg\",\r\n  \"caret-forward-outline.svg\",\r\n  \"caret-forward-sharp.svg\",\r\n  \"caret-forward.svg\",\r\n  \"caret-up-circle-outline.svg\",\r\n  \"caret-up-circle-sharp.svg\",\r\n  \"caret-up-circle.svg\",\r\n  \"caret-up-outline.svg\",\r\n  \"caret-up-sharp.svg\",\r\n  \"caret-up.svg\",\r\n  \"cart-outline.svg\",\r\n  \"cart-sharp.svg\",\r\n  \"cart.svg\",\r\n  \"cash-outline.svg\",\r\n  \"cash-sharp.svg\",\r\n  \"cash.svg\",\r\n  \"cellular-outline.svg\",\r\n  \"cellular-sharp.svg\",\r\n  \"cellular.svg\",\r\n  \"chatbox-ellipses-outline.svg\",\r\n  \"chatbox-ellipses-sharp.svg\",\r\n  \"chatbox-ellipses.svg\",\r\n  \"chatbox-outline.svg\",\r\n  \"chatbox-sharp.svg\",\r\n  \"chatbox.svg\",\r\n  \"chatbubble-ellipses-outline.svg\",\r\n  \"chatbubble-ellipses-sharp.svg\",\r\n  \"chatbubble-ellipses.svg\",\r\n  \"chatbubble-outline.svg\",\r\n  \"chatbubble-sharp.svg\",\r\n  \"chatbubble.svg\",\r\n  \"chatbubbles-outline.svg\",\r\n  \"chatbubbles-sharp.svg\",\r\n  \"chatbubbles.svg\",\r\n  \"checkbox-outline.svg\",\r\n  \"checkbox-sharp.svg\",\r\n  \"checkbox.svg\",\r\n  \"checkmark-circle-outline.svg\",\r\n  \"checkmark-circle-sharp.svg\",\r\n  \"checkmark-circle.svg\",\r\n  \"checkmark-done-circle-outline.svg\",\r\n  \"checkmark-done-circle-sharp.svg\",\r\n  \"checkmark-done-circle.svg\",\r\n  \"checkmark-done-outline.svg\",\r\n  \"checkmark-done-sharp.svg\",\r\n  \"checkmark-done.svg\",\r\n  \"checkmark-outline.svg\",\r\n  \"checkmark-sharp.svg\",\r\n  \"checkmark.svg\",\r\n  \"chevron-back-circle-outline.svg\",\r\n  \"chevron-back-circle-sharp.svg\",\r\n  \"chevron-back-circle.svg\",\r\n  \"chevron-back-outline.svg\",\r\n  \"chevron-back-sharp.svg\",\r\n  \"chevron-back.svg\",\r\n  \"chevron-collapse-outline.svg\",\r\n  \"chevron-collapse-sharp.svg\",\r\n  \"chevron-collapse.svg\",\r\n  \"chevron-down-circle-outline.svg\",\r\n  \"chevron-down-circle-sharp.svg\",\r\n  \"chevron-down-circle.svg\",\r\n  \"chevron-down-outline.svg\",\r\n  \"chevron-down-sharp.svg\",\r\n  \"chevron-down.svg\",\r\n  \"chevron-expand-outline.svg\",\r\n  \"chevron-expand-sharp.svg\",\r\n  \"chevron-expand.svg\",\r\n  \"chevron-forward-circle-outline.svg\",\r\n  \"chevron-forward-circle-sharp.svg\",\r\n  \"chevron-forward-circle.svg\",\r\n  \"chevron-forward-outline.svg\",\r\n  \"chevron-forward-sharp.svg\",\r\n  \"chevron-forward.svg\",\r\n  \"chevron-up-circle-outline.svg\",\r\n  \"chevron-up-circle-sharp.svg\",\r\n  \"chevron-up-circle.svg\",\r\n  \"chevron-up-outline.svg\",\r\n  \"chevron-up-sharp.svg\",\r\n  \"chevron-up.svg\",\r\n  \"clipboard-outline.svg\",\r\n  \"clipboard-sharp.svg\",\r\n  \"clipboard.svg\",\r\n  \"close-circle-outline.svg\",\r\n  \"close-circle-sharp.svg\",\r\n  \"close-circle.svg\",\r\n  \"close-outline.svg\",\r\n  \"close-sharp.svg\",\r\n  \"close.svg\",\r\n  \"cloud-circle-outline.svg\",\r\n  \"cloud-circle-sharp.svg\",\r\n  \"cloud-circle.svg\",\r\n  \"cloud-done-outline.svg\",\r\n  \"cloud-done-sharp.svg\",\r\n  \"cloud-done.svg\",\r\n  \"cloud-download-outline.svg\",\r\n  \"cloud-download-sharp.svg\",\r\n  \"cloud-download.svg\",\r\n  \"cloud-offline-outline.svg\",\r\n  \"cloud-offline-sharp.svg\",\r\n  \"cloud-offline.svg\",\r\n  \"cloud-outline.svg\",\r\n  \"cloud-sharp.svg\",\r\n  \"cloud-upload-outline.svg\",\r\n  \"cloud-upload-sharp.svg\",\r\n  \"cloud-upload.svg\",\r\n  \"cloud.svg\",\r\n  \"cloudy-night-outline.svg\",\r\n  \"cloudy-night-sharp.svg\",\r\n  \"cloudy-night.svg\",\r\n  \"cloudy-outline.svg\",\r\n  \"cloudy-sharp.svg\",\r\n  \"cloudy.svg\",\r\n  \"code-download-outline.svg\",\r\n  \"code-download-sharp.svg\",\r\n  \"code-download.svg\",\r\n  \"code-outline.svg\",\r\n  \"code-sharp.svg\",\r\n  \"code-slash-outline.svg\",\r\n  \"code-slash-sharp.svg\",\r\n  \"code-slash.svg\",\r\n  \"code-working-outline.svg\",\r\n  \"code-working-sharp.svg\",\r\n  \"code-working.svg\",\r\n  \"code.svg\",\r\n  \"cog-outline.svg\",\r\n  \"cog-sharp.svg\",\r\n  \"cog.svg\",\r\n  \"color-fill-outline.svg\",\r\n  \"color-fill-sharp.svg\",\r\n  \"color-fill.svg\",\r\n  \"color-filter-outline.svg\",\r\n  \"color-filter-sharp.svg\",\r\n  \"color-filter.svg\",\r\n  \"color-palette-outline.svg\",\r\n  \"color-palette-sharp.svg\",\r\n  \"color-palette.svg\",\r\n  \"color-wand-outline.svg\",\r\n  \"color-wand-sharp.svg\",\r\n  \"color-wand.svg\",\r\n  \"compass-outline.svg\",\r\n  \"compass-sharp.svg\",\r\n  \"compass.svg\",\r\n  \"construct-outline.svg\",\r\n  \"construct-sharp.svg\",\r\n  \"construct.svg\",\r\n  \"contract-outline.svg\",\r\n  \"contract-sharp.svg\",\r\n  \"contract.svg\",\r\n  \"contrast-outline.svg\",\r\n  \"contrast-sharp.svg\",\r\n  \"contrast.svg\",\r\n  \"copy-outline.svg\",\r\n  \"copy-sharp.svg\",\r\n  \"copy.svg\",\r\n  \"create-outline.svg\",\r\n  \"create-sharp.svg\",\r\n  \"create.svg\",\r\n  \"crop-outline.svg\",\r\n  \"crop-sharp.svg\",\r\n  \"crop.svg\",\r\n  \"cube-outline.svg\",\r\n  \"cube-sharp.svg\",\r\n  \"cube.svg\",\r\n  \"cut-outline.svg\",\r\n  \"cut-sharp.svg\",\r\n  \"cut.svg\",\r\n  \"desktop-outline.svg\",\r\n  \"desktop-sharp.svg\",\r\n  \"desktop.svg\",\r\n  \"diamond-outline.svg\",\r\n  \"diamond-sharp.svg\",\r\n  \"diamond.svg\",\r\n  \"dice-outline.svg\",\r\n  \"dice-sharp.svg\",\r\n  \"dice.svg\",\r\n  \"disc-outline.svg\",\r\n  \"disc-sharp.svg\",\r\n  \"disc.svg\",\r\n  \"document-attach-outline.svg\",\r\n  \"document-attach-sharp.svg\",\r\n  \"document-attach.svg\",\r\n  \"document-lock-outline.svg\",\r\n  \"document-lock-sharp.svg\",\r\n  \"document-lock.svg\",\r\n  \"document-outline.svg\",\r\n  \"document-sharp.svg\",\r\n  \"document-text-outline.svg\",\r\n  \"document-text-sharp.svg\",\r\n  \"document-text.svg\",\r\n  \"document.svg\",\r\n  \"documents-outline.svg\",\r\n  \"documents-sharp.svg\",\r\n  \"documents.svg\",\r\n  \"download-outline.svg\",\r\n  \"download-sharp.svg\",\r\n  \"download.svg\",\r\n  \"duplicate-outline.svg\",\r\n  \"duplicate-sharp.svg\",\r\n  \"duplicate.svg\",\r\n  \"ear-outline.svg\",\r\n  \"ear-sharp.svg\",\r\n  \"ear.svg\",\r\n  \"earth-outline.svg\",\r\n  \"earth-sharp.svg\",\r\n  \"earth.svg\",\r\n  \"easel-outline.svg\",\r\n  \"easel-sharp.svg\",\r\n  \"easel.svg\",\r\n  \"egg-outline.svg\",\r\n  \"egg-sharp.svg\",\r\n  \"egg.svg\",\r\n  \"ellipse-outline.svg\",\r\n  \"ellipse-sharp.svg\",\r\n  \"ellipse.svg\",\r\n  \"ellipsis-horizontal-circle-outline.svg\",\r\n  \"ellipsis-horizontal-circle-sharp.svg\",\r\n  \"ellipsis-horizontal-circle.svg\",\r\n  \"ellipsis-horizontal-outline.svg\",\r\n  \"ellipsis-horizontal-sharp.svg\",\r\n  \"ellipsis-horizontal.svg\",\r\n  \"ellipsis-vertical-circle-outline.svg\",\r\n  \"ellipsis-vertical-circle-sharp.svg\",\r\n  \"ellipsis-vertical-circle.svg\",\r\n  \"ellipsis-vertical-outline.svg\",\r\n  \"ellipsis-vertical-sharp.svg\",\r\n  \"ellipsis-vertical.svg\",\r\n  \"enter-outline.svg\",\r\n  \"enter-sharp.svg\",\r\n  \"enter.svg\",\r\n  \"exit-outline.svg\",\r\n  \"exit-sharp.svg\",\r\n  \"exit.svg\",\r\n  \"expand-outline.svg\",\r\n  \"expand-sharp.svg\",\r\n  \"expand.svg\",\r\n  \"extension-puzzle-outline.svg\",\r\n  \"extension-puzzle-sharp.svg\",\r\n  \"extension-puzzle.svg\",\r\n  \"eye-off-outline.svg\",\r\n  \"eye-off-sharp.svg\",\r\n  \"eye-off.svg\",\r\n  \"eye-outline.svg\",\r\n  \"eye-sharp.svg\",\r\n  \"eye.svg\",\r\n  \"eyedrop-outline.svg\",\r\n  \"eyedrop-sharp.svg\",\r\n  \"eyedrop.svg\",\r\n  \"fast-food-outline.svg\",\r\n  \"fast-food-sharp.svg\",\r\n  \"fast-food.svg\",\r\n  \"female-outline.svg\",\r\n  \"female-sharp.svg\",\r\n  \"female.svg\",\r\n  \"file-tray-full-outline.svg\",\r\n  \"file-tray-full-sharp.svg\",\r\n  \"file-tray-full.svg\",\r\n  \"file-tray-outline.svg\",\r\n  \"file-tray-sharp.svg\",\r\n  \"file-tray-stacked-outline.svg\",\r\n  \"file-tray-stacked-sharp.svg\",\r\n  \"file-tray-stacked.svg\",\r\n  \"file-tray.svg\",\r\n  \"film-outline.svg\",\r\n  \"film-sharp.svg\",\r\n  \"film.svg\",\r\n  \"filter-circle-outline.svg\",\r\n  \"filter-circle-sharp.svg\",\r\n  \"filter-circle.svg\",\r\n  \"filter-outline.svg\",\r\n  \"filter-sharp.svg\",\r\n  \"filter.svg\",\r\n  \"finger-print-outline.svg\",\r\n  \"finger-print-sharp.svg\",\r\n  \"finger-print.svg\",\r\n  \"fish-outline.svg\",\r\n  \"fish-sharp.svg\",\r\n  \"fish.svg\",\r\n  \"fitness-outline.svg\",\r\n  \"fitness-sharp.svg\",\r\n  \"fitness.svg\",\r\n  \"flag-outline.svg\",\r\n  \"flag-sharp.svg\",\r\n  \"flag.svg\",\r\n  \"flame-outline.svg\",\r\n  \"flame-sharp.svg\",\r\n  \"flame.svg\",\r\n  \"flash-off-outline.svg\",\r\n  \"flash-off-sharp.svg\",\r\n  \"flash-off.svg\",\r\n  \"flash-outline.svg\",\r\n  \"flash-sharp.svg\",\r\n  \"flash.svg\",\r\n  \"flashlight-outline.svg\",\r\n  \"flashlight-sharp.svg\",\r\n  \"flashlight.svg\",\r\n  \"flask-outline.svg\",\r\n  \"flask-sharp.svg\",\r\n  \"flask.svg\",\r\n  \"flower-outline.svg\",\r\n  \"flower-sharp.svg\",\r\n  \"flower.svg\",\r\n  \"folder-open-outline.svg\",\r\n  \"folder-open-sharp.svg\",\r\n  \"folder-open.svg\",\r\n  \"folder-outline.svg\",\r\n  \"folder-sharp.svg\",\r\n  \"folder.svg\",\r\n  \"football-outline.svg\",\r\n  \"football-sharp.svg\",\r\n  \"football.svg\",\r\n  \"footsteps-outline.svg\",\r\n  \"footsteps-sharp.svg\",\r\n  \"footsteps.svg\",\r\n  \"funnel-outline.svg\",\r\n  \"funnel-sharp.svg\",\r\n  \"funnel.svg\",\r\n  \"game-controller-outline.svg\",\r\n  \"game-controller-sharp.svg\",\r\n  \"game-controller.svg\",\r\n  \"gift-outline.svg\",\r\n  \"gift-sharp.svg\",\r\n  \"gift.svg\",\r\n  \"git-branch-outline.svg\",\r\n  \"git-branch-sharp.svg\",\r\n  \"git-branch.svg\",\r\n  \"git-commit-outline.svg\",\r\n  \"git-commit-sharp.svg\",\r\n  \"git-commit.svg\",\r\n  \"git-compare-outline.svg\",\r\n  \"git-compare-sharp.svg\",\r\n  \"git-compare.svg\",\r\n  \"git-merge-outline.svg\",\r\n  \"git-merge-sharp.svg\",\r\n  \"git-merge.svg\",\r\n  \"git-network-outline.svg\",\r\n  \"git-network-sharp.svg\",\r\n  \"git-network.svg\",\r\n  \"git-pull-request-outline.svg\",\r\n  \"git-pull-request-sharp.svg\",\r\n  \"git-pull-request.svg\",\r\n  \"glasses-outline.svg\",\r\n  \"glasses-sharp.svg\",\r\n  \"glasses.svg\",\r\n  \"globe-outline.svg\",\r\n  \"globe-sharp.svg\",\r\n  \"globe.svg\",\r\n  \"golf-outline.svg\",\r\n  \"golf-sharp.svg\",\r\n  \"golf.svg\",\r\n  \"grid-outline.svg\",\r\n  \"grid-sharp.svg\",\r\n  \"grid.svg\",\r\n  \"hammer-outline.svg\",\r\n  \"hammer-sharp.svg\",\r\n  \"hammer.svg\",\r\n  \"hand-left-outline.svg\",\r\n  \"hand-left-sharp.svg\",\r\n  \"hand-left.svg\",\r\n  \"hand-right-outline.svg\",\r\n  \"hand-right-sharp.svg\",\r\n  \"hand-right.svg\",\r\n  \"happy-outline.svg\",\r\n  \"happy-sharp.svg\",\r\n  \"happy.svg\",\r\n  \"hardware-chip-outline.svg\",\r\n  \"hardware-chip-sharp.svg\",\r\n  \"hardware-chip.svg\",\r\n  \"headset-outline.svg\",\r\n  \"headset-sharp.svg\",\r\n  \"headset.svg\",\r\n  \"heart-circle-outline.svg\",\r\n  \"heart-circle-sharp.svg\",\r\n  \"heart-circle.svg\",\r\n  \"heart-dislike-circle-outline.svg\",\r\n  \"heart-dislike-circle-sharp.svg\",\r\n  \"heart-dislike-circle.svg\",\r\n  \"heart-dislike-outline.svg\",\r\n  \"heart-dislike-sharp.svg\",\r\n  \"heart-dislike.svg\",\r\n  \"heart-half-outline.svg\",\r\n  \"heart-half-sharp.svg\",\r\n  \"heart-half.svg\",\r\n  \"heart-outline.svg\",\r\n  \"heart-sharp.svg\",\r\n  \"heart.svg\",\r\n  \"help-buoy-outline.svg\",\r\n  \"help-buoy-sharp.svg\",\r\n  \"help-buoy.svg\",\r\n  \"help-circle-outline.svg\",\r\n  \"help-circle-sharp.svg\",\r\n  \"help-circle.svg\",\r\n  \"help-outline.svg\",\r\n  \"help-sharp.svg\",\r\n  \"help.svg\",\r\n  \"home-outline.svg\",\r\n  \"home-sharp.svg\",\r\n  \"home.svg\",\r\n  \"hourglass-outline.svg\",\r\n  \"hourglass-sharp.svg\",\r\n  \"hourglass.svg\",\r\n  \"ice-cream-outline.svg\",\r\n  \"ice-cream-sharp.svg\",\r\n  \"ice-cream.svg\",\r\n  \"id-card-outline.svg\",\r\n  \"id-card-sharp.svg\",\r\n  \"id-card.svg\",\r\n  \"image-outline.svg\",\r\n  \"image-sharp.svg\",\r\n  \"image.svg\",\r\n  \"images-outline.svg\",\r\n  \"images-sharp.svg\",\r\n  \"images.svg\",\r\n  \"infinite-outline.svg\",\r\n  \"infinite-sharp.svg\",\r\n  \"infinite.svg\",\r\n  \"information-circle-outline.svg\",\r\n  \"information-circle-sharp.svg\",\r\n  \"information-circle.svg\",\r\n  \"information-outline.svg\",\r\n  \"information-sharp.svg\",\r\n  \"information.svg\",\r\n  \"invert-mode-outline.svg\",\r\n  \"invert-mode-sharp.svg\",\r\n  \"invert-mode.svg\",\r\n  \"journal-outline.svg\",\r\n  \"journal-sharp.svg\",\r\n  \"journal.svg\",\r\n  \"key-outline.svg\",\r\n  \"key-sharp.svg\",\r\n  \"key.svg\",\r\n  \"keypad-outline.svg\",\r\n  \"keypad-sharp.svg\",\r\n  \"keypad.svg\",\r\n  \"language-outline.svg\",\r\n  \"language-sharp.svg\",\r\n  \"language.svg\",\r\n  \"laptop-outline.svg\",\r\n  \"laptop-sharp.svg\",\r\n  \"laptop.svg\",\r\n  \"layers-outline.svg\",\r\n  \"layers-sharp.svg\",\r\n  \"layers.svg\",\r\n  \"leaf-outline.svg\",\r\n  \"leaf-sharp.svg\",\r\n  \"leaf.svg\",\r\n  \"library-outline.svg\",\r\n  \"library-sharp.svg\",\r\n  \"library.svg\",\r\n  \"link-outline.svg\",\r\n  \"link-sharp.svg\",\r\n  \"link.svg\",\r\n  \"list-circle-outline.svg\",\r\n  \"list-circle-sharp.svg\",\r\n  \"list-circle.svg\",\r\n  \"list-outline.svg\",\r\n  \"list-sharp.svg\",\r\n  \"list.svg\",\r\n  \"locate-outline.svg\",\r\n  \"locate-sharp.svg\",\r\n  \"locate.svg\",\r\n  \"location-outline.svg\",\r\n  \"location-sharp.svg\",\r\n  \"location.svg\",\r\n  \"lock-closed-outline.svg\",\r\n  \"lock-closed-sharp.svg\",\r\n  \"lock-closed.svg\",\r\n  \"lock-open-outline.svg\",\r\n  \"lock-open-sharp.svg\",\r\n  \"lock-open.svg\",\r\n  \"log-in-outline.svg\",\r\n  \"log-in-sharp.svg\",\r\n  \"log-in.svg\",\r\n  \"log-out-outline.svg\",\r\n  \"log-out-sharp.svg\",\r\n  \"log-out.svg\",\r\n  \"logo-alipay.svg\",\r\n  \"logo-amazon.svg\",\r\n  \"logo-amplify.svg\",\r\n  \"logo-android.svg\",\r\n  \"logo-angular.svg\",\r\n  \"logo-appflow.svg\",\r\n  \"logo-apple-appstore.svg\",\r\n  \"logo-apple-ar.svg\",\r\n  \"logo-apple.svg\",\r\n  \"logo-behance.svg\",\r\n  \"logo-bitbucket.svg\",\r\n  \"logo-bitcoin.svg\",\r\n  \"logo-buffer.svg\",\r\n  \"logo-capacitor.svg\",\r\n  \"logo-chrome.svg\",\r\n  \"logo-closed-captioning.svg\",\r\n  \"logo-codepen.svg\",\r\n  \"logo-css3.svg\",\r\n  \"logo-designernews.svg\",\r\n  \"logo-deviantart.svg\",\r\n  \"logo-discord.svg\",\r\n  \"logo-docker.svg\",\r\n  \"logo-dribbble.svg\",\r\n  \"logo-dropbox.svg\",\r\n  \"logo-edge.svg\",\r\n  \"logo-electron.svg\",\r\n  \"logo-euro.svg\",\r\n  \"logo-facebook.svg\",\r\n  \"logo-figma.svg\",\r\n  \"logo-firebase.svg\",\r\n  \"logo-firefox.svg\",\r\n  \"logo-flickr.svg\",\r\n  \"logo-foursquare.svg\",\r\n  \"logo-github.svg\",\r\n  \"logo-gitlab.svg\",\r\n  \"logo-google-playstore.svg\",\r\n  \"logo-google.svg\",\r\n  \"logo-hackernews.svg\",\r\n  \"logo-html5.svg\",\r\n  \"logo-instagram.svg\",\r\n  \"logo-ionic.svg\",\r\n  \"logo-ionitron.svg\",\r\n  \"logo-javascript.svg\",\r\n  \"logo-laravel.svg\",\r\n  \"logo-linkedin.svg\",\r\n  \"logo-markdown.svg\",\r\n  \"logo-mastodon.svg\",\r\n  \"logo-medium.svg\",\r\n  \"logo-microsoft.svg\",\r\n  \"logo-no-smoking.svg\",\r\n  \"logo-nodejs.svg\",\r\n  \"logo-npm.svg\",\r\n  \"logo-octocat.svg\",\r\n  \"logo-paypal.svg\",\r\n  \"logo-pinterest.svg\",\r\n  \"logo-playstation.svg\",\r\n  \"logo-pwa.svg\",\r\n  \"logo-python.svg\",\r\n  \"logo-react.svg\",\r\n  \"logo-reddit.svg\",\r\n  \"logo-rss.svg\",\r\n  \"logo-sass.svg\",\r\n  \"logo-skype.svg\",\r\n  \"logo-slack.svg\",\r\n  \"logo-snapchat.svg\",\r\n  \"logo-soundcloud.svg\",\r\n  \"logo-stackoverflow.svg\",\r\n  \"logo-steam.svg\",\r\n  \"logo-stencil.svg\",\r\n  \"logo-tableau.svg\",\r\n  \"logo-threads.svg\",\r\n  \"logo-tiktok.svg\",\r\n  \"logo-trapeze.svg\",\r\n  \"logo-tumblr.svg\",\r\n  \"logo-tux.svg\",\r\n  \"logo-twitch.svg\",\r\n  \"logo-twitter.svg\",\r\n  \"logo-usd.svg\",\r\n  \"logo-venmo.svg\",\r\n  \"logo-vercel.svg\",\r\n  \"logo-vimeo.svg\",\r\n  \"logo-vk.svg\",\r\n  \"logo-vue.svg\",\r\n  \"logo-web-component.svg\",\r\n  \"logo-wechat.svg\",\r\n  \"logo-whatsapp.svg\",\r\n  \"logo-windows.svg\",\r\n  \"logo-wordpress.svg\",\r\n  \"logo-x.svg\",\r\n  \"logo-xbox.svg\",\r\n  \"logo-xing.svg\",\r\n  \"logo-yahoo.svg\",\r\n  \"logo-yen.svg\",\r\n  \"logo-youtube.svg\",\r\n  \"magnet-outline.svg\",\r\n  \"magnet-sharp.svg\",\r\n  \"magnet.svg\",\r\n  \"mail-open-outline.svg\",\r\n  \"mail-open-sharp.svg\",\r\n  \"mail-open.svg\",\r\n  \"mail-outline.svg\",\r\n  \"mail-sharp.svg\",\r\n  \"mail-unread-outline.svg\",\r\n  \"mail-unread-sharp.svg\",\r\n  \"mail-unread.svg\",\r\n  \"mail.svg\",\r\n  \"male-female-outline.svg\",\r\n  \"male-female-sharp.svg\",\r\n  \"male-female.svg\",\r\n  \"male-outline.svg\",\r\n  \"male-sharp.svg\",\r\n  \"male.svg\",\r\n  \"man-outline.svg\",\r\n  \"man-sharp.svg\",\r\n  \"man.svg\",\r\n  \"map-outline.svg\",\r\n  \"map-sharp.svg\",\r\n  \"map.svg\",\r\n  \"medal-outline.svg\",\r\n  \"medal-sharp.svg\",\r\n  \"medal.svg\",\r\n  \"medical-outline.svg\",\r\n  \"medical-sharp.svg\",\r\n  \"medical.svg\",\r\n  \"medkit-outline.svg\",\r\n  \"medkit-sharp.svg\",\r\n  \"medkit.svg\",\r\n  \"megaphone-outline.svg\",\r\n  \"megaphone-sharp.svg\",\r\n  \"megaphone.svg\",\r\n  \"menu-outline.svg\",\r\n  \"menu-sharp.svg\",\r\n  \"menu.svg\",\r\n  \"mic-circle-outline.svg\",\r\n  \"mic-circle-sharp.svg\",\r\n  \"mic-circle.svg\",\r\n  \"mic-off-circle-outline.svg\",\r\n  \"mic-off-circle-sharp.svg\",\r\n  \"mic-off-circle.svg\",\r\n  \"mic-off-outline.svg\",\r\n  \"mic-off-sharp.svg\",\r\n  \"mic-off.svg\",\r\n  \"mic-outline.svg\",\r\n  \"mic-sharp.svg\",\r\n  \"mic.svg\",\r\n  \"moon-outline.svg\",\r\n  \"moon-sharp.svg\",\r\n  \"moon.svg\",\r\n  \"move-outline.svg\",\r\n  \"move-sharp.svg\",\r\n  \"move.svg\",\r\n  \"musical-note-outline.svg\",\r\n  \"musical-note-sharp.svg\",\r\n  \"musical-note.svg\",\r\n  \"musical-notes-outline.svg\",\r\n  \"musical-notes-sharp.svg\",\r\n  \"musical-notes.svg\",\r\n  \"navigate-circle-outline.svg\",\r\n  \"navigate-circle-sharp.svg\",\r\n  \"navigate-circle.svg\",\r\n  \"navigate-outline.svg\",\r\n  \"navigate-sharp.svg\",\r\n  \"navigate.svg\",\r\n  \"newspaper-outline.svg\",\r\n  \"newspaper-sharp.svg\",\r\n  \"newspaper.svg\",\r\n  \"notifications-circle-outline.svg\",\r\n  \"notifications-circle-sharp.svg\",\r\n  \"notifications-circle.svg\",\r\n  \"notifications-off-circle-outline.svg\",\r\n  \"notifications-off-circle-sharp.svg\",\r\n  \"notifications-off-circle.svg\",\r\n  \"notifications-off-outline.svg\",\r\n  \"notifications-off-sharp.svg\",\r\n  \"notifications-off.svg\",\r\n  \"notifications-outline.svg\",\r\n  \"notifications-sharp.svg\",\r\n  \"notifications.svg\",\r\n  \"nuclear-outline.svg\",\r\n  \"nuclear-sharp.svg\",\r\n  \"nuclear.svg\",\r\n  \"nutrition-outline.svg\",\r\n  \"nutrition-sharp.svg\",\r\n  \"nutrition.svg\",\r\n  \"open-outline.svg\",\r\n  \"open-sharp.svg\",\r\n  \"open.svg\",\r\n  \"options-outline.svg\",\r\n  \"options-sharp.svg\",\r\n  \"options.svg\",\r\n  \"paper-plane-outline.svg\",\r\n  \"paper-plane-sharp.svg\",\r\n  \"paper-plane.svg\",\r\n  \"partly-sunny-outline.svg\",\r\n  \"partly-sunny-sharp.svg\",\r\n  \"partly-sunny.svg\",\r\n  \"pause-circle-outline.svg\",\r\n  \"pause-circle-sharp.svg\",\r\n  \"pause-circle.svg\",\r\n  \"pause-outline.svg\",\r\n  \"pause-sharp.svg\",\r\n  \"pause.svg\",\r\n  \"paw-outline.svg\",\r\n  \"paw-sharp.svg\",\r\n  \"paw.svg\",\r\n  \"pencil-outline.svg\",\r\n  \"pencil-sharp.svg\",\r\n  \"pencil.svg\",\r\n  \"people-circle-outline.svg\",\r\n  \"people-circle-sharp.svg\",\r\n  \"people-circle.svg\",\r\n  \"people-outline.svg\",\r\n  \"people-sharp.svg\",\r\n  \"people.svg\",\r\n  \"person-add-outline.svg\",\r\n  \"person-add-sharp.svg\",\r\n  \"person-add.svg\",\r\n  \"person-circle-outline.svg\",\r\n  \"person-circle-sharp.svg\",\r\n  \"person-circle.svg\",\r\n  \"person-outline.svg\",\r\n  \"person-remove-outline.svg\",\r\n  \"person-remove-sharp.svg\",\r\n  \"person-remove.svg\",\r\n  \"person-sharp.svg\",\r\n  \"person.svg\",\r\n  \"phone-landscape-outline.svg\",\r\n  \"phone-landscape-sharp.svg\",\r\n  \"phone-landscape.svg\",\r\n  \"phone-portrait-outline.svg\",\r\n  \"phone-portrait-sharp.svg\",\r\n  \"phone-portrait.svg\",\r\n  \"pie-chart-outline.svg\",\r\n  \"pie-chart-sharp.svg\",\r\n  \"pie-chart.svg\",\r\n  \"pin-outline.svg\",\r\n  \"pin-sharp.svg\",\r\n  \"pin.svg\",\r\n  \"pint-outline.svg\",\r\n  \"pint-sharp.svg\",\r\n  \"pint.svg\",\r\n  \"pizza-outline.svg\",\r\n  \"pizza-sharp.svg\",\r\n  \"pizza.svg\",\r\n  \"planet-outline.svg\",\r\n  \"planet-sharp.svg\",\r\n  \"planet.svg\",\r\n  \"play-back-circle-outline.svg\",\r\n  \"play-back-circle-sharp.svg\",\r\n  \"play-back-circle.svg\",\r\n  \"play-back-outline.svg\",\r\n  \"play-back-sharp.svg\",\r\n  \"play-back.svg\",\r\n  \"play-circle-outline.svg\",\r\n  \"play-circle-sharp.svg\",\r\n  \"play-circle.svg\",\r\n  \"play-forward-circle-outline.svg\",\r\n  \"play-forward-circle-sharp.svg\",\r\n  \"play-forward-circle.svg\",\r\n  \"play-forward-outline.svg\",\r\n  \"play-forward-sharp.svg\",\r\n  \"play-forward.svg\",\r\n  \"play-outline.svg\",\r\n  \"play-sharp.svg\",\r\n  \"play-skip-back-circle-outline.svg\",\r\n  \"play-skip-back-circle-sharp.svg\",\r\n  \"play-skip-back-circle.svg\",\r\n  \"play-skip-back-outline.svg\",\r\n  \"play-skip-back-sharp.svg\",\r\n  \"play-skip-back.svg\",\r\n  \"play-skip-forward-circle-outline.svg\",\r\n  \"play-skip-forward-circle-sharp.svg\",\r\n  \"play-skip-forward-circle.svg\",\r\n  \"play-skip-forward-outline.svg\",\r\n  \"play-skip-forward-sharp.svg\",\r\n  \"play-skip-forward.svg\",\r\n  \"play.svg\",\r\n  \"podium-outline.svg\",\r\n  \"podium-sharp.svg\",\r\n  \"podium.svg\",\r\n  \"power-outline.svg\",\r\n  \"power-sharp.svg\",\r\n  \"power.svg\",\r\n  \"pricetag-outline.svg\",\r\n  \"pricetag-sharp.svg\",\r\n  \"pricetag.svg\",\r\n  \"pricetags-outline.svg\",\r\n  \"pricetags-sharp.svg\",\r\n  \"pricetags.svg\",\r\n  \"print-outline.svg\",\r\n  \"print-sharp.svg\",\r\n  \"print.svg\",\r\n  \"prism-outline.svg\",\r\n  \"prism-sharp.svg\",\r\n  \"prism.svg\",\r\n  \"pulse-outline.svg\",\r\n  \"pulse-sharp.svg\",\r\n  \"pulse.svg\",\r\n  \"push-outline.svg\",\r\n  \"push-sharp.svg\",\r\n  \"push.svg\",\r\n  \"qr-code-outline.svg\",\r\n  \"qr-code-sharp.svg\",\r\n  \"qr-code.svg\",\r\n  \"radio-button-off-outline.svg\",\r\n  \"radio-button-off-sharp.svg\",\r\n  \"radio-button-off.svg\",\r\n  \"radio-button-on-outline.svg\",\r\n  \"radio-button-on-sharp.svg\",\r\n  \"radio-button-on.svg\",\r\n  \"radio-outline.svg\",\r\n  \"radio-sharp.svg\",\r\n  \"radio.svg\",\r\n  \"rainy-outline.svg\",\r\n  \"rainy-sharp.svg\",\r\n  \"rainy.svg\",\r\n  \"reader-outline.svg\",\r\n  \"reader-sharp.svg\",\r\n  \"reader.svg\",\r\n  \"receipt-outline.svg\",\r\n  \"receipt-sharp.svg\",\r\n  \"receipt.svg\",\r\n  \"recording-outline.svg\",\r\n  \"recording-sharp.svg\",\r\n  \"recording.svg\",\r\n  \"refresh-circle-outline.svg\",\r\n  \"refresh-circle-sharp.svg\",\r\n  \"refresh-circle.svg\",\r\n  \"refresh-outline.svg\",\r\n  \"refresh-sharp.svg\",\r\n  \"refresh.svg\",\r\n  \"reload-circle-outline.svg\",\r\n  \"reload-circle-sharp.svg\",\r\n  \"reload-circle.svg\",\r\n  \"reload-outline.svg\",\r\n  \"reload-sharp.svg\",\r\n  \"reload.svg\",\r\n  \"remove-circle-outline.svg\",\r\n  \"remove-circle-sharp.svg\",\r\n  \"remove-circle.svg\",\r\n  \"remove-outline.svg\",\r\n  \"remove-sharp.svg\",\r\n  \"remove.svg\",\r\n  \"reorder-four-outline.svg\",\r\n  \"reorder-four-sharp.svg\",\r\n  \"reorder-four.svg\",\r\n  \"reorder-three-outline.svg\",\r\n  \"reorder-three-sharp.svg\",\r\n  \"reorder-three.svg\",\r\n  \"reorder-two-outline.svg\",\r\n  \"reorder-two-sharp.svg\",\r\n  \"reorder-two.svg\",\r\n  \"repeat-outline.svg\",\r\n  \"repeat-sharp.svg\",\r\n  \"repeat.svg\",\r\n  \"resize-outline.svg\",\r\n  \"resize-sharp.svg\",\r\n  \"resize.svg\",\r\n  \"restaurant-outline.svg\",\r\n  \"restaurant-sharp.svg\",\r\n  \"restaurant.svg\",\r\n  \"return-down-back-outline.svg\",\r\n  \"return-down-back-sharp.svg\",\r\n  \"return-down-back.svg\",\r\n  \"return-down-forward-outline.svg\",\r\n  \"return-down-forward-sharp.svg\",\r\n  \"return-down-forward.svg\",\r\n  \"return-up-back-outline.svg\",\r\n  \"return-up-back-sharp.svg\",\r\n  \"return-up-back.svg\",\r\n  \"return-up-forward-outline.svg\",\r\n  \"return-up-forward-sharp.svg\",\r\n  \"return-up-forward.svg\",\r\n  \"ribbon-outline.svg\",\r\n  \"ribbon-sharp.svg\",\r\n  \"ribbon.svg\",\r\n  \"rocket-outline.svg\",\r\n  \"rocket-sharp.svg\",\r\n  \"rocket.svg\",\r\n  \"rose-outline.svg\",\r\n  \"rose-sharp.svg\",\r\n  \"rose.svg\",\r\n  \"sad-outline.svg\",\r\n  \"sad-sharp.svg\",\r\n  \"sad.svg\",\r\n  \"save-outline.svg\",\r\n  \"save-sharp.svg\",\r\n  \"save.svg\",\r\n  \"scale-outline.svg\",\r\n  \"scale-sharp.svg\",\r\n  \"scale.svg\",\r\n  \"scan-circle-outline.svg\",\r\n  \"scan-circle-sharp.svg\",\r\n  \"scan-circle.svg\",\r\n  \"scan-outline.svg\",\r\n  \"scan-sharp.svg\",\r\n  \"scan.svg\",\r\n  \"school-outline.svg\",\r\n  \"school-sharp.svg\",\r\n  \"school.svg\",\r\n  \"search-circle-outline.svg\",\r\n  \"search-circle-sharp.svg\",\r\n  \"search-circle.svg\",\r\n  \"search-outline.svg\",\r\n  \"search-sharp.svg\",\r\n  \"search.svg\",\r\n  \"send-outline.svg\",\r\n  \"send-sharp.svg\",\r\n  \"send.svg\",\r\n  \"server-outline.svg\",\r\n  \"server-sharp.svg\",\r\n  \"server.svg\",\r\n  \"settings-outline.svg\",\r\n  \"settings-sharp.svg\",\r\n  \"settings.svg\",\r\n  \"shapes-outline.svg\",\r\n  \"shapes-sharp.svg\",\r\n  \"shapes.svg\",\r\n  \"share-outline.svg\",\r\n  \"share-sharp.svg\",\r\n  \"share-social-outline.svg\",\r\n  \"share-social-sharp.svg\",\r\n  \"share-social.svg\",\r\n  \"share.svg\",\r\n  \"shield-checkmark-outline.svg\",\r\n  \"shield-checkmark-sharp.svg\",\r\n  \"shield-checkmark.svg\",\r\n  \"shield-half-outline.svg\",\r\n  \"shield-half-sharp.svg\",\r\n  \"shield-half.svg\",\r\n  \"shield-outline.svg\",\r\n  \"shield-sharp.svg\",\r\n  \"shield.svg\",\r\n  \"shirt-outline.svg\",\r\n  \"shirt-sharp.svg\",\r\n  \"shirt.svg\",\r\n  \"shuffle-outline.svg\",\r\n  \"shuffle-sharp.svg\",\r\n  \"shuffle.svg\",\r\n  \"skull-outline.svg\",\r\n  \"skull-sharp.svg\",\r\n  \"skull.svg\",\r\n  \"snow-outline.svg\",\r\n  \"snow-sharp.svg\",\r\n  \"snow.svg\",\r\n  \"sparkles-outline.svg\",\r\n  \"sparkles-sharp.svg\",\r\n  \"sparkles.svg\",\r\n  \"speedometer-outline.svg\",\r\n  \"speedometer-sharp.svg\",\r\n  \"speedometer.svg\",\r\n  \"square-outline.svg\",\r\n  \"square-sharp.svg\",\r\n  \"square.svg\",\r\n  \"star-half-outline.svg\",\r\n  \"star-half-sharp.svg\",\r\n  \"star-half.svg\",\r\n  \"star-outline.svg\",\r\n  \"star-sharp.svg\",\r\n  \"star.svg\",\r\n  \"stats-chart-outline.svg\",\r\n  \"stats-chart-sharp.svg\",\r\n  \"stats-chart.svg\",\r\n  \"stop-circle-outline.svg\",\r\n  \"stop-circle-sharp.svg\",\r\n  \"stop-circle.svg\",\r\n  \"stop-outline.svg\",\r\n  \"stop-sharp.svg\",\r\n  \"stop.svg\",\r\n  \"stopwatch-outline.svg\",\r\n  \"stopwatch-sharp.svg\",\r\n  \"stopwatch.svg\",\r\n  \"storefront-outline.svg\",\r\n  \"storefront-sharp.svg\",\r\n  \"storefront.svg\",\r\n  \"subway-outline.svg\",\r\n  \"subway-sharp.svg\",\r\n  \"subway.svg\",\r\n  \"sunny-outline.svg\",\r\n  \"sunny-sharp.svg\",\r\n  \"sunny.svg\",\r\n  \"swap-horizontal-outline.svg\",\r\n  \"swap-horizontal-sharp.svg\",\r\n  \"swap-horizontal.svg\",\r\n  \"swap-vertical-outline.svg\",\r\n  \"swap-vertical-sharp.svg\",\r\n  \"swap-vertical.svg\",\r\n  \"sync-circle-outline.svg\",\r\n  \"sync-circle-sharp.svg\",\r\n  \"sync-circle.svg\",\r\n  \"sync-outline.svg\",\r\n  \"sync-sharp.svg\",\r\n  \"sync.svg\",\r\n  \"tablet-landscape-outline.svg\",\r\n  \"tablet-landscape-sharp.svg\",\r\n  \"tablet-landscape.svg\",\r\n  \"tablet-portrait-outline.svg\",\r\n  \"tablet-portrait-sharp.svg\",\r\n  \"tablet-portrait.svg\",\r\n  \"telescope-outline.svg\",\r\n  \"telescope-sharp.svg\",\r\n  \"telescope.svg\",\r\n  \"tennisball-outline.svg\",\r\n  \"tennisball-sharp.svg\",\r\n  \"tennisball.svg\",\r\n  \"terminal-outline.svg\",\r\n  \"terminal-sharp.svg\",\r\n  \"terminal.svg\",\r\n  \"text-outline.svg\",\r\n  \"text-sharp.svg\",\r\n  \"text.svg\",\r\n  \"thermometer-outline.svg\",\r\n  \"thermometer-sharp.svg\",\r\n  \"thermometer.svg\",\r\n  \"thumbs-down-outline.svg\",\r\n  \"thumbs-down-sharp.svg\",\r\n  \"thumbs-down.svg\",\r\n  \"thumbs-up-outline.svg\",\r\n  \"thumbs-up-sharp.svg\",\r\n  \"thumbs-up.svg\",\r\n  \"thunderstorm-outline.svg\",\r\n  \"thunderstorm-sharp.svg\",\r\n  \"thunderstorm.svg\",\r\n  \"ticket-outline.svg\",\r\n  \"ticket-sharp.svg\",\r\n  \"ticket.svg\",\r\n  \"time-outline.svg\",\r\n  \"time-sharp.svg\",\r\n  \"time.svg\",\r\n  \"timer-outline.svg\",\r\n  \"timer-sharp.svg\",\r\n  \"timer.svg\",\r\n  \"today-outline.svg\",\r\n  \"today-sharp.svg\",\r\n  \"today.svg\",\r\n  \"toggle-outline.svg\",\r\n  \"toggle-sharp.svg\",\r\n  \"toggle.svg\",\r\n  \"trail-sign-outline.svg\",\r\n  \"trail-sign-sharp.svg\",\r\n  \"trail-sign.svg\",\r\n  \"train-outline.svg\",\r\n  \"train-sharp.svg\",\r\n  \"train.svg\",\r\n  \"transgender-outline.svg\",\r\n  \"transgender-sharp.svg\",\r\n  \"transgender.svg\",\r\n  \"trash-bin-outline.svg\",\r\n  \"trash-bin-sharp.svg\",\r\n  \"trash-bin.svg\",\r\n  \"trash-outline.svg\",\r\n  \"trash-sharp.svg\",\r\n  \"trash.svg\",\r\n  \"trending-down-outline.svg\",\r\n  \"trending-down-sharp.svg\",\r\n  \"trending-down.svg\",\r\n  \"trending-up-outline.svg\",\r\n  \"trending-up-sharp.svg\",\r\n  \"trending-up.svg\",\r\n  \"triangle-outline.svg\",\r\n  \"triangle-sharp.svg\",\r\n  \"triangle.svg\",\r\n  \"trophy-outline.svg\",\r\n  \"trophy-sharp.svg\",\r\n  \"trophy.svg\",\r\n  \"tv-outline.svg\",\r\n  \"tv-sharp.svg\",\r\n  \"tv.svg\",\r\n  \"umbrella-outline.svg\",\r\n  \"umbrella-sharp.svg\",\r\n  \"umbrella.svg\",\r\n  \"unlink-outline.svg\",\r\n  \"unlink-sharp.svg\",\r\n  \"unlink.svg\",\r\n  \"videocam-off-outline.svg\",\r\n  \"videocam-off-sharp.svg\",\r\n  \"videocam-off.svg\",\r\n  \"videocam-outline.svg\",\r\n  \"videocam-sharp.svg\",\r\n  \"videocam.svg\",\r\n  \"volume-high-outline.svg\",\r\n  \"volume-high-sharp.svg\",\r\n  \"volume-high.svg\",\r\n  \"volume-low-outline.svg\",\r\n  \"volume-low-sharp.svg\",\r\n  \"volume-low.svg\",\r\n  \"volume-medium-outline.svg\",\r\n  \"volume-medium-sharp.svg\",\r\n  \"volume-medium.svg\",\r\n  \"volume-mute-outline.svg\",\r\n  \"volume-mute-sharp.svg\",\r\n  \"volume-mute.svg\",\r\n  \"volume-off-outline.svg\",\r\n  \"volume-off-sharp.svg\",\r\n  \"volume-off.svg\",\r\n  \"walk-outline.svg\",\r\n  \"walk-sharp.svg\",\r\n  \"walk.svg\",\r\n  \"wallet-outline.svg\",\r\n  \"wallet-sharp.svg\",\r\n  \"wallet.svg\",\r\n  \"warning-outline.svg\",\r\n  \"warning-sharp.svg\",\r\n  \"warning.svg\",\r\n  \"watch-outline.svg\",\r\n  \"watch-sharp.svg\",\r\n  \"watch.svg\",\r\n  \"water-outline.svg\",\r\n  \"water-sharp.svg\",\r\n  \"water.svg\",\r\n  \"wifi-outline.svg\",\r\n  \"wifi-sharp.svg\",\r\n  \"wifi.svg\",\r\n  \"wine-outline.svg\",\r\n  \"wine-sharp.svg\",\r\n  \"wine.svg\",\r\n  \"woman-outline.svg\",\r\n  \"woman-sharp.svg\",\r\n  \"woman.svg\"\r\n];","export const lstFluenticons = [\r\n  \"fluent-access-time-outline.svg\",\r\n  \"fluent-access-time.svg\",\r\n  \"fluent-accessibility-checkmark.svg\",\r\n  \"fluent-accessibility-error.svg\",\r\n  \"fluent-accessibility-more.svg\",\r\n  \"fluent-accessibility-outline.svg\",\r\n  \"fluent-accessibility.svg\",\r\n  \"fluent-add-circle-outline.svg\",\r\n  \"fluent-add-circle.svg\",\r\n  \"fluent-add-outline.svg\",\r\n  \"fluent-add-square-multiple.svg\",\r\n  \"fluent-add-square-outline.svg\",\r\n  \"fluent-add-square.svg\",\r\n  \"fluent-add-subtract-circle.svg\",\r\n  \"fluent-add.svg\",\r\n  \"fluent-airplane-landing-outline.svg\",\r\n  \"fluent-airplane-landing.svg\",\r\n  \"fluent-airplane-outline.svg\",\r\n  \"fluent-airplane-take-off-outline.svg\",\r\n  \"fluent-airplane-take-off.svg\",\r\n  \"fluent-airplane.svg\",\r\n  \"fluent-album-add-outline.svg\",\r\n  \"fluent-album-add.svg\",\r\n  \"fluent-album-outline.svg\",\r\n  \"fluent-album.svg\",\r\n  \"fluent-alert-badge-outline.svg\",\r\n  \"fluent-alert-badge.svg\",\r\n  \"fluent-alert-off-outline.svg\",\r\n  \"fluent-alert-off.svg\",\r\n  \"fluent-alert-on-outline.svg\",\r\n  \"fluent-alert-on.svg\",\r\n  \"fluent-alert-outline.svg\",\r\n  \"fluent-alert-snooze-outline.svg\",\r\n  \"fluent-alert-snooze.svg\",\r\n  \"fluent-alert-urgent-outline.svg\",\r\n  \"fluent-alert-urgent.svg\",\r\n  \"fluent-alert.svg\",\r\n  \"fluent-align-bottom-outline.svg\",\r\n  \"fluent-align-bottom.svg\",\r\n  \"fluent-align-center-horizontal.svg\",\r\n  \"fluent-align-center-vertical.svg\",\r\n  \"fluent-align-left-outline.svg\",\r\n  \"fluent-align-left.svg\",\r\n  \"fluent-align-right-outline.svg\",\r\n  \"fluent-align-right.svg\",\r\n  \"fluent-align-straighten-outline.svg\",\r\n  \"fluent-align-straighten.svg\",\r\n  \"fluent-align-top-outline.svg\",\r\n  \"fluent-align-top.svg\",\r\n  \"fluent-animal-cat-outline.svg\",\r\n  \"fluent-animal-cat.svg\",\r\n  \"fluent-animal-dog-outline.svg\",\r\n  \"fluent-animal-dog.svg\",\r\n  \"fluent-animal-rabbit-outline.svg\",\r\n  \"fluent-animal-rabbit.svg\",\r\n  \"fluent-animal-turtle-outline.svg\",\r\n  \"fluent-animal-turtle.svg\",\r\n  \"fluent-app-folder-outline.svg\",\r\n  \"fluent-app-folder.svg\",\r\n  \"fluent-app-generic-outline.svg\",\r\n  \"fluent-app-generic.svg\",\r\n  \"fluent-app-recent-outline.svg\",\r\n  \"fluent-app-recent.svg\",\r\n  \"fluent-app-store-outline.svg\",\r\n  \"fluent-app-store.svg\",\r\n  \"fluent-app-title-outline.svg\",\r\n  \"fluent-app-title.svg\",\r\n  \"fluent-approvals-app-outline.svg\",\r\n  \"fluent-approvals-app.svg\",\r\n  \"fluent-apps-add-in-outline.svg\",\r\n  \"fluent-apps-add-in.svg\",\r\n  \"fluent-apps-list-detail-outline.svg\",\r\n  \"fluent-apps-list-detail.svg\",\r\n  \"fluent-apps-list-outline.svg\",\r\n  \"fluent-apps-list.svg\",\r\n  \"fluent-apps-outline.svg\",\r\n  \"fluent-apps.svg\",\r\n  \"fluent-archive-arrow-back.svg\",\r\n  \"fluent-archive-multiple-outline.svg\",\r\n  \"fluent-archive-multiple.svg\",\r\n  \"fluent-archive-outline.svg\",\r\n  \"fluent-archive-settings-outline.svg\",\r\n  \"fluent-archive-settings.svg\",\r\n  \"fluent-archive.svg\",\r\n  \"fluent-arrow-autofit-content.svg\",\r\n  \"fluent-arrow-autofit-down.svg\",\r\n  \"fluent-arrow-autofit-height-in.svg\",\r\n  \"fluent-arrow-autofit-height.svg\",\r\n  \"fluent-arrow-autofit-up-outline.svg\",\r\n  \"fluent-arrow-autofit-up.svg\",\r\n  \"fluent-arrow-autofit-width.svg\",\r\n  \"fluent-arrow-between-down.svg\",\r\n  \"fluent-arrow-bounce-outline.svg\",\r\n  \"fluent-arrow-bounce.svg\",\r\n  \"fluent-arrow-circle-down-double.svg\",\r\n  \"fluent-arrow-circle-down-outline.svg\",\r\n  \"fluent-arrow-circle-down-right.svg\",\r\n  \"fluent-arrow-circle-down-split.svg\",\r\n  \"fluent-arrow-circle-down.svg\",\r\n  \"fluent-arrow-circle-left-outline.svg\",\r\n  \"fluent-arrow-circle-left.svg\",\r\n  \"fluent-arrow-circle-right.svg\",\r\n  \"fluent-arrow-circle-up-left.svg\",\r\n  \"fluent-arrow-circle-up-outline.svg\",\r\n  \"fluent-arrow-circle-up-right.svg\",\r\n  \"fluent-arrow-circle-up.svg\",\r\n  \"fluent-arrow-clockwise-dashes.svg\",\r\n  \"fluent-arrow-clockwise-outline.svg\",\r\n  \"fluent-arrow-clockwise.svg\",\r\n  \"fluent-arrow-collapse-all.svg\",\r\n  \"fluent-arrow-counterclockwise.svg\",\r\n  \"fluent-arrow-curve-down-left.svg\",\r\n  \"fluent-arrow-down-exclamation.svg\",\r\n  \"fluent-arrow-down-left-outline.svg\",\r\n  \"fluent-arrow-down-left.svg\",\r\n  \"fluent-arrow-down-outline.svg\",\r\n  \"fluent-arrow-down.svg\",\r\n  \"fluent-arrow-download-off.svg\",\r\n  \"fluent-arrow-download-outline.svg\",\r\n  \"fluent-arrow-download.svg\",\r\n  \"fluent-arrow-enter-left-outline.svg\",\r\n  \"fluent-arrow-enter-left.svg\",\r\n  \"fluent-arrow-enter-up-outline.svg\",\r\n  \"fluent-arrow-enter-up.svg\",\r\n  \"fluent-arrow-expand-all-outline.svg\",\r\n  \"fluent-arrow-expand-all.svg\",\r\n  \"fluent-arrow-expand-outline.svg\",\r\n  \"fluent-arrow-expand.svg\",\r\n  \"fluent-arrow-export-ltr-outline.svg\",\r\n  \"fluent-arrow-export-ltr.svg\",\r\n  \"fluent-arrow-export-outline.svg\",\r\n  \"fluent-arrow-export-rtl-outline.svg\",\r\n  \"fluent-arrow-export-rtl.svg\",\r\n  \"fluent-arrow-export-up-outline.svg\",\r\n  \"fluent-arrow-export-up.svg\",\r\n  \"fluent-arrow-export.svg\",\r\n  \"fluent-arrow-fit-in-outline.svg\",\r\n  \"fluent-arrow-fit-in.svg\",\r\n  \"fluent-arrow-fit-outline.svg\",\r\n  \"fluent-arrow-fit.svg\",\r\n  \"fluent-arrow-flow-up-right.svg\",\r\n  \"fluent-arrow-forward-down-person.svg\",\r\n  \"fluent-arrow-forward-outline.svg\",\r\n  \"fluent-arrow-forward.svg\",\r\n  \"fluent-arrow-hook-down-left.svg\",\r\n  \"fluent-arrow-hook-down-right.svg\",\r\n  \"fluent-arrow-hook-up-left.svg\",\r\n  \"fluent-arrow-hook-up-right.svg\",\r\n  \"fluent-arrow-import-outline.svg\",\r\n  \"fluent-arrow-import.svg\",\r\n  \"fluent-arrow-left-outline.svg\",\r\n  \"fluent-arrow-left.svg\",\r\n  \"fluent-arrow-maximize-outline.svg\",\r\n  \"fluent-arrow-maximize-vertical.svg\",\r\n  \"fluent-arrow-maximize.svg\",\r\n  \"fluent-arrow-minimize-outline.svg\",\r\n  \"fluent-arrow-minimize-vertical.svg\",\r\n  \"fluent-arrow-minimize.svg\",\r\n  \"fluent-arrow-move-outline.svg\",\r\n  \"fluent-arrow-move.svg\",\r\n  \"fluent-arrow-next-outline.svg\",\r\n  \"fluent-arrow-next.svg\",\r\n  \"fluent-arrow-outline-down-left.svg\",\r\n  \"fluent-arrow-outline-up-right.svg\",\r\n  \"fluent-arrow-paragraph-outline.svg\",\r\n  \"fluent-arrow-paragraph.svg\",\r\n  \"fluent-arrow-previous-outline.svg\",\r\n  \"fluent-arrow-previous.svg\",\r\n  \"fluent-arrow-redo-outline.svg\",\r\n  \"fluent-arrow-redo.svg\",\r\n  \"fluent-arrow-repeat-1-outline.svg\",\r\n  \"fluent-arrow-repeat-1.svg\",\r\n  \"fluent-arrow-repeat-all-off.svg\",\r\n  \"fluent-arrow-repeat-all-outline.svg\",\r\n  \"fluent-arrow-repeat-all.svg\",\r\n  \"fluent-arrow-reply-all-outline.svg\",\r\n  \"fluent-arrow-reply-all.svg\",\r\n  \"fluent-arrow-reply-down-outline.svg\",\r\n  \"fluent-arrow-reply-down.svg\",\r\n  \"fluent-arrow-reply-outline.svg\",\r\n  \"fluent-arrow-reply.svg\",\r\n  \"fluent-arrow-reset-outline.svg\",\r\n  \"fluent-arrow-reset.svg\",\r\n  \"fluent-arrow-right-outline.svg\",\r\n  \"fluent-arrow-right.svg\",\r\n  \"fluent-arrow-rotate-clockwise.svg\",\r\n  \"fluent-arrow-routing-outline.svg\",\r\n  \"fluent-arrow-routing.svg\",\r\n  \"fluent-arrow-shuffle-off-outline.svg\",\r\n  \"fluent-arrow-shuffle-off.svg\",\r\n  \"fluent-arrow-shuffle-outline.svg\",\r\n  \"fluent-arrow-shuffle.svg\",\r\n  \"fluent-arrow-sort-down-lines.svg\",\r\n  \"fluent-arrow-sort-down-outline.svg\",\r\n  \"fluent-arrow-sort-down.svg\",\r\n  \"fluent-arrow-sort-outline.svg\",\r\n  \"fluent-arrow-sort-up-lines.svg\",\r\n  \"fluent-arrow-sort-up-outline.svg\",\r\n  \"fluent-arrow-sort-up.svg\",\r\n  \"fluent-arrow-sort.svg\",\r\n  \"fluent-arrow-split-outline.svg\",\r\n  \"fluent-arrow-split.svg\",\r\n  \"fluent-arrow-square-down-outline.svg\",\r\n  \"fluent-arrow-square-down.svg\",\r\n  \"fluent-arrow-square-up-right.svg\",\r\n  \"fluent-arrow-step-in-left.svg\",\r\n  \"fluent-arrow-step-in-outline.svg\",\r\n  \"fluent-arrow-step-in-right.svg\",\r\n  \"fluent-arrow-step-in.svg\",\r\n  \"fluent-arrow-step-out-outline.svg\",\r\n  \"fluent-arrow-step-out.svg\",\r\n  \"fluent-arrow-swap-outline.svg\",\r\n  \"fluent-arrow-swap.svg\",\r\n  \"fluent-arrow-sync-checkmark.svg\",\r\n  \"fluent-arrow-sync-circle-outline.svg\",\r\n  \"fluent-arrow-sync-circle.svg\",\r\n  \"fluent-arrow-sync-dismiss.svg\",\r\n  \"fluent-arrow-sync-outline.svg\",\r\n  \"fluent-arrow-sync.svg\",\r\n  \"fluent-arrow-trending-checkmark.svg\",\r\n  \"fluent-arrow-trending-down.svg\",\r\n  \"fluent-arrow-trending-lines.svg\",\r\n  \"fluent-arrow-trending-outline.svg\",\r\n  \"fluent-arrow-trending-settings.svg\",\r\n  \"fluent-arrow-trending-sparkle.svg\",\r\n  \"fluent-arrow-trending-text.svg\",\r\n  \"fluent-arrow-trending-wrench.svg\",\r\n  \"fluent-arrow-trending.svg\",\r\n  \"fluent-arrow-turn-right-outline.svg\",\r\n  \"fluent-arrow-turn-right.svg\",\r\n  \"fluent-arrow-undo-outline.svg\",\r\n  \"fluent-arrow-undo.svg\",\r\n  \"fluent-arrow-up-exclamation.svg\",\r\n  \"fluent-arrow-up-left-outline.svg\",\r\n  \"fluent-arrow-up-left.svg\",\r\n  \"fluent-arrow-up-outline.svg\",\r\n  \"fluent-arrow-up-right-outline.svg\",\r\n  \"fluent-arrow-up-right.svg\",\r\n  \"fluent-arrow-up-square-settings.svg\",\r\n  \"fluent-arrow-up.svg\",\r\n  \"fluent-arrow-upload-outline.svg\",\r\n  \"fluent-arrow-upload.svg\",\r\n  \"fluent-arrows-bidirectional.svg\",\r\n  \"fluent-attach-arrow-right.svg\",\r\n  \"fluent-attach-outline.svg\",\r\n  \"fluent-attach-text-outline.svg\",\r\n  \"fluent-attach-text.svg\",\r\n  \"fluent-attach.svg\",\r\n  \"fluent-auto-fit-height-outline.svg\",\r\n  \"fluent-auto-fit-height.svg\",\r\n  \"fluent-auto-fit-width-outline.svg\",\r\n  \"fluent-auto-fit-width.svg\",\r\n  \"fluent-autocorrect-outline.svg\",\r\n  \"fluent-autocorrect.svg\",\r\n  \"fluent-autosum-outline.svg\",\r\n  \"fluent-autosum.svg\",\r\n  \"fluent-backpack-add-outline.svg\",\r\n  \"fluent-backpack-add.svg\",\r\n  \"fluent-backpack-outline.svg\",\r\n  \"fluent-backpack.svg\",\r\n  \"fluent-backspace-outline.svg\",\r\n  \"fluent-backspace.svg\",\r\n  \"fluent-badge-outline.svg\",\r\n  \"fluent-badge.svg\",\r\n  \"fluent-balloon-outline.svg\",\r\n  \"fluent-balloon.svg\",\r\n  \"fluent-barcode-scanner-outline.svg\",\r\n  \"fluent-barcode-scanner.svg\",\r\n  \"fluent-battery-0-outline.svg\",\r\n  \"fluent-battery-0.svg\",\r\n  \"fluent-battery-1-outline.svg\",\r\n  \"fluent-battery-1.svg\",\r\n  \"fluent-battery-10-outline.svg\",\r\n  \"fluent-battery-10.svg\",\r\n  \"fluent-battery-2-outline.svg\",\r\n  \"fluent-battery-2.svg\",\r\n  \"fluent-battery-3-outline.svg\",\r\n  \"fluent-battery-3.svg\",\r\n  \"fluent-battery-4-outline.svg\",\r\n  \"fluent-battery-4.svg\",\r\n  \"fluent-battery-5-outline.svg\",\r\n  \"fluent-battery-5.svg\",\r\n  \"fluent-battery-6-outline.svg\",\r\n  \"fluent-battery-6.svg\",\r\n  \"fluent-battery-7-outline.svg\",\r\n  \"fluent-battery-7.svg\",\r\n  \"fluent-battery-8-outline.svg\",\r\n  \"fluent-battery-8.svg\",\r\n  \"fluent-battery-9-outline.svg\",\r\n  \"fluent-battery-9.svg\",\r\n  \"fluent-battery-charge-outline.svg\",\r\n  \"fluent-battery-charge.svg\",\r\n  \"fluent-battery-checkmark-outline.svg\",\r\n  \"fluent-battery-checkmark.svg\",\r\n  \"fluent-battery-saver-outline.svg\",\r\n  \"fluent-battery-saver.svg\",\r\n  \"fluent-battery-warning-outline.svg\",\r\n  \"fluent-battery-warning.svg\",\r\n  \"fluent-beach-outline.svg\",\r\n  \"fluent-beach.svg\",\r\n  \"fluent-beaker-add-outline.svg\",\r\n  \"fluent-beaker-add.svg\",\r\n  \"fluent-beaker-dismiss-outline.svg\",\r\n  \"fluent-beaker-dismiss.svg\",\r\n  \"fluent-beaker-edit-outline.svg\",\r\n  \"fluent-beaker-edit.svg\",\r\n  \"fluent-beaker-outline.svg\",\r\n  \"fluent-beaker.svg\",\r\n  \"fluent-bed-outline.svg\",\r\n  \"fluent-bed.svg\",\r\n  \"fluent-bench-outline.svg\",\r\n  \"fluent-bench.svg\",\r\n  \"fluent-bin-full-outline.svg\",\r\n  \"fluent-bin-full.svg\",\r\n  \"fluent-bin-recycle-full-outline.svg\",\r\n  \"fluent-bin-recycle-full.svg\",\r\n  \"fluent-bin-recycle-outline.svg\",\r\n  \"fluent-bin-recycle.svg\",\r\n  \"fluent-binder-triangle-outline.svg\",\r\n  \"fluent-binder-triangle.svg\",\r\n  \"fluent-bluetooth-connected.svg\",\r\n  \"fluent-bluetooth-disabled.svg\",\r\n  \"fluent-bluetooth-outline.svg\",\r\n  \"fluent-bluetooth-searching.svg\",\r\n  \"fluent-bluetooth.svg\",\r\n  \"fluent-blur-outline.svg\",\r\n  \"fluent-blur.svg\",\r\n  \"fluent-board-heart-outline.svg\",\r\n  \"fluent-board-heart.svg\",\r\n  \"fluent-board-outline.svg\",\r\n  \"fluent-board-split-outline.svg\",\r\n  \"fluent-board-split.svg\",\r\n  \"fluent-board.svg\",\r\n  \"fluent-book-add-outline.svg\",\r\n  \"fluent-book-add.svg\",\r\n  \"fluent-book-arrow-clockwise.svg\",\r\n  \"fluent-book-clock-outline.svg\",\r\n  \"fluent-book-clock.svg\",\r\n  \"fluent-book-coins-outline.svg\",\r\n  \"fluent-book-coins.svg\",\r\n  \"fluent-book-compass-outline.svg\",\r\n  \"fluent-book-compass.svg\",\r\n  \"fluent-book-contacts-outline.svg\",\r\n  \"fluent-book-contacts.svg\",\r\n  \"fluent-book-database-outline.svg\",\r\n  \"fluent-book-database.svg\",\r\n  \"fluent-book-exclamation-mark.svg\",\r\n  \"fluent-book-globe-outline.svg\",\r\n  \"fluent-book-globe.svg\",\r\n  \"fluent-book-information-outline.svg\",\r\n  \"fluent-book-information.svg\",\r\n  \"fluent-book-letter-outline.svg\",\r\n  \"fluent-book-letter.svg\",\r\n  \"fluent-book-number-outline.svg\",\r\n  \"fluent-book-number.svg\",\r\n  \"fluent-book-open-globe-outline.svg\",\r\n  \"fluent-book-open-globe.svg\",\r\n  \"fluent-book-open-microphone.svg\",\r\n  \"fluent-book-open-outline.svg\",\r\n  \"fluent-book-open.svg\",\r\n  \"fluent-book-outline.svg\",\r\n  \"fluent-book-pulse-outline.svg\",\r\n  \"fluent-book-pulse.svg\",\r\n  \"fluent-book-question-mark-rtl.svg\",\r\n  \"fluent-book-question-mark.svg\",\r\n  \"fluent-book-search-outline.svg\",\r\n  \"fluent-book-search.svg\",\r\n  \"fluent-book-star-outline.svg\",\r\n  \"fluent-book-star.svg\",\r\n  \"fluent-book-theta-outline.svg\",\r\n  \"fluent-book-theta.svg\",\r\n  \"fluent-book-toolbox-outline.svg\",\r\n  \"fluent-book-toolbox.svg\",\r\n  \"fluent-book.svg\",\r\n  \"fluent-bookmark-add-outline.svg\",\r\n  \"fluent-bookmark-add.svg\",\r\n  \"fluent-bookmark-multiple-outline.svg\",\r\n  \"fluent-bookmark-multiple.svg\",\r\n  \"fluent-bookmark-off-outline.svg\",\r\n  \"fluent-bookmark-off.svg\",\r\n  \"fluent-bookmark-outline.svg\",\r\n  \"fluent-bookmark-search-outline.svg\",\r\n  \"fluent-bookmark-search.svg\",\r\n  \"fluent-bookmark.svg\",\r\n  \"fluent-border-all-outline.svg\",\r\n  \"fluent-border-all.svg\",\r\n  \"fluent-border-bottom-double.svg\",\r\n  \"fluent-border-bottom-outline.svg\",\r\n  \"fluent-border-bottom-thick.svg\",\r\n  \"fluent-border-bottom.svg\",\r\n  \"fluent-border-inside-outline.svg\",\r\n  \"fluent-border-inside.svg\",\r\n  \"fluent-border-left-outline.svg\",\r\n  \"fluent-border-left-right-outline.svg\",\r\n  \"fluent-border-left-right.svg\",\r\n  \"fluent-border-left.svg\",\r\n  \"fluent-border-none-outline.svg\",\r\n  \"fluent-border-none.svg\",\r\n  \"fluent-border-outside-outline.svg\",\r\n  \"fluent-border-outside-thick.svg\",\r\n  \"fluent-border-outside.svg\",\r\n  \"fluent-border-right-outline.svg\",\r\n  \"fluent-border-right.svg\",\r\n  \"fluent-border-top-bottom-double.svg\",\r\n  \"fluent-border-top-bottom-outline.svg\",\r\n  \"fluent-border-top-bottom-thick.svg\",\r\n  \"fluent-border-top-bottom.svg\",\r\n  \"fluent-border-top-outline.svg\",\r\n  \"fluent-border-top.svg\",\r\n  \"fluent-bot-add-outline.svg\",\r\n  \"fluent-bot-add.svg\",\r\n  \"fluent-bot-outline.svg\",\r\n  \"fluent-bot-sparkle-outline.svg\",\r\n  \"fluent-bot-sparkle.svg\",\r\n  \"fluent-bot.svg\",\r\n  \"fluent-bow-tie-outline.svg\",\r\n  \"fluent-bow-tie.svg\",\r\n  \"fluent-bowl-chopsticks-outline.svg\",\r\n  \"fluent-bowl-chopsticks.svg\",\r\n  \"fluent-bowl-salad-outline.svg\",\r\n  \"fluent-bowl-salad.svg\",\r\n  \"fluent-box-arrow-left-outline.svg\",\r\n  \"fluent-box-arrow-left.svg\",\r\n  \"fluent-box-arrow-up-outline.svg\",\r\n  \"fluent-box-arrow-up.svg\",\r\n  \"fluent-box-checkmark-outline.svg\",\r\n  \"fluent-box-checkmark.svg\",\r\n  \"fluent-box-dismiss-outline.svg\",\r\n  \"fluent-box-dismiss.svg\",\r\n  \"fluent-box-edit-outline.svg\",\r\n  \"fluent-box-edit.svg\",\r\n  \"fluent-box-multiple-arrow-left.svg\",\r\n  \"fluent-box-multiple-arrow-right.svg\",\r\n  \"fluent-box-multiple-checkmark.svg\",\r\n  \"fluent-box-multiple-outline.svg\",\r\n  \"fluent-box-multiple-search.svg\",\r\n  \"fluent-box-multiple.svg\",\r\n  \"fluent-box-outline.svg\",\r\n  \"fluent-box-search-outline.svg\",\r\n  \"fluent-box-search.svg\",\r\n  \"fluent-box-toolbox-outline.svg\",\r\n  \"fluent-box-toolbox.svg\",\r\n  \"fluent-box.svg\",\r\n  \"fluent-braces-outline.svg\",\r\n  \"fluent-braces-variable-outline.svg\",\r\n  \"fluent-braces-variable.svg\",\r\n  \"fluent-braces.svg\",\r\n  \"fluent-brain-circuit-outline.svg\",\r\n  \"fluent-brain-circuit.svg\",\r\n  \"fluent-branch-compare-outline.svg\",\r\n  \"fluent-branch-compare.svg\",\r\n  \"fluent-branch-fork-hint-outline.svg\",\r\n  \"fluent-branch-fork-hint.svg\",\r\n  \"fluent-branch-fork-link-outline.svg\",\r\n  \"fluent-branch-fork-link.svg\",\r\n  \"fluent-branch-fork-outline.svg\",\r\n  \"fluent-branch-fork.svg\",\r\n  \"fluent-branch-outline.svg\",\r\n  \"fluent-branch.svg\",\r\n  \"fluent-breakout-room-outline.svg\",\r\n  \"fluent-breakout-room.svg\",\r\n  \"fluent-briefcase-medical-outline.svg\",\r\n  \"fluent-briefcase-medical.svg\",\r\n  \"fluent-briefcase-off-outline.svg\",\r\n  \"fluent-briefcase-off.svg\",\r\n  \"fluent-briefcase-outline.svg\",\r\n  \"fluent-briefcase-person-outline.svg\",\r\n  \"fluent-briefcase-person.svg\",\r\n  \"fluent-briefcase-search-outline.svg\",\r\n  \"fluent-briefcase-search.svg\",\r\n  \"fluent-briefcase.svg\",\r\n  \"fluent-brightness-high-outline.svg\",\r\n  \"fluent-brightness-high.svg\",\r\n  \"fluent-brightness-low-outline.svg\",\r\n  \"fluent-brightness-low.svg\",\r\n  \"fluent-broad-activity-feed.svg\",\r\n  \"fluent-broom-outline.svg\",\r\n  \"fluent-broom.svg\",\r\n  \"fluent-bug-outline.svg\",\r\n  \"fluent-bug.svg\",\r\n  \"fluent-building-bank-link.svg\",\r\n  \"fluent-building-bank-outline.svg\",\r\n  \"fluent-building-bank-toolbox.svg\",\r\n  \"fluent-building-bank.svg\",\r\n  \"fluent-building-cloud-outline.svg\",\r\n  \"fluent-building-cloud.svg\",\r\n  \"fluent-building-desktop-outline.svg\",\r\n  \"fluent-building-desktop.svg\",\r\n  \"fluent-building-factory-outline.svg\",\r\n  \"fluent-building-factory.svg\",\r\n  \"fluent-building-government.svg\",\r\n  \"fluent-building-home-outline.svg\",\r\n  \"fluent-building-home.svg\",\r\n  \"fluent-building-lighthouse.svg\",\r\n  \"fluent-building-mosque-outline.svg\",\r\n  \"fluent-building-mosque.svg\",\r\n  \"fluent-building-multiple-outline.svg\",\r\n  \"fluent-building-multiple.svg\",\r\n  \"fluent-building-outline.svg\",\r\n  \"fluent-building-people-outline.svg\",\r\n  \"fluent-building-people.svg\",\r\n  \"fluent-building-retail-money.svg\",\r\n  \"fluent-building-retail-more.svg\",\r\n  \"fluent-building-retail-outline.svg\",\r\n  \"fluent-building-retail-shield.svg\",\r\n  \"fluent-building-retail-toolbox.svg\",\r\n  \"fluent-building-retail.svg\",\r\n  \"fluent-building-shop-outline.svg\",\r\n  \"fluent-building-shop.svg\",\r\n  \"fluent-building-skyscraper.svg\",\r\n  \"fluent-building-swap-outline.svg\",\r\n  \"fluent-building-swap.svg\",\r\n  \"fluent-building-townhouse.svg\",\r\n  \"fluent-building.svg\",\r\n  \"fluent-calculator-multiple.svg\",\r\n  \"fluent-calculator-outline.svg\",\r\n  \"fluent-calculator.svg\",\r\n  \"fluent-calendar-3-day-outline.svg\",\r\n  \"fluent-calendar-3-day.svg\",\r\n  \"fluent-calendar-add-outline.svg\",\r\n  \"fluent-calendar-add.svg\",\r\n  \"fluent-calendar-agenda-outline.svg\",\r\n  \"fluent-calendar-agenda.svg\",\r\n  \"fluent-calendar-arrow-down.svg\",\r\n  \"fluent-calendar-arrow-repeat-all.svg\",\r\n  \"fluent-calendar-arrow-right.svg\",\r\n  \"fluent-calendar-assistant.svg\",\r\n  \"fluent-calendar-cancel-outline.svg\",\r\n  \"fluent-calendar-cancel.svg\",\r\n  \"fluent-calendar-chat-outline.svg\",\r\n  \"fluent-calendar-chat.svg\",\r\n  \"fluent-calendar-checkmark.svg\",\r\n  \"fluent-calendar-clock-outline.svg\",\r\n  \"fluent-calendar-clock.svg\",\r\n  \"fluent-calendar-data-bar-outline.svg\",\r\n  \"fluent-calendar-data-bar.svg\",\r\n  \"fluent-calendar-date-outline.svg\",\r\n  \"fluent-calendar-date.svg\",\r\n  \"fluent-calendar-day-outline.svg\",\r\n  \"fluent-calendar-day.svg\",\r\n  \"fluent-calendar-edit-outline.svg\",\r\n  \"fluent-calendar-edit.svg\",\r\n  \"fluent-calendar-empty-outline.svg\",\r\n  \"fluent-calendar-empty.svg\",\r\n  \"fluent-calendar-error-outline.svg\",\r\n  \"fluent-calendar-error.svg\",\r\n  \"fluent-calendar-link-outline.svg\",\r\n  \"fluent-calendar-link.svg\",\r\n  \"fluent-calendar-lock-outline.svg\",\r\n  \"fluent-calendar-lock.svg\",\r\n  \"fluent-calendar-ltr-outline.svg\",\r\n  \"fluent-calendar-ltr.svg\",\r\n  \"fluent-calendar-month-outline.svg\",\r\n  \"fluent-calendar-month.svg\",\r\n  \"fluent-calendar-multiple-outline.svg\",\r\n  \"fluent-calendar-multiple.svg\",\r\n  \"fluent-calendar-note-outline.svg\",\r\n  \"fluent-calendar-note.svg\",\r\n  \"fluent-calendar-outline.svg\",\r\n  \"fluent-calendar-person-outline.svg\",\r\n  \"fluent-calendar-person.svg\",\r\n  \"fluent-calendar-play-outline.svg\",\r\n  \"fluent-calendar-play.svg\",\r\n  \"fluent-calendar-question-mark.svg\",\r\n  \"fluent-calendar-record-outline.svg\",\r\n  \"fluent-calendar-record.svg\",\r\n  \"fluent-calendar-reply-outline.svg\",\r\n  \"fluent-calendar-reply.svg\",\r\n  \"fluent-calendar-rtl-outline.svg\",\r\n  \"fluent-calendar-rtl.svg\",\r\n  \"fluent-calendar-settings-outline.svg\",\r\n  \"fluent-calendar-settings.svg\",\r\n  \"fluent-calendar-shield-outline.svg\",\r\n  \"fluent-calendar-shield.svg\",\r\n  \"fluent-calendar-sparkle-outline.svg\",\r\n  \"fluent-calendar-sparkle.svg\",\r\n  \"fluent-calendar-star-outline.svg\",\r\n  \"fluent-calendar-star.svg\",\r\n  \"fluent-calendar-sync-outline.svg\",\r\n  \"fluent-calendar-sync.svg\",\r\n  \"fluent-calendar-template-outline.svg\",\r\n  \"fluent-calendar-template.svg\",\r\n  \"fluent-calendar-today-outline.svg\",\r\n  \"fluent-calendar-today.svg\",\r\n  \"fluent-calendar-toolbox-outline.svg\",\r\n  \"fluent-calendar-toolbox.svg\",\r\n  \"fluent-calendar-video-outline.svg\",\r\n  \"fluent-calendar-video.svg\",\r\n  \"fluent-calendar-week-numbers.svg\",\r\n  \"fluent-calendar-week-start.svg\",\r\n  \"fluent-calendar-work-week.svg\",\r\n  \"fluent-calendar.svg\",\r\n  \"fluent-call-add-outline.svg\",\r\n  \"fluent-call-add.svg\",\r\n  \"fluent-call-checkmark-outline.svg\",\r\n  \"fluent-call-checkmark.svg\",\r\n  \"fluent-call-dismiss-outline.svg\",\r\n  \"fluent-call-dismiss.svg\",\r\n  \"fluent-call-end-outline.svg\",\r\n  \"fluent-call-end.svg\",\r\n  \"fluent-call-forward-outline.svg\",\r\n  \"fluent-call-forward.svg\",\r\n  \"fluent-call-inbound-outline.svg\",\r\n  \"fluent-call-inbound.svg\",\r\n  \"fluent-call-missed-outline.svg\",\r\n  \"fluent-call-missed.svg\",\r\n  \"fluent-call-outbound-outline.svg\",\r\n  \"fluent-call-outbound.svg\",\r\n  \"fluent-call-outline.svg\",\r\n  \"fluent-call-park-outline.svg\",\r\n  \"fluent-call-park.svg\",\r\n  \"fluent-call-pause-outline.svg\",\r\n  \"fluent-call-pause.svg\",\r\n  \"fluent-call-prohibited-outline.svg\",\r\n  \"fluent-call-prohibited.svg\",\r\n  \"fluent-call-transfer-outline.svg\",\r\n  \"fluent-call-transfer.svg\",\r\n  \"fluent-call.svg\",\r\n  \"fluent-calligraphy-pen-outline.svg\",\r\n  \"fluent-calligraphy-pen.svg\",\r\n  \"fluent-camera-add-outline.svg\",\r\n  \"fluent-camera-add.svg\",\r\n  \"fluent-camera-arrow-up-outline.svg\",\r\n  \"fluent-camera-arrow-up.svg\",\r\n  \"fluent-camera-dome-outline.svg\",\r\n  \"fluent-camera-dome.svg\",\r\n  \"fluent-camera-off-outline.svg\",\r\n  \"fluent-camera-off.svg\",\r\n  \"fluent-camera-outline.svg\",\r\n  \"fluent-camera-sparkles-outline.svg\",\r\n  \"fluent-camera-sparkles.svg\",\r\n  \"fluent-camera-switch-outline.svg\",\r\n  \"fluent-camera-switch.svg\",\r\n  \"fluent-camera.svg\",\r\n  \"fluent-card-ui-outline.svg\",\r\n  \"fluent-card-ui-portrait-flip.svg\",\r\n  \"fluent-card-ui.svg\",\r\n  \"fluent-caret-down-outline.svg\",\r\n  \"fluent-caret-down-right-outline.svg\",\r\n  \"fluent-caret-down-right.svg\",\r\n  \"fluent-caret-down.svg\",\r\n  \"fluent-caret-left-outline.svg\",\r\n  \"fluent-caret-left.svg\",\r\n  \"fluent-caret-right-outline.svg\",\r\n  \"fluent-caret-right.svg\",\r\n  \"fluent-caret-up-outline.svg\",\r\n  \"fluent-caret-up.svg\",\r\n  \"fluent-cart-outline.svg\",\r\n  \"fluent-cart.svg\",\r\n  \"fluent-cast-multiple-outline.svg\",\r\n  \"fluent-cast-multiple.svg\",\r\n  \"fluent-cast-outline.svg\",\r\n  \"fluent-cast.svg\",\r\n  \"fluent-catch-up-outline.svg\",\r\n  \"fluent-catch-up.svg\",\r\n  \"fluent-cellular-3g-outline.svg\",\r\n  \"fluent-cellular-3g.svg\",\r\n  \"fluent-cellular-4g-outline.svg\",\r\n  \"fluent-cellular-4g.svg\",\r\n  \"fluent-cellular-5g-outline.svg\",\r\n  \"fluent-cellular-5g.svg\",\r\n  \"fluent-cellular-data-1-outline.svg\",\r\n  \"fluent-cellular-data-1.svg\",\r\n  \"fluent-cellular-data-2-outline.svg\",\r\n  \"fluent-cellular-data-2.svg\",\r\n  \"fluent-cellular-data-3-outline.svg\",\r\n  \"fluent-cellular-data-3.svg\",\r\n  \"fluent-cellular-data-4-outline.svg\",\r\n  \"fluent-cellular-data-4.svg\",\r\n  \"fluent-cellular-data-5-outline.svg\",\r\n  \"fluent-cellular-data-5.svg\",\r\n  \"fluent-cellular-off-outline.svg\",\r\n  \"fluent-cellular-off.svg\",\r\n  \"fluent-cellular-warning-outline.svg\",\r\n  \"fluent-cellular-warning.svg\",\r\n  \"fluent-center-horizontal-outline.svg\",\r\n  \"fluent-center-horizontal.svg\",\r\n  \"fluent-center-vertical-outline.svg\",\r\n  \"fluent-center-vertical.svg\",\r\n  \"fluent-certificate-outline.svg\",\r\n  \"fluent-certificate.svg\",\r\n  \"fluent-channel-add-outline.svg\",\r\n  \"fluent-channel-add.svg\",\r\n  \"fluent-channel-alert-outline.svg\",\r\n  \"fluent-channel-alert.svg\",\r\n  \"fluent-channel-arrow-left.svg\",\r\n  \"fluent-channel-dismiss-outline.svg\",\r\n  \"fluent-channel-dismiss.svg\",\r\n  \"fluent-channel-outline.svg\",\r\n  \"fluent-channel-share-outline.svg\",\r\n  \"fluent-channel-share.svg\",\r\n  \"fluent-channel-subtract-outline.svg\",\r\n  \"fluent-channel-subtract.svg\",\r\n  \"fluent-channel.svg\",\r\n  \"fluent-chart-multiple-outline.svg\",\r\n  \"fluent-chart-multiple.svg\",\r\n  \"fluent-chart-person-outline.svg\",\r\n  \"fluent-chart-person.svg\",\r\n  \"fluent-chat-add-outline.svg\",\r\n  \"fluent-chat-add.svg\",\r\n  \"fluent-chat-arrow-back-down.svg\",\r\n  \"fluent-chat-bubbles-question.svg\",\r\n  \"fluent-chat-cursor-outline.svg\",\r\n  \"fluent-chat-cursor.svg\",\r\n  \"fluent-chat-dismiss-outline.svg\",\r\n  \"fluent-chat-dismiss.svg\",\r\n  \"fluent-chat-empty-outline.svg\",\r\n  \"fluent-chat-empty.svg\",\r\n  \"fluent-chat-help-outline.svg\",\r\n  \"fluent-chat-help.svg\",\r\n  \"fluent-chat-lock-outline.svg\",\r\n  \"fluent-chat-lock.svg\",\r\n  \"fluent-chat-multiple-heart.svg\",\r\n  \"fluent-chat-multiple-outline.svg\",\r\n  \"fluent-chat-multiple.svg\",\r\n  \"fluent-chat-off-outline.svg\",\r\n  \"fluent-chat-off.svg\",\r\n  \"fluent-chat-outline.svg\",\r\n  \"fluent-chat-settings-outline.svg\",\r\n  \"fluent-chat-settings.svg\",\r\n  \"fluent-chat-sparkle-outline.svg\",\r\n  \"fluent-chat-sparkle.svg\",\r\n  \"fluent-chat-video-outline.svg\",\r\n  \"fluent-chat-video.svg\",\r\n  \"fluent-chat-warning-outline.svg\",\r\n  \"fluent-chat-warning.svg\",\r\n  \"fluent-chat.svg\",\r\n  \"fluent-check-outline.svg\",\r\n  \"fluent-check.svg\",\r\n  \"fluent-checkbox-1-outline.svg\",\r\n  \"fluent-checkbox-1.svg\",\r\n  \"fluent-checkbox-2-outline.svg\",\r\n  \"fluent-checkbox-2.svg\",\r\n  \"fluent-checkbox-arrow-right.svg\",\r\n  \"fluent-checkbox-checked-outline.svg\",\r\n  \"fluent-checkbox-checked.svg\",\r\n  \"fluent-checkbox-indeterminate.svg\",\r\n  \"fluent-checkbox-person-outline.svg\",\r\n  \"fluent-checkbox-person.svg\",\r\n  \"fluent-checkbox-unchecked.svg\",\r\n  \"fluent-checkbox-warning-outline.svg\",\r\n  \"fluent-checkbox-warning.svg\",\r\n  \"fluent-checkmark-circle-outline.svg\",\r\n  \"fluent-checkmark-circle-square.svg\",\r\n  \"fluent-checkmark-circle-warning.svg\",\r\n  \"fluent-checkmark-circle.svg\",\r\n  \"fluent-checkmark-lock-outline.svg\",\r\n  \"fluent-checkmark-lock.svg\",\r\n  \"fluent-checkmark-outline.svg\",\r\n  \"fluent-checkmark-square-outline.svg\",\r\n  \"fluent-checkmark-square.svg\",\r\n  \"fluent-checkmark-starburst.svg\",\r\n  \"fluent-checkmark.svg\",\r\n  \"fluent-chevron-circle-down.svg\",\r\n  \"fluent-chevron-circle-left.svg\",\r\n  \"fluent-chevron-circle-right.svg\",\r\n  \"fluent-chevron-circle-up-outline.svg\",\r\n  \"fluent-chevron-circle-up.svg\",\r\n  \"fluent-chevron-down-outline.svg\",\r\n  \"fluent-chevron-down-up-outline.svg\",\r\n  \"fluent-chevron-down-up.svg\",\r\n  \"fluent-chevron-down.svg\",\r\n  \"fluent-chevron-left-outline.svg\",\r\n  \"fluent-chevron-left.svg\",\r\n  \"fluent-chevron-right-outline.svg\",\r\n  \"fluent-chevron-right.svg\",\r\n  \"fluent-chevron-up-down-outline.svg\",\r\n  \"fluent-chevron-up-down.svg\",\r\n  \"fluent-chevron-up-outline.svg\",\r\n  \"fluent-chevron-up.svg\",\r\n  \"fluent-circle-edit-outline.svg\",\r\n  \"fluent-circle-edit.svg\",\r\n  \"fluent-circle-half-fill-outline.svg\",\r\n  \"fluent-circle-half-fill.svg\",\r\n  \"fluent-circle-highlight-outline.svg\",\r\n  \"fluent-circle-highlight.svg\",\r\n  \"fluent-circle-hint-half-vertical.svg\",\r\n  \"fluent-circle-hint-outline.svg\",\r\n  \"fluent-circle-hint.svg\",\r\n  \"fluent-circle-image-outline.svg\",\r\n  \"fluent-circle-image.svg\",\r\n  \"fluent-circle-line-outline.svg\",\r\n  \"fluent-circle-line.svg\",\r\n  \"fluent-circle-outline.svg\",\r\n  \"fluent-circle-shadow-outline.svg\",\r\n  \"fluent-circle-shadow.svg\",\r\n  \"fluent-circle-small-outline.svg\",\r\n  \"fluent-circle-small.svg\",\r\n  \"fluent-circle.svg\",\r\n  \"fluent-city-outline.svg\",\r\n  \"fluent-city.svg\",\r\n  \"fluent-class-outline.svg\",\r\n  \"fluent-class.svg\",\r\n  \"fluent-classification-outline.svg\",\r\n  \"fluent-classification.svg\",\r\n  \"fluent-clear-formatting-outline.svg\",\r\n  \"fluent-clear-formatting.svg\",\r\n  \"fluent-clipboard-3-day-outline.svg\",\r\n  \"fluent-clipboard-3-day.svg\",\r\n  \"fluent-clipboard-arrow-right.svg\",\r\n  \"fluent-clipboard-brush-outline.svg\",\r\n  \"fluent-clipboard-brush.svg\",\r\n  \"fluent-clipboard-checkmark.svg\",\r\n  \"fluent-clipboard-clock-outline.svg\",\r\n  \"fluent-clipboard-clock.svg\",\r\n  \"fluent-clipboard-code-outline.svg\",\r\n  \"fluent-clipboard-code.svg\",\r\n  \"fluent-clipboard-data-bar.svg\",\r\n  \"fluent-clipboard-day-outline.svg\",\r\n  \"fluent-clipboard-day.svg\",\r\n  \"fluent-clipboard-error-outline.svg\",\r\n  \"fluent-clipboard-error.svg\",\r\n  \"fluent-clipboard-heart-outline.svg\",\r\n  \"fluent-clipboard-heart.svg\",\r\n  \"fluent-clipboard-image-outline.svg\",\r\n  \"fluent-clipboard-image.svg\",\r\n  \"fluent-clipboard-letter-outline.svg\",\r\n  \"fluent-clipboard-letter.svg\",\r\n  \"fluent-clipboard-link-outline.svg\",\r\n  \"fluent-clipboard-link.svg\",\r\n  \"fluent-clipboard-math-formula.svg\",\r\n  \"fluent-clipboard-month-outline.svg\",\r\n  \"fluent-clipboard-month.svg\",\r\n  \"fluent-clipboard-more-outline.svg\",\r\n  \"fluent-clipboard-more.svg\",\r\n  \"fluent-clipboard-number-123.svg\",\r\n  \"fluent-clipboard-outline.svg\",\r\n  \"fluent-clipboard-paste-outline.svg\",\r\n  \"fluent-clipboard-paste.svg\",\r\n  \"fluent-clipboard-pulse-outline.svg\",\r\n  \"fluent-clipboard-pulse.svg\",\r\n  \"fluent-clipboard-search-outline.svg\",\r\n  \"fluent-clipboard-search.svg\",\r\n  \"fluent-clipboard-settings.svg\",\r\n  \"fluent-clipboard-task-add.svg\",\r\n  \"fluent-clipboard-task-list-ltr.svg\",\r\n  \"fluent-clipboard-task-list-rtl.svg\",\r\n  \"fluent-clipboard-task-outline.svg\",\r\n  \"fluent-clipboard-task.svg\",\r\n  \"fluent-clipboard-text-edit.svg\",\r\n  \"fluent-clipboard-text-ltr.svg\",\r\n  \"fluent-clipboard-text-rtl.svg\",\r\n  \"fluent-clipboard.svg\",\r\n  \"fluent-clock-alarm-outline.svg\",\r\n  \"fluent-clock-alarm.svg\",\r\n  \"fluent-clock-arrow-download.svg\",\r\n  \"fluent-clock-bill-outline.svg\",\r\n  \"fluent-clock-bill.svg\",\r\n  \"fluent-clock-dismiss-outline.svg\",\r\n  \"fluent-clock-dismiss.svg\",\r\n  \"fluent-clock-lock-outline.svg\",\r\n  \"fluent-clock-lock.svg\",\r\n  \"fluent-clock-outline.svg\",\r\n  \"fluent-clock-pause-outline.svg\",\r\n  \"fluent-clock-pause.svg\",\r\n  \"fluent-clock-toolbox-outline.svg\",\r\n  \"fluent-clock-toolbox.svg\",\r\n  \"fluent-clock.svg\",\r\n  \"fluent-closed-caption-off.svg\",\r\n  \"fluent-closed-caption-outline.svg\",\r\n  \"fluent-closed-caption.svg\",\r\n  \"fluent-cloud-add-outline.svg\",\r\n  \"fluent-cloud-add.svg\",\r\n  \"fluent-cloud-archive-outline.svg\",\r\n  \"fluent-cloud-archive.svg\",\r\n  \"fluent-cloud-arrow-down-outline.svg\",\r\n  \"fluent-cloud-arrow-down.svg\",\r\n  \"fluent-cloud-arrow-right-outline.svg\",\r\n  \"fluent-cloud-arrow-right.svg\",\r\n  \"fluent-cloud-arrow-up-outline.svg\",\r\n  \"fluent-cloud-arrow-up.svg\",\r\n  \"fluent-cloud-beaker-outline.svg\",\r\n  \"fluent-cloud-beaker.svg\",\r\n  \"fluent-cloud-bidirectional.svg\",\r\n  \"fluent-cloud-checkmark-outline.svg\",\r\n  \"fluent-cloud-checkmark.svg\",\r\n  \"fluent-cloud-cube-outline.svg\",\r\n  \"fluent-cloud-cube.svg\",\r\n  \"fluent-cloud-dismiss-outline.svg\",\r\n  \"fluent-cloud-dismiss.svg\",\r\n  \"fluent-cloud-edit-outline.svg\",\r\n  \"fluent-cloud-edit.svg\",\r\n  \"fluent-cloud-error-outline.svg\",\r\n  \"fluent-cloud-error.svg\",\r\n  \"fluent-cloud-flow-outline.svg\",\r\n  \"fluent-cloud-flow.svg\",\r\n  \"fluent-cloud-link-outline.svg\",\r\n  \"fluent-cloud-link.svg\",\r\n  \"fluent-cloud-off-outline.svg\",\r\n  \"fluent-cloud-off.svg\",\r\n  \"fluent-cloud-outline.svg\",\r\n  \"fluent-cloud-swap-outline.svg\",\r\n  \"fluent-cloud-swap.svg\",\r\n  \"fluent-cloud-sync-outline.svg\",\r\n  \"fluent-cloud-sync.svg\",\r\n  \"fluent-cloud-words-outline.svg\",\r\n  \"fluent-cloud-words.svg\",\r\n  \"fluent-cloud.svg\",\r\n  \"fluent-clover-outline.svg\",\r\n  \"fluent-clover.svg\",\r\n  \"fluent-code-block-outline.svg\",\r\n  \"fluent-code-block.svg\",\r\n  \"fluent-code-circle-outline.svg\",\r\n  \"fluent-code-circle.svg\",\r\n  \"fluent-code-outline.svg\",\r\n  \"fluent-code.svg\",\r\n  \"fluent-coin-stack-outline.svg\",\r\n  \"fluent-coin-stack.svg\",\r\n  \"fluent-collections-add-outline.svg\",\r\n  \"fluent-collections-add.svg\",\r\n  \"fluent-collections-outline.svg\",\r\n  \"fluent-collections.svg\",\r\n  \"fluent-color-background-outline.svg\",\r\n  \"fluent-color-background.svg\",\r\n  \"fluent-color-fill-accent-outline.svg\",\r\n  \"fluent-color-fill-outline.svg\",\r\n  \"fluent-color-fill.svg\",\r\n  \"fluent-color-line-accent-outline.svg\",\r\n  \"fluent-color-line-outline.svg\",\r\n  \"fluent-color-line.svg\",\r\n  \"fluent-color-outline.svg\",\r\n  \"fluent-color.svg\",\r\n  \"fluent-column-edit-outline.svg\",\r\n  \"fluent-column-edit.svg\",\r\n  \"fluent-column-outline.svg\",\r\n  \"fluent-column-triple-edit.svg\",\r\n  \"fluent-column-triple-outline.svg\",\r\n  \"fluent-column-triple.svg\",\r\n  \"fluent-column.svg\",\r\n  \"fluent-comma-outline.svg\",\r\n  \"fluent-comma.svg\",\r\n  \"fluent-comment-add-outline.svg\",\r\n  \"fluent-comment-add.svg\",\r\n  \"fluent-comment-arrow-left.svg\",\r\n  \"fluent-comment-arrow-right.svg\",\r\n  \"fluent-comment-checkmark-outline.svg\",\r\n  \"fluent-comment-checkmark.svg\",\r\n  \"fluent-comment-dismiss-outline.svg\",\r\n  \"fluent-comment-dismiss.svg\",\r\n  \"fluent-comment-edit-outline.svg\",\r\n  \"fluent-comment-edit.svg\",\r\n  \"fluent-comment-error-outline.svg\",\r\n  \"fluent-comment-error.svg\",\r\n  \"fluent-comment-lightning-outline.svg\",\r\n  \"fluent-comment-lightning.svg\",\r\n  \"fluent-comment-link-outline.svg\",\r\n  \"fluent-comment-link.svg\",\r\n  \"fluent-comment-mention-outline.svg\",\r\n  \"fluent-comment-mention.svg\",\r\n  \"fluent-comment-multiple-link.svg\",\r\n  \"fluent-comment-multiple-outline.svg\",\r\n  \"fluent-comment-multiple.svg\",\r\n  \"fluent-comment-note-outline.svg\",\r\n  \"fluent-comment-note.svg\",\r\n  \"fluent-comment-off-outline.svg\",\r\n  \"fluent-comment-off.svg\",\r\n  \"fluent-comment-outline.svg\",\r\n  \"fluent-comment.svg\",\r\n  \"fluent-communication-outline.svg\",\r\n  \"fluent-communication-person.svg\",\r\n  \"fluent-communication-shield.svg\",\r\n  \"fluent-communication.svg\",\r\n  \"fluent-compass-northwest-outline.svg\",\r\n  \"fluent-compass-northwest.svg\",\r\n  \"fluent-compose-outline.svg\",\r\n  \"fluent-compose.svg\",\r\n  \"fluent-conference-room-outline.svg\",\r\n  \"fluent-conference-room.svg\",\r\n  \"fluent-connector-outline.svg\",\r\n  \"fluent-connector.svg\",\r\n  \"fluent-contact-card-group.svg\",\r\n  \"fluent-contact-card-outline.svg\",\r\n  \"fluent-contact-card-ribbon.svg\",\r\n  \"fluent-contact-card.svg\",\r\n  \"fluent-content-settings-outline.svg\",\r\n  \"fluent-content-settings.svg\",\r\n  \"fluent-content-view-gallery.svg\",\r\n  \"fluent-content-view-outline.svg\",\r\n  \"fluent-content-view.svg\",\r\n  \"fluent-contract-down-left.svg\",\r\n  \"fluent-contract-up-right-outline.svg\",\r\n  \"fluent-contract-up-right.svg\",\r\n  \"fluent-control-button-outline.svg\",\r\n  \"fluent-control-button.svg\",\r\n  \"fluent-convert-range-outline.svg\",\r\n  \"fluent-convert-range.svg\",\r\n  \"fluent-cookies-outline.svg\",\r\n  \"fluent-cookies.svg\",\r\n  \"fluent-copy-add-outline.svg\",\r\n  \"fluent-copy-add.svg\",\r\n  \"fluent-copy-arrow-right-outline.svg\",\r\n  \"fluent-copy-arrow-right.svg\",\r\n  \"fluent-copy-outline.svg\",\r\n  \"fluent-copy-select-outline.svg\",\r\n  \"fluent-copy-select.svg\",\r\n  \"fluent-copy.svg\",\r\n  \"fluent-couch-outline.svg\",\r\n  \"fluent-couch.svg\",\r\n  \"fluent-credit-card-clock-outline.svg\",\r\n  \"fluent-credit-card-clock.svg\",\r\n  \"fluent-credit-card-person.svg\",\r\n  \"fluent-credit-card-toolbox.svg\",\r\n  \"fluent-crop-arrow-rotate-outline.svg\",\r\n  \"fluent-crop-arrow-rotate.svg\",\r\n  \"fluent-crop-interim-off-outline.svg\",\r\n  \"fluent-crop-interim-off.svg\",\r\n  \"fluent-crop-interim-outline.svg\",\r\n  \"fluent-crop-interim.svg\",\r\n  \"fluent-crop-outline.svg\",\r\n  \"fluent-crop-sparkle-outline.svg\",\r\n  \"fluent-crop-sparkle.svg\",\r\n  \"fluent-crop.svg\",\r\n  \"fluent-crown-outline.svg\",\r\n  \"fluent-crown-subtract-outline.svg\",\r\n  \"fluent-crown-subtract.svg\",\r\n  \"fluent-crown.svg\",\r\n  \"fluent-cube-multiple-outline.svg\",\r\n  \"fluent-cube-multiple.svg\",\r\n  \"fluent-cube-outline.svg\",\r\n  \"fluent-cube-quick-outline.svg\",\r\n  \"fluent-cube-quick.svg\",\r\n  \"fluent-cube-sync-outline.svg\",\r\n  \"fluent-cube-sync.svg\",\r\n  \"fluent-cube-tree-outline.svg\",\r\n  \"fluent-cube-tree.svg\",\r\n  \"fluent-cube.svg\",\r\n  \"fluent-currency-dollar-euro.svg\",\r\n  \"fluent-currency-dollar-rupee.svg\",\r\n  \"fluent-cursor-click-outline.svg\",\r\n  \"fluent-cursor-click.svg\",\r\n  \"fluent-cursor-hover-off-outline.svg\",\r\n  \"fluent-cursor-hover-off.svg\",\r\n  \"fluent-cursor-hover-outline.svg\",\r\n  \"fluent-cursor-hover.svg\",\r\n  \"fluent-cursor-outline.svg\",\r\n  \"fluent-cursor.svg\",\r\n  \"fluent-cut-outline.svg\",\r\n  \"fluent-cut.svg\",\r\n  \"fluent-dark-theme-outline.svg\",\r\n  \"fluent-dark-theme.svg\",\r\n  \"fluent-data-area-outline.svg\",\r\n  \"fluent-data-area.svg\",\r\n  \"fluent-data-bar-horizontal.svg\",\r\n  \"fluent-data-bar-vertical-add.svg\",\r\n  \"fluent-data-bar-vertical-outline.svg\",\r\n  \"fluent-data-bar-vertical-star.svg\",\r\n  \"fluent-data-bar-vertical.svg\",\r\n  \"fluent-data-funnel-outline.svg\",\r\n  \"fluent-data-funnel.svg\",\r\n  \"fluent-data-histogram-outline.svg\",\r\n  \"fluent-data-histogram.svg\",\r\n  \"fluent-data-line-outline.svg\",\r\n  \"fluent-data-line.svg\",\r\n  \"fluent-data-pie-outline.svg\",\r\n  \"fluent-data-pie.svg\",\r\n  \"fluent-data-scatter-outline.svg\",\r\n  \"fluent-data-scatter.svg\",\r\n  \"fluent-data-sunburst-outline.svg\",\r\n  \"fluent-data-sunburst.svg\",\r\n  \"fluent-data-treemap-outline.svg\",\r\n  \"fluent-data-treemap.svg\",\r\n  \"fluent-data-trending-outline.svg\",\r\n  \"fluent-data-trending.svg\",\r\n  \"fluent-data-usage-edit-outline.svg\",\r\n  \"fluent-data-usage-edit.svg\",\r\n  \"fluent-data-usage-outline.svg\",\r\n  \"fluent-data-usage-settings.svg\",\r\n  \"fluent-data-usage-toolbox.svg\",\r\n  \"fluent-data-usage.svg\",\r\n  \"fluent-data-waterfall-outline.svg\",\r\n  \"fluent-data-waterfall.svg\",\r\n  \"fluent-data-whisker-outline.svg\",\r\n  \"fluent-data-whisker.svg\",\r\n  \"fluent-database-arrow-right.svg\",\r\n  \"fluent-database-link-outline.svg\",\r\n  \"fluent-database-link.svg\",\r\n  \"fluent-database-outline.svg\",\r\n  \"fluent-database-person-outline.svg\",\r\n  \"fluent-database-person.svg\",\r\n  \"fluent-database-search-outline.svg\",\r\n  \"fluent-database-search.svg\",\r\n  \"fluent-database.svg\",\r\n  \"fluent-decimal-arrow-left.svg\",\r\n  \"fluent-decimal-arrow-right.svg\",\r\n  \"fluent-delete-dismiss-outline.svg\",\r\n  \"fluent-delete-dismiss.svg\",\r\n  \"fluent-delete-off-outline.svg\",\r\n  \"fluent-delete-off.svg\",\r\n  \"fluent-delete-outline.svg\",\r\n  \"fluent-delete.svg\",\r\n  \"fluent-dentist-outline.svg\",\r\n  \"fluent-dentist.svg\",\r\n  \"fluent-design-ideas-outline.svg\",\r\n  \"fluent-design-ideas.svg\",\r\n  \"fluent-desk-outline.svg\",\r\n  \"fluent-desk.svg\",\r\n  \"fluent-desktop-arrow-down.svg\",\r\n  \"fluent-desktop-arrow-right.svg\",\r\n  \"fluent-desktop-checkmark-outline.svg\",\r\n  \"fluent-desktop-checkmark.svg\",\r\n  \"fluent-desktop-cursor-outline.svg\",\r\n  \"fluent-desktop-cursor.svg\",\r\n  \"fluent-desktop-edit-outline.svg\",\r\n  \"fluent-desktop-edit.svg\",\r\n  \"fluent-desktop-flow-outline.svg\",\r\n  \"fluent-desktop-flow.svg\",\r\n  \"fluent-desktop-keyboard-outline.svg\",\r\n  \"fluent-desktop-keyboard.svg\",\r\n  \"fluent-desktop-mac-outline.svg\",\r\n  \"fluent-desktop-mac.svg\",\r\n  \"fluent-desktop-off-outline.svg\",\r\n  \"fluent-desktop-off.svg\",\r\n  \"fluent-desktop-outline.svg\",\r\n  \"fluent-desktop-pulse-outline.svg\",\r\n  \"fluent-desktop-pulse.svg\",\r\n  \"fluent-desktop-signal-outline.svg\",\r\n  \"fluent-desktop-signal.svg\",\r\n  \"fluent-desktop-speaker-off.svg\",\r\n  \"fluent-desktop-speaker-outline.svg\",\r\n  \"fluent-desktop-speaker.svg\",\r\n  \"fluent-desktop-sync-outline.svg\",\r\n  \"fluent-desktop-sync.svg\",\r\n  \"fluent-desktop-toolbox-outline.svg\",\r\n  \"fluent-desktop-toolbox.svg\",\r\n  \"fluent-desktop-tower-outline.svg\",\r\n  \"fluent-desktop-tower.svg\",\r\n  \"fluent-desktop.svg\",\r\n  \"fluent-developer-board-outline.svg\",\r\n  \"fluent-developer-board-search.svg\",\r\n  \"fluent-developer-board.svg\",\r\n  \"fluent-device-eq-outline.svg\",\r\n  \"fluent-device-eq.svg\",\r\n  \"fluent-device-meeting-room.svg\",\r\n  \"fluent-diagram-outline.svg\",\r\n  \"fluent-diagram.svg\",\r\n  \"fluent-dialpad-off-outline.svg\",\r\n  \"fluent-dialpad-off.svg\",\r\n  \"fluent-dialpad-outline.svg\",\r\n  \"fluent-dialpad-question-mark.svg\",\r\n  \"fluent-dialpad.svg\",\r\n  \"fluent-diamond-outline.svg\",\r\n  \"fluent-diamond.svg\",\r\n  \"fluent-directions-outline.svg\",\r\n  \"fluent-directions.svg\",\r\n  \"fluent-dishwasher-outline.svg\",\r\n  \"fluent-dishwasher.svg\",\r\n  \"fluent-dismiss-circle-outline.svg\",\r\n  \"fluent-dismiss-circle.svg\",\r\n  \"fluent-dismiss-outline.svg\",\r\n  \"fluent-dismiss-square-outline.svg\",\r\n  \"fluent-dismiss-square.svg\",\r\n  \"fluent-dismiss.svg\",\r\n  \"fluent-diversity-outline.svg\",\r\n  \"fluent-diversity.svg\",\r\n  \"fluent-divider-short-outline.svg\",\r\n  \"fluent-divider-short.svg\",\r\n  \"fluent-divider-tall-outline.svg\",\r\n  \"fluent-divider-tall.svg\",\r\n  \"fluent-dock-outline.svg\",\r\n  \"fluent-dock-row-outline.svg\",\r\n  \"fluent-dock-row.svg\",\r\n  \"fluent-dock.svg\",\r\n  \"fluent-doctor-outline.svg\",\r\n  \"fluent-doctor.svg\",\r\n  \"fluent-document-100-outline.svg\",\r\n  \"fluent-document-100.svg\",\r\n  \"fluent-document-add-outline.svg\",\r\n  \"fluent-document-add.svg\",\r\n  \"fluent-document-arrow-down.svg\",\r\n  \"fluent-document-arrow-left.svg\",\r\n  \"fluent-document-arrow-right.svg\",\r\n  \"fluent-document-border-outline.svg\",\r\n  \"fluent-document-border-print.svg\",\r\n  \"fluent-document-border.svg\",\r\n  \"fluent-document-briefcase.svg\",\r\n  \"fluent-document-bullet-list-cube.svg\",\r\n  \"fluent-document-bullet-list-off.svg\",\r\n  \"fluent-document-bullet-list.svg\",\r\n  \"fluent-document-catch-up-outline.svg\",\r\n  \"fluent-document-catch-up.svg\",\r\n  \"fluent-document-checkmark.svg\",\r\n  \"fluent-document-chevron-double.svg\",\r\n  \"fluent-document-copy-outline.svg\",\r\n  \"fluent-document-copy.svg\",\r\n  \"fluent-document-css-outline.svg\",\r\n  \"fluent-document-css.svg\",\r\n  \"fluent-document-cube-outline.svg\",\r\n  \"fluent-document-cube.svg\",\r\n  \"fluent-document-data-link.svg\",\r\n  \"fluent-document-data-lock.svg\",\r\n  \"fluent-document-data-outline.svg\",\r\n  \"fluent-document-data.svg\",\r\n  \"fluent-document-database-outline.svg\",\r\n  \"fluent-document-database.svg\",\r\n  \"fluent-document-dismiss-outline.svg\",\r\n  \"fluent-document-dismiss.svg\",\r\n  \"fluent-document-edit-outline.svg\",\r\n  \"fluent-document-edit.svg\",\r\n  \"fluent-document-endnote-outline.svg\",\r\n  \"fluent-document-endnote.svg\",\r\n  \"fluent-document-error-outline.svg\",\r\n  \"fluent-document-error.svg\",\r\n  \"fluent-document-fit-outline.svg\",\r\n  \"fluent-document-fit.svg\",\r\n  \"fluent-document-flowchart.svg\",\r\n  \"fluent-document-folder-outline.svg\",\r\n  \"fluent-document-folder.svg\",\r\n  \"fluent-document-footer-dismiss.svg\",\r\n  \"fluent-document-footer-outline.svg\",\r\n  \"fluent-document-footer.svg\",\r\n  \"fluent-document-globe-outline.svg\",\r\n  \"fluent-document-globe.svg\",\r\n  \"fluent-document-header-dismiss.svg\",\r\n  \"fluent-document-header-footer.svg\",\r\n  \"fluent-document-header-outline.svg\",\r\n  \"fluent-document-header.svg\",\r\n  \"fluent-document-heart-outline.svg\",\r\n  \"fluent-document-heart-pulse.svg\",\r\n  \"fluent-document-heart.svg\",\r\n  \"fluent-document-javascript.svg\",\r\n  \"fluent-document-landscape-data.svg\",\r\n  \"fluent-document-landscape-split.svg\",\r\n  \"fluent-document-landscape.svg\",\r\n  \"fluent-document-lightning.svg\",\r\n  \"fluent-document-link-outline.svg\",\r\n  \"fluent-document-link.svg\",\r\n  \"fluent-document-lock-outline.svg\",\r\n  \"fluent-document-lock.svg\",\r\n  \"fluent-document-margins-outline.svg\",\r\n  \"fluent-document-margins.svg\",\r\n  \"fluent-document-mention-outline.svg\",\r\n  \"fluent-document-mention.svg\",\r\n  \"fluent-document-multiple-outline.svg\",\r\n  \"fluent-document-multiple-percent.svg\",\r\n  \"fluent-document-multiple.svg\",\r\n  \"fluent-document-one-page-add.svg\",\r\n  \"fluent-document-one-page-columns.svg\",\r\n  \"fluent-document-one-page-link.svg\",\r\n  \"fluent-document-one-page-outline.svg\",\r\n  \"fluent-document-one-page-sparkle.svg\",\r\n  \"fluent-document-one-page.svg\",\r\n  \"fluent-document-outline.svg\",\r\n  \"fluent-document-page-bottom-left.svg\",\r\n  \"fluent-document-page-break.svg\",\r\n  \"fluent-document-page-number.svg\",\r\n  \"fluent-document-page-top-center.svg\",\r\n  \"fluent-document-page-top-left.svg\",\r\n  \"fluent-document-page-top-right.svg\",\r\n  \"fluent-document-pdf-outline.svg\",\r\n  \"fluent-document-pdf.svg\",\r\n  \"fluent-document-percent-outline.svg\",\r\n  \"fluent-document-percent.svg\",\r\n  \"fluent-document-pill-outline.svg\",\r\n  \"fluent-document-pill.svg\",\r\n  \"fluent-document-print-outline.svg\",\r\n  \"fluent-document-print.svg\",\r\n  \"fluent-document-prohibited.svg\",\r\n  \"fluent-document-question-mark.svg\",\r\n  \"fluent-document-queue-add.svg\",\r\n  \"fluent-document-queue-multiple.svg\",\r\n  \"fluent-document-queue-outline.svg\",\r\n  \"fluent-document-queue.svg\",\r\n  \"fluent-document-ribbon-outline.svg\",\r\n  \"fluent-document-ribbon.svg\",\r\n  \"fluent-document-save-outline.svg\",\r\n  \"fluent-document-save.svg\",\r\n  \"fluent-document-search-outline.svg\",\r\n  \"fluent-document-search.svg\",\r\n  \"fluent-document-signature.svg\",\r\n  \"fluent-document-split-hint-off.svg\",\r\n  \"fluent-document-split-hint.svg\",\r\n  \"fluent-document-sync-outline.svg\",\r\n  \"fluent-document-sync.svg\",\r\n  \"fluent-document-table-checkmark.svg\",\r\n  \"fluent-document-table-cube.svg\",\r\n  \"fluent-document-table-outline.svg\",\r\n  \"fluent-document-table-search.svg\",\r\n  \"fluent-document-table-truck.svg\",\r\n  \"fluent-document-table.svg\",\r\n  \"fluent-document-target-outline.svg\",\r\n  \"fluent-document-target.svg\",\r\n  \"fluent-document-text-clock.svg\",\r\n  \"fluent-document-text-extract.svg\",\r\n  \"fluent-document-text-link.svg\",\r\n  \"fluent-document-text-outline.svg\",\r\n  \"fluent-document-text-toolbox.svg\",\r\n  \"fluent-document-text.svg\",\r\n  \"fluent-document-toolbox-outline.svg\",\r\n  \"fluent-document-toolbox.svg\",\r\n  \"fluent-document-width-outline.svg\",\r\n  \"fluent-document-width.svg\",\r\n  \"fluent-document.svg\",\r\n  \"fluent-door-arrow-left-outline.svg\",\r\n  \"fluent-door-arrow-left.svg\",\r\n  \"fluent-door-tag-outline.svg\",\r\n  \"fluent-door-tag.svg\",\r\n  \"fluent-double-swipe-down-outline.svg\",\r\n  \"fluent-double-swipe-down.svg\",\r\n  \"fluent-double-swipe-up-outline.svg\",\r\n  \"fluent-double-swipe-up.svg\",\r\n  \"fluent-double-tap-swipe-down.svg\",\r\n  \"fluent-double-tap-swipe-up.svg\",\r\n  \"fluent-drafts-outline.svg\",\r\n  \"fluent-drafts.svg\",\r\n  \"fluent-drag-outline.svg\",\r\n  \"fluent-drag.svg\",\r\n  \"fluent-draw-image-outline.svg\",\r\n  \"fluent-draw-image.svg\",\r\n  \"fluent-draw-shape-outline.svg\",\r\n  \"fluent-draw-shape.svg\",\r\n  \"fluent-draw-text-outline.svg\",\r\n  \"fluent-draw-text.svg\",\r\n  \"fluent-drawer-add-outline.svg\",\r\n  \"fluent-drawer-add.svg\",\r\n  \"fluent-drawer-arrow-download.svg\",\r\n  \"fluent-drawer-dismiss-outline.svg\",\r\n  \"fluent-drawer-dismiss.svg\",\r\n  \"fluent-drawer-outline.svg\",\r\n  \"fluent-drawer-play-outline.svg\",\r\n  \"fluent-drawer-play.svg\",\r\n  \"fluent-drawer-subtract-outline.svg\",\r\n  \"fluent-drawer-subtract.svg\",\r\n  \"fluent-drawer.svg\",\r\n  \"fluent-drink-beer-outline.svg\",\r\n  \"fluent-drink-beer.svg\",\r\n  \"fluent-drink-coffee-outline.svg\",\r\n  \"fluent-drink-coffee.svg\",\r\n  \"fluent-drink-margarita-outline.svg\",\r\n  \"fluent-drink-margarita.svg\",\r\n  \"fluent-drink-to-go-outline.svg\",\r\n  \"fluent-drink-to-go.svg\",\r\n  \"fluent-drink-wine-outline.svg\",\r\n  \"fluent-drink-wine.svg\",\r\n  \"fluent-drive-train-outline.svg\",\r\n  \"fluent-drive-train.svg\",\r\n  \"fluent-drop-outline.svg\",\r\n  \"fluent-drop.svg\",\r\n  \"fluent-dual-screen-add-outline.svg\",\r\n  \"fluent-dual-screen-add.svg\",\r\n  \"fluent-dual-screen-arrow-right.svg\",\r\n  \"fluent-dual-screen-arrow-up.svg\",\r\n  \"fluent-dual-screen-clock-outline.svg\",\r\n  \"fluent-dual-screen-clock.svg\",\r\n  \"fluent-dual-screen-closed-alert.svg\",\r\n  \"fluent-dual-screen-desktop.svg\",\r\n  \"fluent-dual-screen-dismiss.svg\",\r\n  \"fluent-dual-screen-group-outline.svg\",\r\n  \"fluent-dual-screen-group.svg\",\r\n  \"fluent-dual-screen-header.svg\",\r\n  \"fluent-dual-screen-lock-outline.svg\",\r\n  \"fluent-dual-screen-lock.svg\",\r\n  \"fluent-dual-screen-mirror.svg\",\r\n  \"fluent-dual-screen-outline.svg\",\r\n  \"fluent-dual-screen-pagination.svg\",\r\n  \"fluent-dual-screen-settings.svg\",\r\n  \"fluent-dual-screen-span-outline.svg\",\r\n  \"fluent-dual-screen-span.svg\",\r\n  \"fluent-dual-screen-speaker.svg\",\r\n  \"fluent-dual-screen-status-bar.svg\",\r\n  \"fluent-dual-screen-tablet.svg\",\r\n  \"fluent-dual-screen-update.svg\",\r\n  \"fluent-dual-screen-vibrate.svg\",\r\n  \"fluent-dual-screen.svg\",\r\n  \"fluent-dumbbell-outline.svg\",\r\n  \"fluent-dumbbell.svg\",\r\n  \"fluent-dust-outline.svg\",\r\n  \"fluent-dust.svg\",\r\n  \"fluent-earth-leaf-outline.svg\",\r\n  \"fluent-earth-leaf.svg\",\r\n  \"fluent-earth-outline.svg\",\r\n  \"fluent-earth.svg\",\r\n  \"fluent-edit-arrow-back-outline.svg\",\r\n  \"fluent-edit-arrow-back.svg\",\r\n  \"fluent-edit-line-horizontal-3.svg\",\r\n  \"fluent-edit-lock-outline.svg\",\r\n  \"fluent-edit-lock.svg\",\r\n  \"fluent-edit-off-outline.svg\",\r\n  \"fluent-edit-off.svg\",\r\n  \"fluent-edit-outline.svg\",\r\n  \"fluent-edit-person-outline.svg\",\r\n  \"fluent-edit-person.svg\",\r\n  \"fluent-edit-prohibited-outline.svg\",\r\n  \"fluent-edit-prohibited.svg\",\r\n  \"fluent-edit-settings-outline.svg\",\r\n  \"fluent-edit-settings.svg\",\r\n  \"fluent-edit.svg\",\r\n  \"fluent-elevator-outline.svg\",\r\n  \"fluent-elevator.svg\",\r\n  \"fluent-emoji-add-outline.svg\",\r\n  \"fluent-emoji-add.svg\",\r\n  \"fluent-emoji-angry-outline.svg\",\r\n  \"fluent-emoji-angry.svg\",\r\n  \"fluent-emoji-edit-outline.svg\",\r\n  \"fluent-emoji-edit.svg\",\r\n  \"fluent-emoji-hand-outline.svg\",\r\n  \"fluent-emoji-hand.svg\",\r\n  \"fluent-emoji-hint-outline.svg\",\r\n  \"fluent-emoji-hint.svg\",\r\n  \"fluent-emoji-laugh-outline.svg\",\r\n  \"fluent-emoji-laugh.svg\",\r\n  \"fluent-emoji-meh-outline.svg\",\r\n  \"fluent-emoji-meh.svg\",\r\n  \"fluent-emoji-meme-outline.svg\",\r\n  \"fluent-emoji-meme.svg\",\r\n  \"fluent-emoji-multiple-outline.svg\",\r\n  \"fluent-emoji-multiple.svg\",\r\n  \"fluent-emoji-outline.svg\",\r\n  \"fluent-emoji-sad-outline.svg\",\r\n  \"fluent-emoji-sad-slight-outline.svg\",\r\n  \"fluent-emoji-sad-slight.svg\",\r\n  \"fluent-emoji-sad.svg\",\r\n  \"fluent-emoji-smile-slight.svg\",\r\n  \"fluent-emoji-sparkle-outline.svg\",\r\n  \"fluent-emoji-sparkle.svg\",\r\n  \"fluent-emoji-surprise-outline.svg\",\r\n  \"fluent-emoji-surprise.svg\",\r\n  \"fluent-emoji.svg\",\r\n  \"fluent-engine-outline.svg\",\r\n  \"fluent-engine.svg\",\r\n  \"fluent-equal-circle-outline.svg\",\r\n  \"fluent-equal-circle.svg\",\r\n  \"fluent-equal-off-outline.svg\",\r\n  \"fluent-equal-off.svg\",\r\n  \"fluent-eraser-medium-outline.svg\",\r\n  \"fluent-eraser-medium.svg\",\r\n  \"fluent-eraser-outline.svg\",\r\n  \"fluent-eraser-segment-outline.svg\",\r\n  \"fluent-eraser-segment.svg\",\r\n  \"fluent-eraser-small-outline.svg\",\r\n  \"fluent-eraser-small.svg\",\r\n  \"fluent-eraser-tool-outline.svg\",\r\n  \"fluent-eraser-tool.svg\",\r\n  \"fluent-eraser.svg\",\r\n  \"fluent-error-circle-outline.svg\",\r\n  \"fluent-error-circle.svg\",\r\n  \"fluent-expand-up-left-outline.svg\",\r\n  \"fluent-expand-up-left.svg\",\r\n  \"fluent-expand-up-right-outline.svg\",\r\n  \"fluent-expand-up-right.svg\",\r\n  \"fluent-extended-dock-outline.svg\",\r\n  \"fluent-extended-dock.svg\",\r\n  \"fluent-eye-lines-outline.svg\",\r\n  \"fluent-eye-lines.svg\",\r\n  \"fluent-eye-off-outline.svg\",\r\n  \"fluent-eye-off.svg\",\r\n  \"fluent-eye-outline.svg\",\r\n  \"fluent-eye-tracking-off-outline.svg\",\r\n  \"fluent-eye-tracking-off.svg\",\r\n  \"fluent-eye-tracking-outline.svg\",\r\n  \"fluent-eye-tracking.svg\",\r\n  \"fluent-eye.svg\",\r\n  \"fluent-eyedropper-off-outline.svg\",\r\n  \"fluent-eyedropper-off.svg\",\r\n  \"fluent-eyedropper-outline.svg\",\r\n  \"fluent-eyedropper.svg\",\r\n  \"fluent-f-stop-outline.svg\",\r\n  \"fluent-f-stop.svg\",\r\n  \"fluent-fast-acceleration-outline.svg\",\r\n  \"fluent-fast-acceleration.svg\",\r\n  \"fluent-fast-forward-outline.svg\",\r\n  \"fluent-fast-forward.svg\",\r\n  \"fluent-feed-outline.svg\",\r\n  \"fluent-feed.svg\",\r\n  \"fluent-filmstrip-image-outline.svg\",\r\n  \"fluent-filmstrip-image.svg\",\r\n  \"fluent-filmstrip-outline.svg\",\r\n  \"fluent-filmstrip-play-outline.svg\",\r\n  \"fluent-filmstrip-play.svg\",\r\n  \"fluent-filmstrip-split-outline.svg\",\r\n  \"fluent-filmstrip-split.svg\",\r\n  \"fluent-filmstrip.svg\",\r\n  \"fluent-filter-dismiss-outline.svg\",\r\n  \"fluent-filter-dismiss.svg\",\r\n  \"fluent-filter-outline.svg\",\r\n  \"fluent-filter-sync-outline.svg\",\r\n  \"fluent-filter-sync.svg\",\r\n  \"fluent-filter.svg\",\r\n  \"fluent-fingerprint-outline.svg\",\r\n  \"fluent-fingerprint.svg\",\r\n  \"fluent-fire-outline.svg\",\r\n  \"fluent-fire.svg\",\r\n  \"fluent-fireplace-outline.svg\",\r\n  \"fluent-fireplace.svg\",\r\n  \"fluent-fixed-width-outline.svg\",\r\n  \"fluent-fixed-width.svg\",\r\n  \"fluent-flag-clock-outline.svg\",\r\n  \"fluent-flag-clock.svg\",\r\n  \"fluent-flag-off-outline.svg\",\r\n  \"fluent-flag-off.svg\",\r\n  \"fluent-flag-outline.svg\",\r\n  \"fluent-flag-pride-philadelphia.svg\",\r\n  \"fluent-flag-pride-progress.svg\",\r\n  \"fluent-flag-pride.svg\",\r\n  \"fluent-flag.svg\",\r\n  \"fluent-flash-auto-outline.svg\",\r\n  \"fluent-flash-auto.svg\",\r\n  \"fluent-flash-checkmark-outline.svg\",\r\n  \"fluent-flash-checkmark.svg\",\r\n  \"fluent-flash-flow-outline.svg\",\r\n  \"fluent-flash-flow.svg\",\r\n  \"fluent-flash-off-outline.svg\",\r\n  \"fluent-flash-off.svg\",\r\n  \"fluent-flash-outline.svg\",\r\n  \"fluent-flash-settings-outline.svg\",\r\n  \"fluent-flash-settings.svg\",\r\n  \"fluent-flash-sparkle-outline.svg\",\r\n  \"fluent-flash-sparkle.svg\",\r\n  \"fluent-flash.svg\",\r\n  \"fluent-flashlight-off-outline.svg\",\r\n  \"fluent-flashlight-off.svg\",\r\n  \"fluent-flashlight-outline.svg\",\r\n  \"fluent-flashlight.svg\",\r\n  \"fluent-flip-horizontal-outline.svg\",\r\n  \"fluent-flip-horizontal.svg\",\r\n  \"fluent-flip-vertical-outline.svg\",\r\n  \"fluent-flip-vertical.svg\",\r\n  \"fluent-flow-outline.svg\",\r\n  \"fluent-flow.svg\",\r\n  \"fluent-flowchart-circle-outline.svg\",\r\n  \"fluent-flowchart-circle.svg\",\r\n  \"fluent-flowchart-outline.svg\",\r\n  \"fluent-flowchart.svg\",\r\n  \"fluent-fluent-outline.svg\",\r\n  \"fluent-fluent.svg\",\r\n  \"fluent-fluid-outline.svg\",\r\n  \"fluent-fluid.svg\",\r\n  \"fluent-folder-add-outline.svg\",\r\n  \"fluent-folder-add.svg\",\r\n  \"fluent-folder-arrow-left-outline.svg\",\r\n  \"fluent-folder-arrow-left.svg\",\r\n  \"fluent-folder-arrow-right.svg\",\r\n  \"fluent-folder-arrow-up-outline.svg\",\r\n  \"fluent-folder-arrow-up.svg\",\r\n  \"fluent-folder-lightning-outline.svg\",\r\n  \"fluent-folder-lightning.svg\",\r\n  \"fluent-folder-link-outline.svg\",\r\n  \"fluent-folder-link.svg\",\r\n  \"fluent-folder-mail-outline.svg\",\r\n  \"fluent-folder-mail.svg\",\r\n  \"fluent-folder-open-outline.svg\",\r\n  \"fluent-folder-open-vertical.svg\",\r\n  \"fluent-folder-open.svg\",\r\n  \"fluent-folder-outline.svg\",\r\n  \"fluent-folder-people-outline.svg\",\r\n  \"fluent-folder-people.svg\",\r\n  \"fluent-folder-person-outline.svg\",\r\n  \"fluent-folder-person.svg\",\r\n  \"fluent-folder-prohibited-outline.svg\",\r\n  \"fluent-folder-prohibited.svg\",\r\n  \"fluent-folder-search-outline.svg\",\r\n  \"fluent-folder-search.svg\",\r\n  \"fluent-folder-swap-outline.svg\",\r\n  \"fluent-folder-swap.svg\",\r\n  \"fluent-folder-sync-outline.svg\",\r\n  \"fluent-folder-sync.svg\",\r\n  \"fluent-folder-zip-outline.svg\",\r\n  \"fluent-folder-zip.svg\",\r\n  \"fluent-folder.svg\",\r\n  \"fluent-font-decrease-outline.svg\",\r\n  \"fluent-font-decrease.svg\",\r\n  \"fluent-font-increase-outline.svg\",\r\n  \"fluent-font-increase.svg\",\r\n  \"fluent-font-space-tracking-in.svg\",\r\n  \"fluent-font-space-tracking-out.svg\",\r\n  \"fluent-food-apple-outline.svg\",\r\n  \"fluent-food-apple.svg\",\r\n  \"fluent-food-cake-outline.svg\",\r\n  \"fluent-food-cake.svg\",\r\n  \"fluent-food-carrot-outline.svg\",\r\n  \"fluent-food-carrot.svg\",\r\n  \"fluent-food-chicken-leg-outline.svg\",\r\n  \"fluent-food-chicken-leg.svg\",\r\n  \"fluent-food-egg-outline.svg\",\r\n  \"fluent-food-egg.svg\",\r\n  \"fluent-food-fish-outline.svg\",\r\n  \"fluent-food-fish.svg\",\r\n  \"fluent-food-grains-outline.svg\",\r\n  \"fluent-food-grains.svg\",\r\n  \"fluent-food-outline.svg\",\r\n  \"fluent-food-pizza-outline.svg\",\r\n  \"fluent-food-pizza.svg\",\r\n  \"fluent-food-toast-outline.svg\",\r\n  \"fluent-food-toast.svg\",\r\n  \"fluent-food.svg\",\r\n  \"fluent-form-multiple-outline.svg\",\r\n  \"fluent-form-multiple.svg\",\r\n  \"fluent-form-new-outline.svg\",\r\n  \"fluent-form-new.svg\",\r\n  \"fluent-form-outline.svg\",\r\n  \"fluent-form.svg\",\r\n  \"fluent-fps-120-outline.svg\",\r\n  \"fluent-fps-120.svg\",\r\n  \"fluent-fps-240-outline.svg\",\r\n  \"fluent-fps-240.svg\",\r\n  \"fluent-fps-30-outline.svg\",\r\n  \"fluent-fps-30.svg\",\r\n  \"fluent-fps-60-outline.svg\",\r\n  \"fluent-fps-60.svg\",\r\n  \"fluent-fps-960-outline.svg\",\r\n  \"fluent-fps-960.svg\",\r\n  \"fluent-frame-outline.svg\",\r\n  \"fluent-frame.svg\",\r\n  \"fluent-full-screen-maximize.svg\",\r\n  \"fluent-full-screen-minimize.svg\",\r\n  \"fluent-games-outline.svg\",\r\n  \"fluent-games.svg\",\r\n  \"fluent-gantt-chart-outline.svg\",\r\n  \"fluent-gantt-chart.svg\",\r\n  \"fluent-gas-outline.svg\",\r\n  \"fluent-gas-pump-outline.svg\",\r\n  \"fluent-gas-pump.svg\",\r\n  \"fluent-gas.svg\",\r\n  \"fluent-gauge-outline.svg\",\r\n  \"fluent-gauge.svg\",\r\n  \"fluent-gavel-outline.svg\",\r\n  \"fluent-gavel.svg\",\r\n  \"fluent-gesture-outline.svg\",\r\n  \"fluent-gesture.svg\",\r\n  \"fluent-gif-outline.svg\",\r\n  \"fluent-gif.svg\",\r\n  \"fluent-gift-card-add-outline.svg\",\r\n  \"fluent-gift-card-add.svg\",\r\n  \"fluent-gift-card-arrow-right.svg\",\r\n  \"fluent-gift-card-money-outline.svg\",\r\n  \"fluent-gift-card-money.svg\",\r\n  \"fluent-gift-card-multiple.svg\",\r\n  \"fluent-gift-card-outline.svg\",\r\n  \"fluent-gift-card.svg\",\r\n  \"fluent-gift-open-outline.svg\",\r\n  \"fluent-gift-open.svg\",\r\n  \"fluent-gift-outline.svg\",\r\n  \"fluent-gift.svg\",\r\n  \"fluent-glance-horizontal-outline.svg\",\r\n  \"fluent-glance-horizontal.svg\",\r\n  \"fluent-glance-outline.svg\",\r\n  \"fluent-glance.svg\",\r\n  \"fluent-glasses-off-outline.svg\",\r\n  \"fluent-glasses-off.svg\",\r\n  \"fluent-glasses-outline.svg\",\r\n  \"fluent-glasses.svg\",\r\n  \"fluent-globe-add-outline.svg\",\r\n  \"fluent-globe-add.svg\",\r\n  \"fluent-globe-arrow-forward.svg\",\r\n  \"fluent-globe-arrow-up-outline.svg\",\r\n  \"fluent-globe-arrow-up.svg\",\r\n  \"fluent-globe-clock-outline.svg\",\r\n  \"fluent-globe-clock.svg\",\r\n  \"fluent-globe-desktop-outline.svg\",\r\n  \"fluent-globe-desktop.svg\",\r\n  \"fluent-globe-error-outline.svg\",\r\n  \"fluent-globe-error.svg\",\r\n  \"fluent-globe-location-outline.svg\",\r\n  \"fluent-globe-location.svg\",\r\n  \"fluent-globe-off-outline.svg\",\r\n  \"fluent-globe-off.svg\",\r\n  \"fluent-globe-outline.svg\",\r\n  \"fluent-globe-person-outline.svg\",\r\n  \"fluent-globe-person.svg\",\r\n  \"fluent-globe-prohibited-outline.svg\",\r\n  \"fluent-globe-prohibited.svg\",\r\n  \"fluent-globe-search-outline.svg\",\r\n  \"fluent-globe-search.svg\",\r\n  \"fluent-globe-shield-outline.svg\",\r\n  \"fluent-globe-shield.svg\",\r\n  \"fluent-globe-surface-outline.svg\",\r\n  \"fluent-globe-surface.svg\",\r\n  \"fluent-globe-sync-outline.svg\",\r\n  \"fluent-globe-sync.svg\",\r\n  \"fluent-globe-video-outline.svg\",\r\n  \"fluent-globe-video.svg\",\r\n  \"fluent-globe-warning-outline.svg\",\r\n  \"fluent-globe-warning.svg\",\r\n  \"fluent-globe.svg\",\r\n  \"fluent-grid-circles-outline.svg\",\r\n  \"fluent-grid-circles.svg\",\r\n  \"fluent-grid-dots-outline.svg\",\r\n  \"fluent-grid-dots.svg\",\r\n  \"fluent-grid-outline.svg\",\r\n  \"fluent-grid.svg\",\r\n  \"fluent-group-dismiss-outline.svg\",\r\n  \"fluent-group-dismiss.svg\",\r\n  \"fluent-group-list-outline.svg\",\r\n  \"fluent-group-list.svg\",\r\n  \"fluent-group-outline.svg\",\r\n  \"fluent-group-return-outline.svg\",\r\n  \"fluent-group-return.svg\",\r\n  \"fluent-group.svg\",\r\n  \"fluent-guardian-outline.svg\",\r\n  \"fluent-guardian.svg\",\r\n  \"fluent-guest-add-outline.svg\",\r\n  \"fluent-guest-add.svg\",\r\n  \"fluent-guest-outline.svg\",\r\n  \"fluent-guest.svg\",\r\n  \"fluent-guitar-outline.svg\",\r\n  \"fluent-guitar.svg\",\r\n  \"fluent-hand-draw-outline.svg\",\r\n  \"fluent-hand-draw.svg\",\r\n  \"fluent-hand-left-chat-outline.svg\",\r\n  \"fluent-hand-left-chat.svg\",\r\n  \"fluent-hand-left-outline.svg\",\r\n  \"fluent-hand-left.svg\",\r\n  \"fluent-hand-point-outline.svg\",\r\n  \"fluent-hand-point.svg\",\r\n  \"fluent-hand-right-off-outline.svg\",\r\n  \"fluent-hand-right-off.svg\",\r\n  \"fluent-hand-right-outline.svg\",\r\n  \"fluent-hand-right.svg\",\r\n  \"fluent-hand-wave-outline.svg\",\r\n  \"fluent-hand-wave.svg\",\r\n  \"fluent-handshake-outline.svg\",\r\n  \"fluent-handshake.svg\",\r\n  \"fluent-haptic-strong-outline.svg\",\r\n  \"fluent-haptic-strong.svg\",\r\n  \"fluent-haptic-weak-outline.svg\",\r\n  \"fluent-haptic-weak.svg\",\r\n  \"fluent-hard-drive-call-outline.svg\",\r\n  \"fluent-hard-drive-call.svg\",\r\n  \"fluent-hard-drive-outline.svg\",\r\n  \"fluent-hard-drive.svg\",\r\n  \"fluent-hat-graduation-add.svg\",\r\n  \"fluent-hat-graduation-outline.svg\",\r\n  \"fluent-hat-graduation-sparkle.svg\",\r\n  \"fluent-hat-graduation.svg\",\r\n  \"fluent-hd-outline.svg\",\r\n  \"fluent-hd.svg\",\r\n  \"fluent-hdr-off-outline.svg\",\r\n  \"fluent-hdr-off.svg\",\r\n  \"fluent-hdr-outline.svg\",\r\n  \"fluent-hdr.svg\",\r\n  \"fluent-headphones-outline.svg\",\r\n  \"fluent-headphones-sound-wave.svg\",\r\n  \"fluent-headphones.svg\",\r\n  \"fluent-headset-add-outline.svg\",\r\n  \"fluent-headset-add.svg\",\r\n  \"fluent-headset-outline.svg\",\r\n  \"fluent-headset-vr-outline.svg\",\r\n  \"fluent-headset-vr.svg\",\r\n  \"fluent-headset.svg\",\r\n  \"fluent-heart-broken-outline.svg\",\r\n  \"fluent-heart-broken.svg\",\r\n  \"fluent-heart-circle-hint-outline.svg\",\r\n  \"fluent-heart-circle-hint.svg\",\r\n  \"fluent-heart-circle-outline.svg\",\r\n  \"fluent-heart-circle.svg\",\r\n  \"fluent-heart-off-outline.svg\",\r\n  \"fluent-heart-off.svg\",\r\n  \"fluent-heart-outline.svg\",\r\n  \"fluent-heart-pulse-outline.svg\",\r\n  \"fluent-heart-pulse.svg\",\r\n  \"fluent-heart.svg\",\r\n  \"fluent-hexagon-outline.svg\",\r\n  \"fluent-hexagon-sparkle-outline.svg\",\r\n  \"fluent-hexagon-sparkle.svg\",\r\n  \"fluent-hexagon-three-outline.svg\",\r\n  \"fluent-hexagon-three.svg\",\r\n  \"fluent-hexagon.svg\",\r\n  \"fluent-highlight-accent.svg\",\r\n  \"fluent-highlight-outline.svg\",\r\n  \"fluent-highlight.svg\",\r\n  \"fluent-highway-outline.svg\",\r\n  \"fluent-highway.svg\",\r\n  \"fluent-history-dismiss-outline.svg\",\r\n  \"fluent-history-dismiss.svg\",\r\n  \"fluent-history-outline.svg\",\r\n  \"fluent-history.svg\",\r\n  \"fluent-home-add-outline.svg\",\r\n  \"fluent-home-add.svg\",\r\n  \"fluent-home-checkmark-outline.svg\",\r\n  \"fluent-home-checkmark.svg\",\r\n  \"fluent-home-database-outline.svg\",\r\n  \"fluent-home-database.svg\",\r\n  \"fluent-home-garage-outline.svg\",\r\n  \"fluent-home-garage.svg\",\r\n  \"fluent-home-heart-outline.svg\",\r\n  \"fluent-home-heart.svg\",\r\n  \"fluent-home-more-outline.svg\",\r\n  \"fluent-home-more.svg\",\r\n  \"fluent-home-outline.svg\",\r\n  \"fluent-home-person-outline.svg\",\r\n  \"fluent-home-person.svg\",\r\n  \"fluent-home-split-outline.svg\",\r\n  \"fluent-home-split.svg\",\r\n  \"fluent-home.svg\",\r\n  \"fluent-hourglass-half-outline.svg\",\r\n  \"fluent-hourglass-half.svg\",\r\n  \"fluent-hourglass-one-quarter.svg\",\r\n  \"fluent-hourglass-outline.svg\",\r\n  \"fluent-hourglass-three-quarter.svg\",\r\n  \"fluent-hourglass.svg\",\r\n  \"fluent-icons-outline.svg\",\r\n  \"fluent-icons.svg\",\r\n  \"fluent-image-add-outline.svg\",\r\n  \"fluent-image-add.svg\",\r\n  \"fluent-image-alt-text-outline.svg\",\r\n  \"fluent-image-alt-text.svg\",\r\n  \"fluent-image-arrow-back-outline.svg\",\r\n  \"fluent-image-arrow-back.svg\",\r\n  \"fluent-image-arrow-forward.svg\",\r\n  \"fluent-image-border-outline.svg\",\r\n  \"fluent-image-border.svg\",\r\n  \"fluent-image-circle-outline.svg\",\r\n  \"fluent-image-circle.svg\",\r\n  \"fluent-image-copy-outline.svg\",\r\n  \"fluent-image-copy.svg\",\r\n  \"fluent-image-edit-outline.svg\",\r\n  \"fluent-image-edit.svg\",\r\n  \"fluent-image-globe-outline.svg\",\r\n  \"fluent-image-globe.svg\",\r\n  \"fluent-image-multiple-outline.svg\",\r\n  \"fluent-image-multiple.svg\",\r\n  \"fluent-image-off-outline.svg\",\r\n  \"fluent-image-off.svg\",\r\n  \"fluent-image-outline.svg\",\r\n  \"fluent-image-prohibited-outline.svg\",\r\n  \"fluent-image-prohibited.svg\",\r\n  \"fluent-image-reflection-outline.svg\",\r\n  \"fluent-image-reflection.svg\",\r\n  \"fluent-image-search-outline.svg\",\r\n  \"fluent-image-search.svg\",\r\n  \"fluent-image-shadow-outline.svg\",\r\n  \"fluent-image-shadow.svg\",\r\n  \"fluent-image-sparkle-outline.svg\",\r\n  \"fluent-image-sparkle.svg\",\r\n  \"fluent-image-split-outline.svg\",\r\n  \"fluent-image-split.svg\",\r\n  \"fluent-image-table-outline.svg\",\r\n  \"fluent-image-table.svg\",\r\n  \"fluent-image.svg\",\r\n  \"fluent-immersive-reader-outline.svg\",\r\n  \"fluent-immersive-reader.svg\",\r\n  \"fluent-important-outline.svg\",\r\n  \"fluent-important.svg\",\r\n  \"fluent-incognito-outline.svg\",\r\n  \"fluent-incognito.svg\",\r\n  \"fluent-info-outline.svg\",\r\n  \"fluent-info.svg\",\r\n  \"fluent-ink-stroke-arrow-down.svg\",\r\n  \"fluent-ink-stroke-arrow-up-down.svg\",\r\n  \"fluent-ink-stroke-outline.svg\",\r\n  \"fluent-ink-stroke.svg\",\r\n  \"fluent-inking-tool-accent.svg\",\r\n  \"fluent-inking-tool-outline.svg\",\r\n  \"fluent-inking-tool.svg\",\r\n  \"fluent-inprivate-account-outline.svg\",\r\n  \"fluent-inprivate-account.svg\",\r\n  \"fluent-ios-arrow-ltr-outline.svg\",\r\n  \"fluent-ios-arrow-ltr.svg\",\r\n  \"fluent-ios-arrow-outline.svg\",\r\n  \"fluent-ios-arrow-rtl-outline.svg\",\r\n  \"fluent-ios-arrow-rtl.svg\",\r\n  \"fluent-ios-arrow.svg\",\r\n  \"fluent-iot-alert-outline.svg\",\r\n  \"fluent-iot-alert.svg\",\r\n  \"fluent-iot-outline.svg\",\r\n  \"fluent-iot.svg\",\r\n  \"fluent-javascript-outline.svg\",\r\n  \"fluent-javascript.svg\",\r\n  \"fluent-key-command-outline.svg\",\r\n  \"fluent-key-command.svg\",\r\n  \"fluent-key-multiple-outline.svg\",\r\n  \"fluent-key-multiple.svg\",\r\n  \"fluent-key-outline.svg\",\r\n  \"fluent-key-reset-outline.svg\",\r\n  \"fluent-key-reset.svg\",\r\n  \"fluent-key.svg\",\r\n  \"fluent-keyboard-123-outline.svg\",\r\n  \"fluent-keyboard-123.svg\",\r\n  \"fluent-keyboard-dock-outline.svg\",\r\n  \"fluent-keyboard-dock.svg\",\r\n  \"fluent-keyboard-layout-float.svg\",\r\n  \"fluent-keyboard-layout-resize.svg\",\r\n  \"fluent-keyboard-layout-split.svg\",\r\n  \"fluent-keyboard-outline.svg\",\r\n  \"fluent-keyboard-shift-outline.svg\",\r\n  \"fluent-keyboard-shift-uppercase.svg\",\r\n  \"fluent-keyboard-shift.svg\",\r\n  \"fluent-keyboard-tab-outline.svg\",\r\n  \"fluent-keyboard-tab.svg\",\r\n  \"fluent-keyboard.svg\",\r\n  \"fluent-kiosk-outline.svg\",\r\n  \"fluent-kiosk.svg\",\r\n  \"fluent-laptop-briefcase-outline.svg\",\r\n  \"fluent-laptop-briefcase.svg\",\r\n  \"fluent-laptop-multiple-outline.svg\",\r\n  \"fluent-laptop-multiple.svg\",\r\n  \"fluent-laptop-outline.svg\",\r\n  \"fluent-laptop-person-outline.svg\",\r\n  \"fluent-laptop-person.svg\",\r\n  \"fluent-laptop-settings-outline.svg\",\r\n  \"fluent-laptop-settings.svg\",\r\n  \"fluent-laptop.svg\",\r\n  \"fluent-lasso-outline.svg\",\r\n  \"fluent-lasso.svg\",\r\n  \"fluent-launcher-settings-outline.svg\",\r\n  \"fluent-launcher-settings.svg\",\r\n  \"fluent-layer-diagonal-add.svg\",\r\n  \"fluent-layer-diagonal-outline.svg\",\r\n  \"fluent-layer-diagonal-person.svg\",\r\n  \"fluent-layer-diagonal-sparkle.svg\",\r\n  \"fluent-layer-diagonal.svg\",\r\n  \"fluent-layer-outline.svg\",\r\n  \"fluent-layer.svg\",\r\n  \"fluent-layout-cell-four-outline.svg\",\r\n  \"fluent-layout-cell-four.svg\",\r\n  \"fluent-layout-column-four.svg\",\r\n  \"fluent-layout-column-three.svg\",\r\n  \"fluent-layout-column-two-outline.svg\",\r\n  \"fluent-layout-column-two.svg\",\r\n  \"fluent-layout-row-four-focus-top.svg\",\r\n  \"fluent-layout-row-four-outline.svg\",\r\n  \"fluent-layout-row-four.svg\",\r\n  \"fluent-layout-row-three-outline.svg\",\r\n  \"fluent-layout-row-three.svg\",\r\n  \"fluent-layout-row-two-focus-top.svg\",\r\n  \"fluent-layout-row-two-outline.svg\",\r\n  \"fluent-layout-row-two-settings.svg\",\r\n  \"fluent-layout-row-two-split-top.svg\",\r\n  \"fluent-layout-row-two.svg\",\r\n  \"fluent-leaf-one-outline.svg\",\r\n  \"fluent-leaf-one.svg\",\r\n  \"fluent-leaf-three-outline.svg\",\r\n  \"fluent-leaf-three.svg\",\r\n  \"fluent-leaf-two-outline.svg\",\r\n  \"fluent-leaf-two.svg\",\r\n  \"fluent-learning-app-outline.svg\",\r\n  \"fluent-learning-app.svg\",\r\n  \"fluent-library-outline.svg\",\r\n  \"fluent-library.svg\",\r\n  \"fluent-lightbulb-circle-outline.svg\",\r\n  \"fluent-lightbulb-circle.svg\",\r\n  \"fluent-lightbulb-filament.svg\",\r\n  \"fluent-lightbulb-outline.svg\",\r\n  \"fluent-lightbulb-person-outline.svg\",\r\n  \"fluent-lightbulb-person.svg\",\r\n  \"fluent-lightbulb.svg\",\r\n  \"fluent-likert-outline.svg\",\r\n  \"fluent-likert.svg\",\r\n  \"fluent-line-dashes-outline.svg\",\r\n  \"fluent-line-dashes.svg\",\r\n  \"fluent-line-horizontal-1-dashes.svg\",\r\n  \"fluent-line-horizontal-1-outline.svg\",\r\n  \"fluent-line-horizontal-1.svg\",\r\n  \"fluent-line-outline.svg\",\r\n  \"fluent-line-style-outline.svg\",\r\n  \"fluent-line-style-sketch-outline.svg\",\r\n  \"fluent-line-style-sketch.svg\",\r\n  \"fluent-line-style.svg\",\r\n  \"fluent-line-thickness-outline.svg\",\r\n  \"fluent-line-thickness.svg\",\r\n  \"fluent-line.svg\",\r\n  \"fluent-link-add-outline.svg\",\r\n  \"fluent-link-add.svg\",\r\n  \"fluent-link-dismiss-outline.svg\",\r\n  \"fluent-link-dismiss.svg\",\r\n  \"fluent-link-edit-outline.svg\",\r\n  \"fluent-link-edit.svg\",\r\n  \"fluent-link-multiple-outline.svg\",\r\n  \"fluent-link-multiple.svg\",\r\n  \"fluent-link-outline.svg\",\r\n  \"fluent-link-person-outline.svg\",\r\n  \"fluent-link-person.svg\",\r\n  \"fluent-link-settings-outline.svg\",\r\n  \"fluent-link-settings.svg\",\r\n  \"fluent-link-square-outline.svg\",\r\n  \"fluent-link-square.svg\",\r\n  \"fluent-link.svg\",\r\n  \"fluent-list-outline.svg\",\r\n  \"fluent-list.svg\",\r\n  \"fluent-live-off-outline.svg\",\r\n  \"fluent-live-off.svg\",\r\n  \"fluent-live-outline.svg\",\r\n  \"fluent-live.svg\",\r\n  \"fluent-local-language-outline.svg\",\r\n  \"fluent-local-language.svg\",\r\n  \"fluent-location-add-outline.svg\",\r\n  \"fluent-location-add.svg\",\r\n  \"fluent-location-arrow-outline.svg\",\r\n  \"fluent-location-arrow.svg\",\r\n  \"fluent-location-dismiss-outline.svg\",\r\n  \"fluent-location-dismiss.svg\",\r\n  \"fluent-location-live-outline.svg\",\r\n  \"fluent-location-live.svg\",\r\n  \"fluent-location-off-outline.svg\",\r\n  \"fluent-location-off.svg\",\r\n  \"fluent-location-outline.svg\",\r\n  \"fluent-location-ripple-outline.svg\",\r\n  \"fluent-location-ripple.svg\",\r\n  \"fluent-location-target-square.svg\",\r\n  \"fluent-location.svg\",\r\n  \"fluent-lock-closed-key-outline.svg\",\r\n  \"fluent-lock-closed-key.svg\",\r\n  \"fluent-lock-closed-outline.svg\",\r\n  \"fluent-lock-closed.svg\",\r\n  \"fluent-lock-multiple-outline.svg\",\r\n  \"fluent-lock-multiple.svg\",\r\n  \"fluent-lock-open-outline.svg\",\r\n  \"fluent-lock-open.svg\",\r\n  \"fluent-lock-shield-outline.svg\",\r\n  \"fluent-lock-shield.svg\",\r\n  \"fluent-lottery-outline.svg\",\r\n  \"fluent-lottery.svg\",\r\n  \"fluent-luggage-outline.svg\",\r\n  \"fluent-luggage.svg\",\r\n  \"fluent-mail-add-outline.svg\",\r\n  \"fluent-mail-add.svg\",\r\n  \"fluent-mail-alert-outline.svg\",\r\n  \"fluent-mail-alert.svg\",\r\n  \"fluent-mail-all-read-outline.svg\",\r\n  \"fluent-mail-all-read.svg\",\r\n  \"fluent-mail-arrow-clockwise.svg\",\r\n  \"fluent-mail-arrow-double-back.svg\",\r\n  \"fluent-mail-arrow-up-outline.svg\",\r\n  \"fluent-mail-arrow-up.svg\",\r\n  \"fluent-mail-attach-outline.svg\",\r\n  \"fluent-mail-attach.svg\",\r\n  \"fluent-mail-checkmark-outline.svg\",\r\n  \"fluent-mail-checkmark.svg\",\r\n  \"fluent-mail-clock-outline.svg\",\r\n  \"fluent-mail-clock.svg\",\r\n  \"fluent-mail-copy-outline.svg\",\r\n  \"fluent-mail-copy.svg\",\r\n  \"fluent-mail-dismiss-outline.svg\",\r\n  \"fluent-mail-dismiss.svg\",\r\n  \"fluent-mail-edit-outline.svg\",\r\n  \"fluent-mail-edit.svg\",\r\n  \"fluent-mail-error-outline.svg\",\r\n  \"fluent-mail-error.svg\",\r\n  \"fluent-mail-inbox-add-outline.svg\",\r\n  \"fluent-mail-inbox-add.svg\",\r\n  \"fluent-mail-inbox-all-outline.svg\",\r\n  \"fluent-mail-inbox-all.svg\",\r\n  \"fluent-mail-inbox-arrow-right.svg\",\r\n  \"fluent-mail-inbox-arrow-up.svg\",\r\n  \"fluent-mail-inbox-checkmark.svg\",\r\n  \"fluent-mail-inbox-dismiss.svg\",\r\n  \"fluent-mail-inbox-outline.svg\",\r\n  \"fluent-mail-inbox.svg\",\r\n  \"fluent-mail-link-outline.svg\",\r\n  \"fluent-mail-link.svg\",\r\n  \"fluent-mail-list-outline.svg\",\r\n  \"fluent-mail-list.svg\",\r\n  \"fluent-mail-multiple-outline.svg\",\r\n  \"fluent-mail-multiple.svg\",\r\n  \"fluent-mail-off-outline.svg\",\r\n  \"fluent-mail-off.svg\",\r\n  \"fluent-mail-open-person-outline.svg\",\r\n  \"fluent-mail-open-person.svg\",\r\n  \"fluent-mail-outline.svg\",\r\n  \"fluent-mail-prohibited-outline.svg\",\r\n  \"fluent-mail-prohibited.svg\",\r\n  \"fluent-mail-read-multiple.svg\",\r\n  \"fluent-mail-read-outline.svg\",\r\n  \"fluent-mail-read.svg\",\r\n  \"fluent-mail-rewind-outline.svg\",\r\n  \"fluent-mail-rewind.svg\",\r\n  \"fluent-mail-template-outline.svg\",\r\n  \"fluent-mail-template.svg\",\r\n  \"fluent-mail-unread-outline.svg\",\r\n  \"fluent-mail-unread.svg\",\r\n  \"fluent-mail-warning-outline.svg\",\r\n  \"fluent-mail-warning.svg\",\r\n  \"fluent-mail.svg\",\r\n  \"fluent-map-drive-outline.svg\",\r\n  \"fluent-map-drive.svg\",\r\n  \"fluent-map-outline.svg\",\r\n  \"fluent-map.svg\",\r\n  \"fluent-match-app-layout-outline.svg\",\r\n  \"fluent-match-app-layout.svg\",\r\n  \"fluent-math-format-linear.svg\",\r\n  \"fluent-math-format-professional.svg\",\r\n  \"fluent-math-formula-outline.svg\",\r\n  \"fluent-math-formula.svg\",\r\n  \"fluent-math-symbols-outline.svg\",\r\n  \"fluent-math-symbols.svg\",\r\n  \"fluent-maximize-outline.svg\",\r\n  \"fluent-maximize.svg\",\r\n  \"fluent-meet-now-outline.svg\",\r\n  \"fluent-meet-now.svg\",\r\n  \"fluent-megaphone-circle-outline.svg\",\r\n  \"fluent-megaphone-circle.svg\",\r\n  \"fluent-megaphone-loud-outline.svg\",\r\n  \"fluent-megaphone-loud.svg\",\r\n  \"fluent-megaphone-off-outline.svg\",\r\n  \"fluent-megaphone-off.svg\",\r\n  \"fluent-megaphone-outline.svg\",\r\n  \"fluent-megaphone.svg\",\r\n  \"fluent-mention-outline.svg\",\r\n  \"fluent-mention.svg\",\r\n  \"fluent-merge-outline.svg\",\r\n  \"fluent-merge.svg\",\r\n  \"fluent-mic-off-outline.svg\",\r\n  \"fluent-mic-off.svg\",\r\n  \"fluent-mic-outline.svg\",\r\n  \"fluent-mic-prohibited-outline.svg\",\r\n  \"fluent-mic-prohibited.svg\",\r\n  \"fluent-mic-pulse-off-outline.svg\",\r\n  \"fluent-mic-pulse-off.svg\",\r\n  \"fluent-mic-pulse-outline.svg\",\r\n  \"fluent-mic-pulse.svg\",\r\n  \"fluent-mic-record-outline.svg\",\r\n  \"fluent-mic-record.svg\",\r\n  \"fluent-mic-settings-outline.svg\",\r\n  \"fluent-mic-settings.svg\",\r\n  \"fluent-mic-sparkle-outline.svg\",\r\n  \"fluent-mic-sparkle.svg\",\r\n  \"fluent-mic.svg\",\r\n  \"fluent-microscope-outline.svg\",\r\n  \"fluent-microscope.svg\",\r\n  \"fluent-midi-outline.svg\",\r\n  \"fluent-midi.svg\",\r\n  \"fluent-mobile-optimized-outline.svg\",\r\n  \"fluent-mobile-optimized.svg\",\r\n  \"fluent-mold-outline.svg\",\r\n  \"fluent-mold.svg\",\r\n  \"fluent-molecule-outline.svg\",\r\n  \"fluent-molecule.svg\",\r\n  \"fluent-money-calculator-outline.svg\",\r\n  \"fluent-money-calculator.svg\",\r\n  \"fluent-money-dismiss-outline.svg\",\r\n  \"fluent-money-dismiss.svg\",\r\n  \"fluent-money-hand-outline.svg\",\r\n  \"fluent-money-hand.svg\",\r\n  \"fluent-money-off-outline.svg\",\r\n  \"fluent-money-off.svg\",\r\n  \"fluent-money-outline.svg\",\r\n  \"fluent-money-settings-outline.svg\",\r\n  \"fluent-money-settings.svg\",\r\n  \"fluent-money.svg\",\r\n  \"fluent-more-circle-outline.svg\",\r\n  \"fluent-more-circle.svg\",\r\n  \"fluent-more-horizontal-outline.svg\",\r\n  \"fluent-more-horizontal.svg\",\r\n  \"fluent-more-vertical-outline.svg\",\r\n  \"fluent-more-vertical.svg\",\r\n  \"fluent-mountain-location-bottom.svg\",\r\n  \"fluent-mountain-location-top.svg\",\r\n  \"fluent-mountain-trail-outline.svg\",\r\n  \"fluent-mountain-trail.svg\",\r\n  \"fluent-movies-and-tv-outline.svg\",\r\n  \"fluent-movies-and-tv.svg\",\r\n  \"fluent-multiplier-1-2x-outline.svg\",\r\n  \"fluent-multiplier-1-2x.svg\",\r\n  \"fluent-multiplier-1-5x-outline.svg\",\r\n  \"fluent-multiplier-1-5x.svg\",\r\n  \"fluent-multiplier-1-8x-outline.svg\",\r\n  \"fluent-multiplier-1-8x.svg\",\r\n  \"fluent-multiplier-1x-outline.svg\",\r\n  \"fluent-multiplier-1x.svg\",\r\n  \"fluent-multiplier-2x-outline.svg\",\r\n  \"fluent-multiplier-2x.svg\",\r\n  \"fluent-multiplier-5x-outline.svg\",\r\n  \"fluent-multiplier-5x.svg\",\r\n  \"fluent-multiselect-ltr-outline.svg\",\r\n  \"fluent-multiselect-ltr.svg\",\r\n  \"fluent-multiselect-rtl-outline.svg\",\r\n  \"fluent-multiselect-rtl.svg\",\r\n  \"fluent-music-note-1-outline.svg\",\r\n  \"fluent-music-note-1.svg\",\r\n  \"fluent-music-note-2-outline.svg\",\r\n  \"fluent-music-note-2.svg\",\r\n  \"fluent-music-note-off-1-outline.svg\",\r\n  \"fluent-music-note-off-1.svg\",\r\n  \"fluent-music-note-off-2-outline.svg\",\r\n  \"fluent-music-note-off-2.svg\",\r\n  \"fluent-my-location-outline.svg\",\r\n  \"fluent-my-location.svg\",\r\n  \"fluent-navigation-outline.svg\",\r\n  \"fluent-navigation-unread-outline.svg\",\r\n  \"fluent-navigation-unread.svg\",\r\n  \"fluent-navigation.svg\",\r\n  \"fluent-network-check-outline.svg\",\r\n  \"fluent-network-check.svg\",\r\n  \"fluent-new-outline.svg\",\r\n  \"fluent-new.svg\",\r\n  \"fluent-news-outline.svg\",\r\n  \"fluent-news.svg\",\r\n  \"fluent-next-frame-outline.svg\",\r\n  \"fluent-next-frame.svg\",\r\n  \"fluent-next-outline.svg\",\r\n  \"fluent-next.svg\",\r\n  \"fluent-note-add-outline.svg\",\r\n  \"fluent-note-add.svg\",\r\n  \"fluent-note-edit-outline.svg\",\r\n  \"fluent-note-edit.svg\",\r\n  \"fluent-note-outline.svg\",\r\n  \"fluent-note.svg\",\r\n  \"fluent-notebook-add-outline.svg\",\r\n  \"fluent-notebook-add.svg\",\r\n  \"fluent-notebook-error-outline.svg\",\r\n  \"fluent-notebook-error.svg\",\r\n  \"fluent-notebook-lightning.svg\",\r\n  \"fluent-notebook-outline.svg\",\r\n  \"fluent-notebook-question-mark.svg\",\r\n  \"fluent-notebook-section-outline.svg\",\r\n  \"fluent-notebook-section.svg\",\r\n  \"fluent-notebook-subsection.svg\",\r\n  \"fluent-notebook-sync-outline.svg\",\r\n  \"fluent-notebook-sync.svg\",\r\n  \"fluent-notebook.svg\",\r\n  \"fluent-notepad-outline.svg\",\r\n  \"fluent-notepad-person-outline.svg\",\r\n  \"fluent-notepad-person.svg\",\r\n  \"fluent-notepad-sparkle-outline.svg\",\r\n  \"fluent-notepad-sparkle.svg\",\r\n  \"fluent-notepad.svg\",\r\n  \"fluent-number-circle-0-outline.svg\",\r\n  \"fluent-number-circle-0.svg\",\r\n  \"fluent-number-circle-1-outline.svg\",\r\n  \"fluent-number-circle-1.svg\",\r\n  \"fluent-number-circle-2-outline.svg\",\r\n  \"fluent-number-circle-2.svg\",\r\n  \"fluent-number-circle-3-outline.svg\",\r\n  \"fluent-number-circle-3.svg\",\r\n  \"fluent-number-circle-4-outline.svg\",\r\n  \"fluent-number-circle-4.svg\",\r\n  \"fluent-number-circle-5-outline.svg\",\r\n  \"fluent-number-circle-5.svg\",\r\n  \"fluent-number-circle-6-outline.svg\",\r\n  \"fluent-number-circle-6.svg\",\r\n  \"fluent-number-circle-7-outline.svg\",\r\n  \"fluent-number-circle-7.svg\",\r\n  \"fluent-number-circle-8-outline.svg\",\r\n  \"fluent-number-circle-8.svg\",\r\n  \"fluent-number-circle-9-outline.svg\",\r\n  \"fluent-number-circle-9.svg\",\r\n  \"fluent-number-row-outline.svg\",\r\n  \"fluent-number-row.svg\",\r\n  \"fluent-number-symbol-dismiss.svg\",\r\n  \"fluent-number-symbol-outline.svg\",\r\n  \"fluent-number-symbol-square.svg\",\r\n  \"fluent-number-symbol.svg\",\r\n  \"fluent-open-folder-outline.svg\",\r\n  \"fluent-open-folder.svg\",\r\n  \"fluent-open-off-outline.svg\",\r\n  \"fluent-open-off.svg\",\r\n  \"fluent-open-outline.svg\",\r\n  \"fluent-open.svg\",\r\n  \"fluent-options-outline.svg\",\r\n  \"fluent-options.svg\",\r\n  \"fluent-organization-horizontal.svg\",\r\n  \"fluent-organization-outline.svg\",\r\n  \"fluent-organization.svg\",\r\n  \"fluent-orientation-outline.svg\",\r\n  \"fluent-orientation.svg\",\r\n  \"fluent-oval-outline.svg\",\r\n  \"fluent-oval.svg\",\r\n  \"fluent-oven-outline.svg\",\r\n  \"fluent-oven.svg\",\r\n  \"fluent-padding-down-outline.svg\",\r\n  \"fluent-padding-down.svg\",\r\n  \"fluent-padding-left-outline.svg\",\r\n  \"fluent-padding-left.svg\",\r\n  \"fluent-padding-right-outline.svg\",\r\n  \"fluent-padding-right.svg\",\r\n  \"fluent-padding-top-outline.svg\",\r\n  \"fluent-padding-top.svg\",\r\n  \"fluent-page-fit-outline.svg\",\r\n  \"fluent-page-fit.svg\",\r\n  \"fluent-paint-brush-arrow-down.svg\",\r\n  \"fluent-paint-brush-arrow-up.svg\",\r\n  \"fluent-paint-brush-outline.svg\",\r\n  \"fluent-paint-brush-sparkle.svg\",\r\n  \"fluent-paint-brush-subtract.svg\",\r\n  \"fluent-paint-brush.svg\",\r\n  \"fluent-paint-bucket-outline.svg\",\r\n  \"fluent-paint-bucket.svg\",\r\n  \"fluent-pair-outline.svg\",\r\n  \"fluent-pair.svg\",\r\n  \"fluent-panel-left-add-outline.svg\",\r\n  \"fluent-panel-left-add.svg\",\r\n  \"fluent-panel-left-contract.svg\",\r\n  \"fluent-panel-left-expand-outline.svg\",\r\n  \"fluent-panel-left-expand.svg\",\r\n  \"fluent-panel-left-focus-right.svg\",\r\n  \"fluent-panel-left-header-add.svg\",\r\n  \"fluent-panel-left-header-key.svg\",\r\n  \"fluent-panel-left-header-outline.svg\",\r\n  \"fluent-panel-left-header.svg\",\r\n  \"fluent-panel-left-key-outline.svg\",\r\n  \"fluent-panel-left-key.svg\",\r\n  \"fluent-panel-left-outline.svg\",\r\n  \"fluent-panel-left-text-add.svg\",\r\n  \"fluent-panel-left-text-dismiss.svg\",\r\n  \"fluent-panel-left-text-outline.svg\",\r\n  \"fluent-panel-left-text.svg\",\r\n  \"fluent-panel-left.svg\",\r\n  \"fluent-panel-right-contract.svg\",\r\n  \"fluent-panel-right-cursor.svg\",\r\n  \"fluent-panel-right-gallery.svg\",\r\n  \"fluent-panel-right-outline.svg\",\r\n  \"fluent-panel-right.svg\",\r\n  \"fluent-panel-top-gallery-outline.svg\",\r\n  \"fluent-panel-top-gallery.svg\",\r\n  \"fluent-password-outline.svg\",\r\n  \"fluent-password.svg\",\r\n  \"fluent-patch-outline.svg\",\r\n  \"fluent-patch.svg\",\r\n  \"fluent-patient-outline.svg\",\r\n  \"fluent-patient.svg\",\r\n  \"fluent-pause-circle-outline.svg\",\r\n  \"fluent-pause-circle.svg\",\r\n  \"fluent-pause-outline.svg\",\r\n  \"fluent-pause.svg\",\r\n  \"fluent-payment-outline.svg\",\r\n  \"fluent-payment-wireless-outline.svg\",\r\n  \"fluent-payment-wireless.svg\",\r\n  \"fluent-payment.svg\",\r\n  \"fluent-pen-dismiss-outline.svg\",\r\n  \"fluent-pen-dismiss.svg\",\r\n  \"fluent-pen-off-outline.svg\",\r\n  \"fluent-pen-off.svg\",\r\n  \"fluent-pen-outline.svg\",\r\n  \"fluent-pen-prohibited-outline.svg\",\r\n  \"fluent-pen-prohibited.svg\",\r\n  \"fluent-pen-sparkle-outline.svg\",\r\n  \"fluent-pen-sparkle.svg\",\r\n  \"fluent-pen.svg\",\r\n  \"fluent-people-add-outline.svg\",\r\n  \"fluent-people-add.svg\",\r\n  \"fluent-people-audience-outline.svg\",\r\n  \"fluent-people-audience.svg\",\r\n  \"fluent-people-call-outline.svg\",\r\n  \"fluent-people-call.svg\",\r\n  \"fluent-people-chat-outline.svg\",\r\n  \"fluent-people-chat.svg\",\r\n  \"fluent-people-checkmark-outline.svg\",\r\n  \"fluent-people-checkmark.svg\",\r\n  \"fluent-people-community-add.svg\",\r\n  \"fluent-people-community-outline.svg\",\r\n  \"fluent-people-community.svg\",\r\n  \"fluent-people-edit-outline.svg\",\r\n  \"fluent-people-edit.svg\",\r\n  \"fluent-people-error-outline.svg\",\r\n  \"fluent-people-error.svg\",\r\n  \"fluent-people-list-outline.svg\",\r\n  \"fluent-people-list.svg\",\r\n  \"fluent-people-lock-outline.svg\",\r\n  \"fluent-people-lock.svg\",\r\n  \"fluent-people-money-outline.svg\",\r\n  \"fluent-people-money.svg\",\r\n  \"fluent-people-outline.svg\",\r\n  \"fluent-people-prohibited-outline.svg\",\r\n  \"fluent-people-prohibited.svg\",\r\n  \"fluent-people-queue-outline.svg\",\r\n  \"fluent-people-queue.svg\",\r\n  \"fluent-people-search-outline.svg\",\r\n  \"fluent-people-search.svg\",\r\n  \"fluent-people-settings-outline.svg\",\r\n  \"fluent-people-settings.svg\",\r\n  \"fluent-people-star-outline.svg\",\r\n  \"fluent-people-star.svg\",\r\n  \"fluent-people-subtract-outline.svg\",\r\n  \"fluent-people-subtract.svg\",\r\n  \"fluent-people-swap-outline.svg\",\r\n  \"fluent-people-swap.svg\",\r\n  \"fluent-people-team-add-outline.svg\",\r\n  \"fluent-people-team-add.svg\",\r\n  \"fluent-people-team-delete.svg\",\r\n  \"fluent-people-team-outline.svg\",\r\n  \"fluent-people-team-toolbox.svg\",\r\n  \"fluent-people-team.svg\",\r\n  \"fluent-people.svg\",\r\n  \"fluent-person-accounts-outline.svg\",\r\n  \"fluent-person-accounts.svg\",\r\n  \"fluent-person-add-outline.svg\",\r\n  \"fluent-person-add.svg\",\r\n  \"fluent-person-alert-off-outline.svg\",\r\n  \"fluent-person-alert-off.svg\",\r\n  \"fluent-person-alert-outline.svg\",\r\n  \"fluent-person-alert.svg\",\r\n  \"fluent-person-arrow-back-outline.svg\",\r\n  \"fluent-person-arrow-back.svg\",\r\n  \"fluent-person-arrow-left-outline.svg\",\r\n  \"fluent-person-arrow-left.svg\",\r\n  \"fluent-person-arrow-right.svg\",\r\n  \"fluent-person-available-outline.svg\",\r\n  \"fluent-person-available.svg\",\r\n  \"fluent-person-board-add-outline.svg\",\r\n  \"fluent-person-board-add.svg\",\r\n  \"fluent-person-board-outline.svg\",\r\n  \"fluent-person-board.svg\",\r\n  \"fluent-person-call-outline.svg\",\r\n  \"fluent-person-call.svg\",\r\n  \"fluent-person-chat-outline.svg\",\r\n  \"fluent-person-chat.svg\",\r\n  \"fluent-person-circle-outline.svg\",\r\n  \"fluent-person-circle.svg\",\r\n  \"fluent-person-clock-outline.svg\",\r\n  \"fluent-person-clock.svg\",\r\n  \"fluent-person-delete-outline.svg\",\r\n  \"fluent-person-delete.svg\",\r\n  \"fluent-person-edit-outline.svg\",\r\n  \"fluent-person-edit.svg\",\r\n  \"fluent-person-feedback-outline.svg\",\r\n  \"fluent-person-feedback.svg\",\r\n  \"fluent-person-heart-outline.svg\",\r\n  \"fluent-person-heart.svg\",\r\n  \"fluent-person-home-outline.svg\",\r\n  \"fluent-person-home.svg\",\r\n  \"fluent-person-info-outline.svg\",\r\n  \"fluent-person-info.svg\",\r\n  \"fluent-person-lightbulb-outline.svg\",\r\n  \"fluent-person-lightbulb.svg\",\r\n  \"fluent-person-link-outline.svg\",\r\n  \"fluent-person-link.svg\",\r\n  \"fluent-person-lock-outline.svg\",\r\n  \"fluent-person-lock.svg\",\r\n  \"fluent-person-mail-outline.svg\",\r\n  \"fluent-person-mail.svg\",\r\n  \"fluent-person-money-outline.svg\",\r\n  \"fluent-person-money.svg\",\r\n  \"fluent-person-note-outline.svg\",\r\n  \"fluent-person-note.svg\",\r\n  \"fluent-person-outline.svg\",\r\n  \"fluent-person-passkey-outline.svg\",\r\n  \"fluent-person-passkey.svg\",\r\n  \"fluent-person-phone-outline.svg\",\r\n  \"fluent-person-phone.svg\",\r\n  \"fluent-person-pill-outline.svg\",\r\n  \"fluent-person-pill.svg\",\r\n  \"fluent-person-prohibited-outline.svg\",\r\n  \"fluent-person-prohibited.svg\",\r\n  \"fluent-person-question-mark.svg\",\r\n  \"fluent-person-ribbon-outline.svg\",\r\n  \"fluent-person-ribbon.svg\",\r\n  \"fluent-person-search-outline.svg\",\r\n  \"fluent-person-search.svg\",\r\n  \"fluent-person-square-add-outline.svg\",\r\n  \"fluent-person-square-add.svg\",\r\n  \"fluent-person-square-checkmark.svg\",\r\n  \"fluent-person-square-outline.svg\",\r\n  \"fluent-person-square.svg\",\r\n  \"fluent-person-star-outline.svg\",\r\n  \"fluent-person-star.svg\",\r\n  \"fluent-person-starburst-outline.svg\",\r\n  \"fluent-person-starburst.svg\",\r\n  \"fluent-person-subtract-outline.svg\",\r\n  \"fluent-person-subtract.svg\",\r\n  \"fluent-person-support-outline.svg\",\r\n  \"fluent-person-support.svg\",\r\n  \"fluent-person-swap-outline.svg\",\r\n  \"fluent-person-swap.svg\",\r\n  \"fluent-person-sync-outline.svg\",\r\n  \"fluent-person-sync.svg\",\r\n  \"fluent-person-tag-outline.svg\",\r\n  \"fluent-person-tag.svg\",\r\n  \"fluent-person-tentative-outline.svg\",\r\n  \"fluent-person-tentative.svg\",\r\n  \"fluent-person-voice-outline.svg\",\r\n  \"fluent-person-voice.svg\",\r\n  \"fluent-person-walking-outline.svg\",\r\n  \"fluent-person-walking.svg\",\r\n  \"fluent-person-warning-outline.svg\",\r\n  \"fluent-person-warning.svg\",\r\n  \"fluent-person.svg\",\r\n  \"fluent-phone-add-outline.svg\",\r\n  \"fluent-phone-add.svg\",\r\n  \"fluent-phone-arrow-right-outline.svg\",\r\n  \"fluent-phone-arrow-right.svg\",\r\n  \"fluent-phone-briefcase-outline.svg\",\r\n  \"fluent-phone-briefcase.svg\",\r\n  \"fluent-phone-chat-outline.svg\",\r\n  \"fluent-phone-chat.svg\",\r\n  \"fluent-phone-desktop-outline.svg\",\r\n  \"fluent-phone-desktop.svg\",\r\n  \"fluent-phone-dismiss-outline.svg\",\r\n  \"fluent-phone-dismiss.svg\",\r\n  \"fluent-phone-edit-outline.svg\",\r\n  \"fluent-phone-edit.svg\",\r\n  \"fluent-phone-footer-arrow-down.svg\",\r\n  \"fluent-phone-header-arrow-up.svg\",\r\n  \"fluent-phone-key-outline.svg\",\r\n  \"fluent-phone-key.svg\",\r\n  \"fluent-phone-laptop-outline.svg\",\r\n  \"fluent-phone-laptop.svg\",\r\n  \"fluent-phone-link-setup-outline.svg\",\r\n  \"fluent-phone-link-setup.svg\",\r\n  \"fluent-phone-lock-outline.svg\",\r\n  \"fluent-phone-lock.svg\",\r\n  \"fluent-phone-multiple-outline.svg\",\r\n  \"fluent-phone-multiple-settings.svg\",\r\n  \"fluent-phone-multiple.svg\",\r\n  \"fluent-phone-outline.svg\",\r\n  \"fluent-phone-page-header-outline.svg\",\r\n  \"fluent-phone-page-header.svg\",\r\n  \"fluent-phone-pagination-outline.svg\",\r\n  \"fluent-phone-pagination.svg\",\r\n  \"fluent-phone-person-outline.svg\",\r\n  \"fluent-phone-person.svg\",\r\n  \"fluent-phone-screen-time-outline.svg\",\r\n  \"fluent-phone-screen-time.svg\",\r\n  \"fluent-phone-shake-outline.svg\",\r\n  \"fluent-phone-shake.svg\",\r\n  \"fluent-phone-span-in-outline.svg\",\r\n  \"fluent-phone-span-in.svg\",\r\n  \"fluent-phone-span-out-outline.svg\",\r\n  \"fluent-phone-span-out.svg\",\r\n  \"fluent-phone-speaker-outline.svg\",\r\n  \"fluent-phone-speaker.svg\",\r\n  \"fluent-phone-status-bar-outline.svg\",\r\n  \"fluent-phone-status-bar.svg\",\r\n  \"fluent-phone-subtract-outline.svg\",\r\n  \"fluent-phone-subtract.svg\",\r\n  \"fluent-phone-tablet-outline.svg\",\r\n  \"fluent-phone-tablet.svg\",\r\n  \"fluent-phone-update-checkmark.svg\",\r\n  \"fluent-phone-update-outline.svg\",\r\n  \"fluent-phone-update.svg\",\r\n  \"fluent-phone-vertical-scroll.svg\",\r\n  \"fluent-phone-vibrate-outline.svg\",\r\n  \"fluent-phone-vibrate.svg\",\r\n  \"fluent-phone.svg\",\r\n  \"fluent-photo-filter-outline.svg\",\r\n  \"fluent-photo-filter.svg\",\r\n  \"fluent-pi-outline.svg\",\r\n  \"fluent-pi.svg\",\r\n  \"fluent-picture-in-picture-enter.svg\",\r\n  \"fluent-picture-in-picture-exit.svg\",\r\n  \"fluent-picture-in-picture.svg\",\r\n  \"fluent-pill-outline.svg\",\r\n  \"fluent-pill.svg\",\r\n  \"fluent-pin-off-outline.svg\",\r\n  \"fluent-pin-off.svg\",\r\n  \"fluent-pin-outline.svg\",\r\n  \"fluent-pin.svg\",\r\n  \"fluent-pipeline-outline.svg\",\r\n  \"fluent-pipeline.svg\",\r\n  \"fluent-pivot-outline.svg\",\r\n  \"fluent-pivot.svg\",\r\n  \"fluent-plant-cattail-outline.svg\",\r\n  \"fluent-plant-cattail.svg\",\r\n  \"fluent-plant-grass-outline.svg\",\r\n  \"fluent-plant-grass.svg\",\r\n  \"fluent-plant-ragweed-outline.svg\",\r\n  \"fluent-plant-ragweed.svg\",\r\n  \"fluent-play-circle-hint-outline.svg\",\r\n  \"fluent-play-circle-hint.svg\",\r\n  \"fluent-play-circle-outline.svg\",\r\n  \"fluent-play-circle-sparkle.svg\",\r\n  \"fluent-play-circle.svg\",\r\n  \"fluent-play-outline.svg\",\r\n  \"fluent-play.svg\",\r\n  \"fluent-plug-connected-outline.svg\",\r\n  \"fluent-plug-connected-settings.svg\",\r\n  \"fluent-plug-connected.svg\",\r\n  \"fluent-plug-disconnected-outline.svg\",\r\n  \"fluent-plug-disconnected.svg\",\r\n  \"fluent-point-scan-outline.svg\",\r\n  \"fluent-point-scan.svg\",\r\n  \"fluent-poll-horizontal-outline.svg\",\r\n  \"fluent-poll-horizontal.svg\",\r\n  \"fluent-poll-off-outline.svg\",\r\n  \"fluent-poll-off.svg\",\r\n  \"fluent-poll-outline.svg\",\r\n  \"fluent-poll.svg\",\r\n  \"fluent-port-hdmi-outline.svg\",\r\n  \"fluent-port-hdmi.svg\",\r\n  \"fluent-port-micro-usb-outline.svg\",\r\n  \"fluent-port-micro-usb.svg\",\r\n  \"fluent-port-usb-a-outline.svg\",\r\n  \"fluent-port-usb-a.svg\",\r\n  \"fluent-port-usb-c-outline.svg\",\r\n  \"fluent-port-usb-c.svg\",\r\n  \"fluent-position-backward-outline.svg\",\r\n  \"fluent-position-backward.svg\",\r\n  \"fluent-position-forward-outline.svg\",\r\n  \"fluent-position-forward.svg\",\r\n  \"fluent-position-to-back-outline.svg\",\r\n  \"fluent-position-to-back.svg\",\r\n  \"fluent-position-to-front-outline.svg\",\r\n  \"fluent-position-to-front.svg\",\r\n  \"fluent-power-outline.svg\",\r\n  \"fluent-power.svg\",\r\n  \"fluent-predictions-outline.svg\",\r\n  \"fluent-predictions.svg\",\r\n  \"fluent-premium-outline.svg\",\r\n  \"fluent-premium-person-outline.svg\",\r\n  \"fluent-premium-person.svg\",\r\n  \"fluent-premium.svg\",\r\n  \"fluent-presence-available.svg\",\r\n  \"fluent-presence-away-outline.svg\",\r\n  \"fluent-presence-away.svg\",\r\n  \"fluent-presence-blocked-outline.svg\",\r\n  \"fluent-presence-busy.svg\",\r\n  \"fluent-presence-dnd-outline.svg\",\r\n  \"fluent-presence-dnd.svg\",\r\n  \"fluent-presence-offline-outline.svg\",\r\n  \"fluent-presence-oof-outline.svg\",\r\n  \"fluent-presence-unknown-outline.svg\",\r\n  \"fluent-presenter-off-outline.svg\",\r\n  \"fluent-presenter-off.svg\",\r\n  \"fluent-presenter-outline.svg\",\r\n  \"fluent-presenter.svg\",\r\n  \"fluent-preview-link-outline.svg\",\r\n  \"fluent-preview-link.svg\",\r\n  \"fluent-previous-frame-outline.svg\",\r\n  \"fluent-previous-frame.svg\",\r\n  \"fluent-previous-outline.svg\",\r\n  \"fluent-previous.svg\",\r\n  \"fluent-print-add-outline.svg\",\r\n  \"fluent-print-add.svg\",\r\n  \"fluent-print-outline.svg\",\r\n  \"fluent-print.svg\",\r\n  \"fluent-production-checkmark.svg\",\r\n  \"fluent-production-outline.svg\",\r\n  \"fluent-production.svg\",\r\n  \"fluent-prohibited-multiple.svg\",\r\n  \"fluent-prohibited-outline.svg\",\r\n  \"fluent-prohibited.svg\",\r\n  \"fluent-projection-screen-dismiss.svg\",\r\n  \"fluent-projection-screen-outline.svg\",\r\n  \"fluent-projection-screen-text.svg\",\r\n  \"fluent-projection-screen.svg\",\r\n  \"fluent-prompt-outline.svg\",\r\n  \"fluent-prompt.svg\",\r\n  \"fluent-protocol-handler-outline.svg\",\r\n  \"fluent-protocol-handler.svg\",\r\n  \"fluent-pulse-outline.svg\",\r\n  \"fluent-pulse-square-outline.svg\",\r\n  \"fluent-pulse-square.svg\",\r\n  \"fluent-pulse.svg\",\r\n  \"fluent-puzzle-cube-outline.svg\",\r\n  \"fluent-puzzle-cube.svg\",\r\n  \"fluent-puzzle-piece-outline.svg\",\r\n  \"fluent-puzzle-piece.svg\",\r\n  \"fluent-qr-code-outline.svg\",\r\n  \"fluent-qr-code.svg\",\r\n  \"fluent-question-circle-outline.svg\",\r\n  \"fluent-question-circle.svg\",\r\n  \"fluent-question-outline.svg\",\r\n  \"fluent-question.svg\",\r\n  \"fluent-quiz-new-outline.svg\",\r\n  \"fluent-quiz-new.svg\",\r\n  \"fluent-radio-button-outline.svg\",\r\n  \"fluent-radio-button.svg\",\r\n  \"fluent-rating-mature-outline.svg\",\r\n  \"fluent-rating-mature.svg\",\r\n  \"fluent-ratio-one-to-one-outline.svg\",\r\n  \"fluent-ratio-one-to-one.svg\",\r\n  \"fluent-re-order-dots-horizontal.svg\",\r\n  \"fluent-re-order-dots-vertical.svg\",\r\n  \"fluent-re-order-outline.svg\",\r\n  \"fluent-re-order.svg\",\r\n  \"fluent-read-aloud-outline.svg\",\r\n  \"fluent-read-aloud.svg\",\r\n  \"fluent-reading-list-add-outline.svg\",\r\n  \"fluent-reading-list-add.svg\",\r\n  \"fluent-reading-list-outline.svg\",\r\n  \"fluent-reading-list.svg\",\r\n  \"fluent-reading-mode-mobile.svg\",\r\n  \"fluent-real-estate-outline.svg\",\r\n  \"fluent-real-estate.svg\",\r\n  \"fluent-receipt-add-outline.svg\",\r\n  \"fluent-receipt-add.svg\",\r\n  \"fluent-receipt-bag-outline.svg\",\r\n  \"fluent-receipt-bag.svg\",\r\n  \"fluent-receipt-cube-outline.svg\",\r\n  \"fluent-receipt-cube.svg\",\r\n  \"fluent-receipt-money-outline.svg\",\r\n  \"fluent-receipt-money.svg\",\r\n  \"fluent-receipt-outline.svg\",\r\n  \"fluent-receipt-play-outline.svg\",\r\n  \"fluent-receipt-play.svg\",\r\n  \"fluent-receipt-sparkles-outline.svg\",\r\n  \"fluent-receipt-sparkles.svg\",\r\n  \"fluent-receipt.svg\",\r\n  \"fluent-record-outline.svg\",\r\n  \"fluent-record-stop-outline.svg\",\r\n  \"fluent-record-stop.svg\",\r\n  \"fluent-record.svg\",\r\n  \"fluent-rectangle-landscape-sync.svg\",\r\n  \"fluent-rectangle-landscape.svg\",\r\n  \"fluent-remix-add-outline.svg\",\r\n  \"fluent-remix-add.svg\",\r\n  \"fluent-rename-outline.svg\",\r\n  \"fluent-rename.svg\",\r\n  \"fluent-replay-outline.svg\",\r\n  \"fluent-replay.svg\",\r\n  \"fluent-resize-image-outline.svg\",\r\n  \"fluent-resize-image.svg\",\r\n  \"fluent-resize-large-outline.svg\",\r\n  \"fluent-resize-large.svg\",\r\n  \"fluent-resize-outline.svg\",\r\n  \"fluent-resize-small-outline.svg\",\r\n  \"fluent-resize-small.svg\",\r\n  \"fluent-resize-table-outline.svg\",\r\n  \"fluent-resize-table.svg\",\r\n  \"fluent-resize-video-outline.svg\",\r\n  \"fluent-resize-video.svg\",\r\n  \"fluent-resize.svg\",\r\n  \"fluent-reward-outline.svg\",\r\n  \"fluent-reward.svg\",\r\n  \"fluent-rewind-outline.svg\",\r\n  \"fluent-rewind.svg\",\r\n  \"fluent-rhombus-outline.svg\",\r\n  \"fluent-rhombus.svg\",\r\n  \"fluent-ribbon-add-outline.svg\",\r\n  \"fluent-ribbon-add.svg\",\r\n  \"fluent-ribbon-off-outline.svg\",\r\n  \"fluent-ribbon-off.svg\",\r\n  \"fluent-ribbon-outline.svg\",\r\n  \"fluent-ribbon-star-outline.svg\",\r\n  \"fluent-ribbon-star.svg\",\r\n  \"fluent-ribbon.svg\",\r\n  \"fluent-road-cone-outline.svg\",\r\n  \"fluent-road-cone.svg\",\r\n  \"fluent-road-outline.svg\",\r\n  \"fluent-road.svg\",\r\n  \"fluent-rocket-outline.svg\",\r\n  \"fluent-rocket.svg\",\r\n  \"fluent-rotate-left-outline.svg\",\r\n  \"fluent-rotate-left.svg\",\r\n  \"fluent-rotate-right-outline.svg\",\r\n  \"fluent-rotate-right.svg\",\r\n  \"fluent-router-outline.svg\",\r\n  \"fluent-router.svg\",\r\n  \"fluent-row-triple-outline.svg\",\r\n  \"fluent-row-triple.svg\",\r\n  \"fluent-rss-outline.svg\",\r\n  \"fluent-rss.svg\",\r\n  \"fluent-ruler-outline.svg\",\r\n  \"fluent-ruler.svg\",\r\n  \"fluent-run-outline.svg\",\r\n  \"fluent-run.svg\",\r\n  \"fluent-sanitize-outline.svg\",\r\n  \"fluent-sanitize.svg\",\r\n  \"fluent-save-arrow-right-outline.svg\",\r\n  \"fluent-save-arrow-right.svg\",\r\n  \"fluent-save-copy-outline.svg\",\r\n  \"fluent-save-copy.svg\",\r\n  \"fluent-save-edit-outline.svg\",\r\n  \"fluent-save-edit.svg\",\r\n  \"fluent-save-multiple-outline.svg\",\r\n  \"fluent-save-multiple.svg\",\r\n  \"fluent-save-outline.svg\",\r\n  \"fluent-save.svg\",\r\n  \"fluent-savings-outline.svg\",\r\n  \"fluent-savings.svg\",\r\n  \"fluent-scale-fill-outline.svg\",\r\n  \"fluent-scale-fill.svg\",\r\n  \"fluent-scale-fit-outline.svg\",\r\n  \"fluent-scale-fit.svg\",\r\n  \"fluent-scales-outline.svg\",\r\n  \"fluent-scales.svg\",\r\n  \"fluent-scan-camera-outline.svg\",\r\n  \"fluent-scan-camera.svg\",\r\n  \"fluent-scan-dash-outline.svg\",\r\n  \"fluent-scan-dash.svg\",\r\n  \"fluent-scan-object-outline.svg\",\r\n  \"fluent-scan-object.svg\",\r\n  \"fluent-scan-outline.svg\",\r\n  \"fluent-scan-person-outline.svg\",\r\n  \"fluent-scan-person.svg\",\r\n  \"fluent-scan-qr-code-outline.svg\",\r\n  \"fluent-scan-qr-code.svg\",\r\n  \"fluent-scan-table-outline.svg\",\r\n  \"fluent-scan-table.svg\",\r\n  \"fluent-scan-text-outline.svg\",\r\n  \"fluent-scan-text.svg\",\r\n  \"fluent-scan-thumb-up-off-outline.svg\",\r\n  \"fluent-scan-thumb-up-off.svg\",\r\n  \"fluent-scan-thumb-up-outline.svg\",\r\n  \"fluent-scan-thumb-up.svg\",\r\n  \"fluent-scan-type-checkmark.svg\",\r\n  \"fluent-scan-type-off-outline.svg\",\r\n  \"fluent-scan-type-off.svg\",\r\n  \"fluent-scan-type-outline.svg\",\r\n  \"fluent-scan-type.svg\",\r\n  \"fluent-scan.svg\",\r\n  \"fluent-scratchpad-outline.svg\",\r\n  \"fluent-scratchpad.svg\",\r\n  \"fluent-screen-search-outline.svg\",\r\n  \"fluent-screen-search.svg\",\r\n  \"fluent-screenshot-outline.svg\",\r\n  \"fluent-screenshot-record-outline.svg\",\r\n  \"fluent-screenshot-record.svg\",\r\n  \"fluent-screenshot.svg\",\r\n  \"fluent-script-outline.svg\",\r\n  \"fluent-script.svg\",\r\n  \"fluent-search-info-outline.svg\",\r\n  \"fluent-search-info.svg\",\r\n  \"fluent-search-outline.svg\",\r\n  \"fluent-search-sparkle-outline.svg\",\r\n  \"fluent-search-sparkle.svg\",\r\n  \"fluent-search-square-outline.svg\",\r\n  \"fluent-search-square.svg\",\r\n  \"fluent-search-visual-outline.svg\",\r\n  \"fluent-search-visual.svg\",\r\n  \"fluent-search.svg\",\r\n  \"fluent-seat-add-outline.svg\",\r\n  \"fluent-seat-add.svg\",\r\n  \"fluent-seat-outline.svg\",\r\n  \"fluent-seat.svg\",\r\n  \"fluent-select-all-off-outline.svg\",\r\n  \"fluent-select-all-off.svg\",\r\n  \"fluent-select-all-on-outline.svg\",\r\n  \"fluent-select-all-on.svg\",\r\n  \"fluent-select-object-outline.svg\",\r\n  \"fluent-select-object-skew-edit.svg\",\r\n  \"fluent-select-object-skew.svg\",\r\n  \"fluent-select-object.svg\",\r\n  \"fluent-send-beaker-outline.svg\",\r\n  \"fluent-send-beaker.svg\",\r\n  \"fluent-send-clock-outline.svg\",\r\n  \"fluent-send-clock.svg\",\r\n  \"fluent-send-copy-outline.svg\",\r\n  \"fluent-send-copy.svg\",\r\n  \"fluent-send-outline.svg\",\r\n  \"fluent-send-person-outline.svg\",\r\n  \"fluent-send-person.svg\",\r\n  \"fluent-send.svg\",\r\n  \"fluent-serial-port-outline.svg\",\r\n  \"fluent-serial-port.svg\",\r\n  \"fluent-server-link-outline.svg\",\r\n  \"fluent-server-link.svg\",\r\n  \"fluent-server-outline.svg\",\r\n  \"fluent-server.svg\",\r\n  \"fluent-service-bell-outline.svg\",\r\n  \"fluent-service-bell.svg\",\r\n  \"fluent-settings-chat-outline.svg\",\r\n  \"fluent-settings-chat.svg\",\r\n  \"fluent-settings-cog-multiple.svg\",\r\n  \"fluent-settings-outline.svg\",\r\n  \"fluent-settings.svg\",\r\n  \"fluent-shape-exclude-outline.svg\",\r\n  \"fluent-shape-exclude.svg\",\r\n  \"fluent-shape-intersect-outline.svg\",\r\n  \"fluent-shape-intersect.svg\",\r\n  \"fluent-shape-organic-outline.svg\",\r\n  \"fluent-shape-organic.svg\",\r\n  \"fluent-shape-subtract-outline.svg\",\r\n  \"fluent-shape-subtract.svg\",\r\n  \"fluent-shape-union-outline.svg\",\r\n  \"fluent-shape-union.svg\",\r\n  \"fluent-shapes-outline.svg\",\r\n  \"fluent-shapes.svg\",\r\n  \"fluent-share-android-outline.svg\",\r\n  \"fluent-share-android.svg\",\r\n  \"fluent-share-close-tray-outline.svg\",\r\n  \"fluent-share-close-tray.svg\",\r\n  \"fluent-share-ios-outline.svg\",\r\n  \"fluent-share-ios.svg\",\r\n  \"fluent-share-multiple-outline.svg\",\r\n  \"fluent-share-multiple.svg\",\r\n  \"fluent-share-outline.svg\",\r\n  \"fluent-share-screen-person-p.svg\",\r\n  \"fluent-share-screen-person.svg\",\r\n  \"fluent-share-screen-start.svg\",\r\n  \"fluent-share-screen-stop-outline.svg\",\r\n  \"fluent-share-screen-stop.svg\",\r\n  \"fluent-share.svg\",\r\n  \"fluent-shield-add-outline.svg\",\r\n  \"fluent-shield-add.svg\",\r\n  \"fluent-shield-badge-outline.svg\",\r\n  \"fluent-shield-badge.svg\",\r\n  \"fluent-shield-checkmark-outline.svg\",\r\n  \"fluent-shield-checkmark.svg\",\r\n  \"fluent-shield-dismiss-outline.svg\",\r\n  \"fluent-shield-dismiss.svg\",\r\n  \"fluent-shield-error-outline.svg\",\r\n  \"fluent-shield-error.svg\",\r\n  \"fluent-shield-globe-outline.svg\",\r\n  \"fluent-shield-globe.svg\",\r\n  \"fluent-shield-keyhole-outline.svg\",\r\n  \"fluent-shield-keyhole.svg\",\r\n  \"fluent-shield-lock-outline.svg\",\r\n  \"fluent-shield-lock.svg\",\r\n  \"fluent-shield-outline.svg\",\r\n  \"fluent-shield-prohibited-outline.svg\",\r\n  \"fluent-shield-prohibited.svg\",\r\n  \"fluent-shield-question-outline.svg\",\r\n  \"fluent-shield-question.svg\",\r\n  \"fluent-shield-task-outline.svg\",\r\n  \"fluent-shield-task.svg\",\r\n  \"fluent-shield.svg\",\r\n  \"fluent-shifts-30-minutes-outline.svg\",\r\n  \"fluent-shifts-30-minutes.svg\",\r\n  \"fluent-shifts-activity-outline.svg\",\r\n  \"fluent-shifts-activity.svg\",\r\n  \"fluent-shifts-add-outline.svg\",\r\n  \"fluent-shifts-add.svg\",\r\n  \"fluent-shifts-availability.svg\",\r\n  \"fluent-shifts-checkmark-outline.svg\",\r\n  \"fluent-shifts-checkmark.svg\",\r\n  \"fluent-shifts-day-outline.svg\",\r\n  \"fluent-shifts-day.svg\",\r\n  \"fluent-shifts-open-outline.svg\",\r\n  \"fluent-shifts-open.svg\",\r\n  \"fluent-shifts-outline.svg\",\r\n  \"fluent-shifts-prohibited-outline.svg\",\r\n  \"fluent-shifts-prohibited.svg\",\r\n  \"fluent-shifts-question-mark.svg\",\r\n  \"fluent-shifts-team-outline.svg\",\r\n  \"fluent-shifts-team.svg\",\r\n  \"fluent-shifts.svg\",\r\n  \"fluent-shopping-bag-add-outline.svg\",\r\n  \"fluent-shopping-bag-add.svg\",\r\n  \"fluent-shopping-bag-arrow-left.svg\",\r\n  \"fluent-shopping-bag-dismiss.svg\",\r\n  \"fluent-shopping-bag-outline.svg\",\r\n  \"fluent-shopping-bag-pause.svg\",\r\n  \"fluent-shopping-bag-percent.svg\",\r\n  \"fluent-shopping-bag-play-outline.svg\",\r\n  \"fluent-shopping-bag-play.svg\",\r\n  \"fluent-shopping-bag-tag-outline.svg\",\r\n  \"fluent-shopping-bag-tag.svg\",\r\n  \"fluent-shopping-bag.svg\",\r\n  \"fluent-shortpick-outline.svg\",\r\n  \"fluent-shortpick.svg\",\r\n  \"fluent-showerhead-outline.svg\",\r\n  \"fluent-showerhead.svg\",\r\n  \"fluent-sign-out-outline.svg\",\r\n  \"fluent-sign-out.svg\",\r\n  \"fluent-signature-outline.svg\",\r\n  \"fluent-signature.svg\",\r\n  \"fluent-sim-outline.svg\",\r\n  \"fluent-sim.svg\",\r\n  \"fluent-skip-back-10-outline.svg\",\r\n  \"fluent-skip-back-10.svg\",\r\n  \"fluent-skip-forward-10-outline.svg\",\r\n  \"fluent-skip-forward-10.svg\",\r\n  \"fluent-skip-forward-30-outline.svg\",\r\n  \"fluent-skip-forward-30.svg\",\r\n  \"fluent-skip-forward-tab-outline.svg\",\r\n  \"fluent-skip-forward-tab.svg\",\r\n  \"fluent-slash-forward-outline.svg\",\r\n  \"fluent-slash-forward.svg\",\r\n  \"fluent-sleep-outline.svg\",\r\n  \"fluent-sleep.svg\",\r\n  \"fluent-slide-add-outline.svg\",\r\n  \"fluent-slide-add.svg\",\r\n  \"fluent-slide-arrow-right-outline.svg\",\r\n  \"fluent-slide-arrow-right.svg\",\r\n  \"fluent-slide-content-outline.svg\",\r\n  \"fluent-slide-content.svg\",\r\n  \"fluent-slide-eraser-outline.svg\",\r\n  \"fluent-slide-eraser.svg\",\r\n  \"fluent-slide-grid-outline.svg\",\r\n  \"fluent-slide-grid.svg\",\r\n  \"fluent-slide-hide-outline.svg\",\r\n  \"fluent-slide-hide.svg\",\r\n  \"fluent-slide-layout-outline.svg\",\r\n  \"fluent-slide-layout.svg\",\r\n  \"fluent-slide-link-outline.svg\",\r\n  \"fluent-slide-link.svg\",\r\n  \"fluent-slide-microphone-outline.svg\",\r\n  \"fluent-slide-microphone.svg\",\r\n  \"fluent-slide-multiple-outline.svg\",\r\n  \"fluent-slide-multiple-search.svg\",\r\n  \"fluent-slide-multiple.svg\",\r\n  \"fluent-slide-play-outline.svg\",\r\n  \"fluent-slide-play.svg\",\r\n  \"fluent-slide-record-outline.svg\",\r\n  \"fluent-slide-record.svg\",\r\n  \"fluent-slide-search-outline.svg\",\r\n  \"fluent-slide-search.svg\",\r\n  \"fluent-slide-settings-outline.svg\",\r\n  \"fluent-slide-settings.svg\",\r\n  \"fluent-slide-size-outline.svg\",\r\n  \"fluent-slide-size.svg\",\r\n  \"fluent-slide-text-call-outline.svg\",\r\n  \"fluent-slide-text-call.svg\",\r\n  \"fluent-slide-text-cursor-outline.svg\",\r\n  \"fluent-slide-text-cursor.svg\",\r\n  \"fluent-slide-text-edit-outline.svg\",\r\n  \"fluent-slide-text-edit.svg\",\r\n  \"fluent-slide-text-multiple.svg\",\r\n  \"fluent-slide-text-outline.svg\",\r\n  \"fluent-slide-text-person-outline.svg\",\r\n  \"fluent-slide-text-person.svg\",\r\n  \"fluent-slide-text-sparkle.svg\",\r\n  \"fluent-slide-text.svg\",\r\n  \"fluent-slide-transition-outline.svg\",\r\n  \"fluent-slide-transition.svg\",\r\n  \"fluent-smartwatch-dot-outline.svg\",\r\n  \"fluent-smartwatch-dot.svg\",\r\n  \"fluent-smartwatch-outline.svg\",\r\n  \"fluent-smartwatch.svg\",\r\n  \"fluent-snooze-outline.svg\",\r\n  \"fluent-snooze.svg\",\r\n  \"fluent-sound-source-outline.svg\",\r\n  \"fluent-sound-source.svg\",\r\n  \"fluent-sound-wave-circle-outline.svg\",\r\n  \"fluent-sound-wave-circle.svg\",\r\n  \"fluent-space-3d-outline.svg\",\r\n  \"fluent-space-3d.svg\",\r\n  \"fluent-spacebar-outline.svg\",\r\n  \"fluent-spacebar.svg\",\r\n  \"fluent-sparkle-circle-outline.svg\",\r\n  \"fluent-sparkle-circle.svg\",\r\n  \"fluent-sparkle-outline.svg\",\r\n  \"fluent-sparkle.svg\",\r\n  \"fluent-spatula-spoon-outline.svg\",\r\n  \"fluent-spatula-spoon.svg\",\r\n  \"fluent-speaker-0-outline.svg\",\r\n  \"fluent-speaker-0.svg\",\r\n  \"fluent-speaker-1-outline.svg\",\r\n  \"fluent-speaker-1.svg\",\r\n  \"fluent-speaker-2-outline.svg\",\r\n  \"fluent-speaker-2.svg\",\r\n  \"fluent-speaker-bluetooth-outline.svg\",\r\n  \"fluent-speaker-bluetooth.svg\",\r\n  \"fluent-speaker-box-outline.svg\",\r\n  \"fluent-speaker-box.svg\",\r\n  \"fluent-speaker-edit-outline.svg\",\r\n  \"fluent-speaker-edit.svg\",\r\n  \"fluent-speaker-mute-outline.svg\",\r\n  \"fluent-speaker-mute.svg\",\r\n  \"fluent-speaker-off-outline.svg\",\r\n  \"fluent-speaker-off.svg\",\r\n  \"fluent-speaker-settings-outline.svg\",\r\n  \"fluent-speaker-settings.svg\",\r\n  \"fluent-speaker-usb-outline.svg\",\r\n  \"fluent-speaker-usb.svg\",\r\n  \"fluent-split-horizontal-outline.svg\",\r\n  \"fluent-split-horizontal.svg\",\r\n  \"fluent-split-vertical-outline.svg\",\r\n  \"fluent-split-vertical.svg\",\r\n  \"fluent-sport-american-football.svg\",\r\n  \"fluent-sport-baseball-outline.svg\",\r\n  \"fluent-sport-baseball.svg\",\r\n  \"fluent-sport-basketball-outline.svg\",\r\n  \"fluent-sport-basketball.svg\",\r\n  \"fluent-sport-hockey-outline.svg\",\r\n  \"fluent-sport-hockey.svg\",\r\n  \"fluent-sport-outline.svg\",\r\n  \"fluent-sport-soccer-outline.svg\",\r\n  \"fluent-sport-soccer.svg\",\r\n  \"fluent-sport.svg\",\r\n  \"fluent-square-arrow-forward.svg\",\r\n  \"fluent-square-dovetail-joint.svg\",\r\n  \"fluent-square-hint-apps-outline.svg\",\r\n  \"fluent-square-hint-apps.svg\",\r\n  \"fluent-square-hint-hexagon.svg\",\r\n  \"fluent-square-hint-outline.svg\",\r\n  \"fluent-square-hint-sparkles.svg\",\r\n  \"fluent-square-hint.svg\",\r\n  \"fluent-square-multiple-outline.svg\",\r\n  \"fluent-square-multiple.svg\",\r\n  \"fluent-square-outline.svg\",\r\n  \"fluent-square.svg\",\r\n  \"fluent-stack-add-outline.svg\",\r\n  \"fluent-stack-add.svg\",\r\n  \"fluent-stack-arrow-forward.svg\",\r\n  \"fluent-stack-outline.svg\",\r\n  \"fluent-stack-star-outline.svg\",\r\n  \"fluent-stack-star.svg\",\r\n  \"fluent-stack-vertical-outline.svg\",\r\n  \"fluent-stack-vertical.svg\",\r\n  \"fluent-stack.svg\",\r\n  \"fluent-star-add-outline.svg\",\r\n  \"fluent-star-add.svg\",\r\n  \"fluent-star-arrow-back-outline.svg\",\r\n  \"fluent-star-arrow-back.svg\",\r\n  \"fluent-star-arrow-right-end.svg\",\r\n  \"fluent-star-arrow-right-start.svg\",\r\n  \"fluent-star-checkmark-outline.svg\",\r\n  \"fluent-star-checkmark.svg\",\r\n  \"fluent-star-dismiss-outline.svg\",\r\n  \"fluent-star-dismiss.svg\",\r\n  \"fluent-star-edit-outline.svg\",\r\n  \"fluent-star-edit.svg\",\r\n  \"fluent-star-emphasis-outline.svg\",\r\n  \"fluent-star-emphasis.svg\",\r\n  \"fluent-star-half-outline.svg\",\r\n  \"fluent-star-half.svg\",\r\n  \"fluent-star-line-horizontal-3.svg\",\r\n  \"fluent-star-off-outline.svg\",\r\n  \"fluent-star-off.svg\",\r\n  \"fluent-star-one-quarter-outline.svg\",\r\n  \"fluent-star-one-quarter.svg\",\r\n  \"fluent-star-outline.svg\",\r\n  \"fluent-star-prohibited-outline.svg\",\r\n  \"fluent-star-prohibited.svg\",\r\n  \"fluent-star-settings-outline.svg\",\r\n  \"fluent-star-settings.svg\",\r\n  \"fluent-star-three-quarter.svg\",\r\n  \"fluent-star.svg\",\r\n  \"fluent-status-outline.svg\",\r\n  \"fluent-status.svg\",\r\n  \"fluent-step-outline.svg\",\r\n  \"fluent-step.svg\",\r\n  \"fluent-steps-outline.svg\",\r\n  \"fluent-steps.svg\",\r\n  \"fluent-stethoscope-outline.svg\",\r\n  \"fluent-stethoscope.svg\",\r\n  \"fluent-sticker-add-outline.svg\",\r\n  \"fluent-sticker-add.svg\",\r\n  \"fluent-sticker-outline.svg\",\r\n  \"fluent-sticker.svg\",\r\n  \"fluent-stop-outline.svg\",\r\n  \"fluent-stop.svg\",\r\n  \"fluent-storage-outline.svg\",\r\n  \"fluent-storage.svg\",\r\n  \"fluent-store-microsoft-outline.svg\",\r\n  \"fluent-store-microsoft.svg\",\r\n  \"fluent-stream-outline.svg\",\r\n  \"fluent-stream.svg\",\r\n  \"fluent-street-sign-outline.svg\",\r\n  \"fluent-street-sign.svg\",\r\n  \"fluent-style-guide-outline.svg\",\r\n  \"fluent-style-guide.svg\",\r\n  \"fluent-sub-grid-outline.svg\",\r\n  \"fluent-sub-grid.svg\",\r\n  \"fluent-subtitles-outline.svg\",\r\n  \"fluent-subtitles.svg\",\r\n  \"fluent-subtract-circle-outline.svg\",\r\n  \"fluent-subtract-circle.svg\",\r\n  \"fluent-subtract-outline.svg\",\r\n  \"fluent-subtract-parentheses.svg\",\r\n  \"fluent-subtract-square-outline.svg\",\r\n  \"fluent-subtract-square.svg\",\r\n  \"fluent-subtract.svg\",\r\n  \"fluent-surface-earbuds-outline.svg\",\r\n  \"fluent-surface-earbuds.svg\",\r\n  \"fluent-surface-hub-outline.svg\",\r\n  \"fluent-surface-hub.svg\",\r\n  \"fluent-swimming-pool-outline.svg\",\r\n  \"fluent-swimming-pool.svg\",\r\n  \"fluent-swipe-down-outline.svg\",\r\n  \"fluent-swipe-down.svg\",\r\n  \"fluent-swipe-right-outline.svg\",\r\n  \"fluent-swipe-right.svg\",\r\n  \"fluent-swipe-up-outline.svg\",\r\n  \"fluent-swipe-up.svg\",\r\n  \"fluent-symbols-outline.svg\",\r\n  \"fluent-symbols.svg\",\r\n  \"fluent-syringe-outline.svg\",\r\n  \"fluent-syringe.svg\",\r\n  \"fluent-system-outline.svg\",\r\n  \"fluent-system.svg\",\r\n  \"fluent-tab-add-outline.svg\",\r\n  \"fluent-tab-add.svg\",\r\n  \"fluent-tab-arrow-left-outline.svg\",\r\n  \"fluent-tab-arrow-left.svg\",\r\n  \"fluent-tab-desktop-bottom.svg\",\r\n  \"fluent-tab-desktop-image-outline.svg\",\r\n  \"fluent-tab-desktop-image.svg\",\r\n  \"fluent-tab-desktop-link-outline.svg\",\r\n  \"fluent-tab-desktop-link.svg\",\r\n  \"fluent-tab-desktop-multiple.svg\",\r\n  \"fluent-tab-desktop-outline.svg\",\r\n  \"fluent-tab-desktop-search.svg\",\r\n  \"fluent-tab-desktop.svg\",\r\n  \"fluent-tab-group-outline.svg\",\r\n  \"fluent-tab-group.svg\",\r\n  \"fluent-tab-in-private-outline.svg\",\r\n  \"fluent-tab-in-private.svg\",\r\n  \"fluent-tab-inprivate-account.svg\",\r\n  \"fluent-tab-outline.svg\",\r\n  \"fluent-tab-prohibited-outline.svg\",\r\n  \"fluent-tab-prohibited.svg\",\r\n  \"fluent-tab-shield-dismiss.svg\",\r\n  \"fluent-tab.svg\",\r\n  \"fluent-table-add-outline.svg\",\r\n  \"fluent-table-add.svg\",\r\n  \"fluent-table-arrow-up-outline.svg\",\r\n  \"fluent-table-arrow-up.svg\",\r\n  \"fluent-table-bottom-row-outline.svg\",\r\n  \"fluent-table-bottom-row.svg\",\r\n  \"fluent-table-cell-edit-outline.svg\",\r\n  \"fluent-table-cell-edit.svg\",\r\n  \"fluent-table-cells-merge-outline.svg\",\r\n  \"fluent-table-cells-merge.svg\",\r\n  \"fluent-table-cells-split-outline.svg\",\r\n  \"fluent-table-cells-split.svg\",\r\n  \"fluent-table-column-top-bottom.svg\",\r\n  \"fluent-table-cursor-outline.svg\",\r\n  \"fluent-table-cursor.svg\",\r\n  \"fluent-table-delete-column.svg\",\r\n  \"fluent-table-delete-row-outline.svg\",\r\n  \"fluent-table-delete-row.svg\",\r\n  \"fluent-table-dismiss-outline.svg\",\r\n  \"fluent-table-dismiss.svg\",\r\n  \"fluent-table-edit-outline.svg\",\r\n  \"fluent-table-edit.svg\",\r\n  \"fluent-table-freeze-column.svg\",\r\n  \"fluent-table-freeze-row-outline.svg\",\r\n  \"fluent-table-freeze-row.svg\",\r\n  \"fluent-table-insert-column.svg\",\r\n  \"fluent-table-insert-row-outline.svg\",\r\n  \"fluent-table-insert-row.svg\",\r\n  \"fluent-table-lightning-outline.svg\",\r\n  \"fluent-table-lightning.svg\",\r\n  \"fluent-table-link-outline.svg\",\r\n  \"fluent-table-link.svg\",\r\n  \"fluent-table-lock-outline.svg\",\r\n  \"fluent-table-lock.svg\",\r\n  \"fluent-table-move-above-outline.svg\",\r\n  \"fluent-table-move-above.svg\",\r\n  \"fluent-table-move-below-outline.svg\",\r\n  \"fluent-table-move-below.svg\",\r\n  \"fluent-table-move-left-outline.svg\",\r\n  \"fluent-table-move-left.svg\",\r\n  \"fluent-table-move-right-outline.svg\",\r\n  \"fluent-table-move-right.svg\",\r\n  \"fluent-table-offset-add-outline.svg\",\r\n  \"fluent-table-offset-add.svg\",\r\n  \"fluent-table-offset-outline.svg\",\r\n  \"fluent-table-offset-settings.svg\",\r\n  \"fluent-table-offset.svg\",\r\n  \"fluent-table-outline.svg\",\r\n  \"fluent-table-resize-column.svg\",\r\n  \"fluent-table-resize-row-outline.svg\",\r\n  \"fluent-table-resize-row.svg\",\r\n  \"fluent-table-settings-outline.svg\",\r\n  \"fluent-table-settings.svg\",\r\n  \"fluent-table-simple-checkmark.svg\",\r\n  \"fluent-table-simple-exclude.svg\",\r\n  \"fluent-table-simple-include.svg\",\r\n  \"fluent-table-simple-multiple.svg\",\r\n  \"fluent-table-simple-outline.svg\",\r\n  \"fluent-table-simple.svg\",\r\n  \"fluent-table-sparkle-outline.svg\",\r\n  \"fluent-table-sparkle.svg\",\r\n  \"fluent-table-stack-above-outline.svg\",\r\n  \"fluent-table-stack-above.svg\",\r\n  \"fluent-table-stack-below-outline.svg\",\r\n  \"fluent-table-stack-below.svg\",\r\n  \"fluent-table-stack-left-outline.svg\",\r\n  \"fluent-table-stack-left.svg\",\r\n  \"fluent-table-stack-right-outline.svg\",\r\n  \"fluent-table-stack-right.svg\",\r\n  \"fluent-table-switch-outline.svg\",\r\n  \"fluent-table-switch.svg\",\r\n  \"fluent-table.svg\",\r\n  \"fluent-tablet-laptop-outline.svg\",\r\n  \"fluent-tablet-laptop.svg\",\r\n  \"fluent-tablet-outline.svg\",\r\n  \"fluent-tablet-speaker-outline.svg\",\r\n  \"fluent-tablet-speaker.svg\",\r\n  \"fluent-tablet.svg\",\r\n  \"fluent-tabs-outline.svg\",\r\n  \"fluent-tabs.svg\",\r\n  \"fluent-tag-dismiss-outline.svg\",\r\n  \"fluent-tag-dismiss.svg\",\r\n  \"fluent-tag-error-outline.svg\",\r\n  \"fluent-tag-error.svg\",\r\n  \"fluent-tag-lock-accent.svg\",\r\n  \"fluent-tag-lock-outline.svg\",\r\n  \"fluent-tag-lock.svg\",\r\n  \"fluent-tag-multiple-outline.svg\",\r\n  \"fluent-tag-multiple.svg\",\r\n  \"fluent-tag-off-outline.svg\",\r\n  \"fluent-tag-off.svg\",\r\n  \"fluent-tag-outline.svg\",\r\n  \"fluent-tag-question-mark-outline.svg\",\r\n  \"fluent-tag-question-mark.svg\",\r\n  \"fluent-tag-reset-outline.svg\",\r\n  \"fluent-tag-reset.svg\",\r\n  \"fluent-tag-search-outline.svg\",\r\n  \"fluent-tag-search.svg\",\r\n  \"fluent-tag.svg\",\r\n  \"fluent-tap-double-outline.svg\",\r\n  \"fluent-tap-double.svg\",\r\n  \"fluent-tap-single-outline.svg\",\r\n  \"fluent-tap-single.svg\",\r\n  \"fluent-target-add-outline.svg\",\r\n  \"fluent-target-add.svg\",\r\n  \"fluent-target-arrow-outline.svg\",\r\n  \"fluent-target-arrow.svg\",\r\n  \"fluent-target-dismiss-outline.svg\",\r\n  \"fluent-target-dismiss.svg\",\r\n  \"fluent-target-edit-outline.svg\",\r\n  \"fluent-target-edit.svg\",\r\n  \"fluent-target-outline.svg\",\r\n  \"fluent-target.svg\",\r\n  \"fluent-task-list-add-outline.svg\",\r\n  \"fluent-task-list-add.svg\",\r\n  \"fluent-task-list-ltr-outline.svg\",\r\n  \"fluent-task-list-ltr.svg\",\r\n  \"fluent-task-list-rtl-outline.svg\",\r\n  \"fluent-task-list-rtl.svg\",\r\n  \"fluent-task-list-square-add.svg\",\r\n  \"fluent-task-list-square-ltr.svg\",\r\n  \"fluent-task-list-square-rtl.svg\",\r\n  \"fluent-tasks-app-outline.svg\",\r\n  \"fluent-tasks-app.svg\",\r\n  \"fluent-teaching-outline.svg\",\r\n  \"fluent-teaching.svg\",\r\n  \"fluent-teardrop-bottom-right.svg\",\r\n  \"fluent-teddy-outline.svg\",\r\n  \"fluent-teddy.svg\",\r\n  \"fluent-temperature-outline.svg\",\r\n  \"fluent-temperature.svg\",\r\n  \"fluent-tent-outline.svg\",\r\n  \"fluent-tent.svg\",\r\n  \"fluent-tetris-app-outline.svg\",\r\n  \"fluent-tetris-app.svg\",\r\n  \"fluent-text-add-space-after.svg\",\r\n  \"fluent-text-add-space-before.svg\",\r\n  \"fluent-text-add-t-outline.svg\",\r\n  \"fluent-text-add-t.svg\",\r\n  \"fluent-text-align-center-outline.svg\",\r\n  \"fluent-text-align-center.svg\",\r\n  \"fluent-text-align-distributed.svg\",\r\n  \"fluent-text-align-justify-low-90.svg\",\r\n  \"fluent-text-align-justify-low.svg\",\r\n  \"fluent-text-align-justify.svg\",\r\n  \"fluent-text-align-left-outline.svg\",\r\n  \"fluent-text-align-left-rotate-90.svg\",\r\n  \"fluent-text-align-left.svg\",\r\n  \"fluent-text-align-right-outline.svg\",\r\n  \"fluent-text-align-right.svg\",\r\n  \"fluent-text-bold-outline.svg\",\r\n  \"fluent-text-bold.svg\",\r\n  \"fluent-text-box-settings-outline.svg\",\r\n  \"fluent-text-box-settings.svg\",\r\n  \"fluent-text-bullet-list-270.svg\",\r\n  \"fluent-text-bullet-list-90.svg\",\r\n  \"fluent-text-bullet-list-add.svg\",\r\n  \"fluent-text-bullet-list-ltr-90.svg\",\r\n  \"fluent-text-bullet-list-ltr.svg\",\r\n  \"fluent-text-bullet-list-outline.svg\",\r\n  \"fluent-text-bullet-list-rtl.svg\",\r\n  \"fluent-text-bullet-list-square.svg\",\r\n  \"fluent-text-bullet-list-tree.svg\",\r\n  \"fluent-text-bullet-list.svg\",\r\n  \"fluent-text-case-lowercase.svg\",\r\n  \"fluent-text-case-title-outline.svg\",\r\n  \"fluent-text-case-title.svg\",\r\n  \"fluent-text-case-uppercase.svg\",\r\n  \"fluent-text-change-case-outline.svg\",\r\n  \"fluent-text-change-case.svg\",\r\n  \"fluent-text-clear-formatting.svg\",\r\n  \"fluent-text-collapse-outline.svg\",\r\n  \"fluent-text-collapse.svg\",\r\n  \"fluent-text-color-accent.svg\",\r\n  \"fluent-text-color-outline.svg\",\r\n  \"fluent-text-color.svg\",\r\n  \"fluent-text-column-one-narrow.svg\",\r\n  \"fluent-text-column-one-outline.svg\",\r\n  \"fluent-text-column-one-wide.svg\",\r\n  \"fluent-text-column-one.svg\",\r\n  \"fluent-text-column-three-outline.svg\",\r\n  \"fluent-text-column-three.svg\",\r\n  \"fluent-text-column-two-left.svg\",\r\n  \"fluent-text-column-two-outline.svg\",\r\n  \"fluent-text-column-two-right.svg\",\r\n  \"fluent-text-column-two.svg\",\r\n  \"fluent-text-column-wide-outline.svg\",\r\n  \"fluent-text-column-wide.svg\",\r\n  \"fluent-text-continuous-outline.svg\",\r\n  \"fluent-text-continuous.svg\",\r\n  \"fluent-text-density-outline.svg\",\r\n  \"fluent-text-density.svg\",\r\n  \"fluent-text-description-ltr.svg\",\r\n  \"fluent-text-description-outline.svg\",\r\n  \"fluent-text-description-rtl.svg\",\r\n  \"fluent-text-description.svg\",\r\n  \"fluent-text-direction-vertical.svg\",\r\n  \"fluent-text-edit-style-outline.svg\",\r\n  \"fluent-text-edit-style.svg\",\r\n  \"fluent-text-effects-outline.svg\",\r\n  \"fluent-text-effects-sparkle.svg\",\r\n  \"fluent-text-effects.svg\",\r\n  \"fluent-text-expand-outline.svg\",\r\n  \"fluent-text-expand.svg\",\r\n  \"fluent-text-field-outline.svg\",\r\n  \"fluent-text-field.svg\",\r\n  \"fluent-text-first-line-outline.svg\",\r\n  \"fluent-text-first-line.svg\",\r\n  \"fluent-text-font-info-outline.svg\",\r\n  \"fluent-text-font-info.svg\",\r\n  \"fluent-text-font-outline.svg\",\r\n  \"fluent-text-font-size-outline.svg\",\r\n  \"fluent-text-font-size.svg\",\r\n  \"fluent-text-font.svg\",\r\n  \"fluent-text-footnote-outline.svg\",\r\n  \"fluent-text-footnote.svg\",\r\n  \"fluent-text-grammar-arrow-left.svg\",\r\n  \"fluent-text-grammar-arrow-right.svg\",\r\n  \"fluent-text-grammar-checkmark.svg\",\r\n  \"fluent-text-grammar-dismiss.svg\",\r\n  \"fluent-text-grammar-lightning.svg\",\r\n  \"fluent-text-grammar-settings.svg\",\r\n  \"fluent-text-grammar-wand-outline.svg\",\r\n  \"fluent-text-grammar-wand.svg\",\r\n  \"fluent-text-hanging-outline.svg\",\r\n  \"fluent-text-hanging.svg\",\r\n  \"fluent-text-header-1-lines-caret.svg\",\r\n  \"fluent-text-header-1-lines.svg\",\r\n  \"fluent-text-header-1-outline.svg\",\r\n  \"fluent-text-header-1.svg\",\r\n  \"fluent-text-header-2-lines-caret.svg\",\r\n  \"fluent-text-header-2-lines.svg\",\r\n  \"fluent-text-header-2-outline.svg\",\r\n  \"fluent-text-header-2.svg\",\r\n  \"fluent-text-header-3-lines-caret.svg\",\r\n  \"fluent-text-header-3-lines.svg\",\r\n  \"fluent-text-header-3-outline.svg\",\r\n  \"fluent-text-header-3.svg\",\r\n  \"fluent-text-indent-decrease-ltr.svg\",\r\n  \"fluent-text-indent-decrease-rtl.svg\",\r\n  \"fluent-text-indent-decrease.svg\",\r\n  \"fluent-text-indent-increase-ltr.svg\",\r\n  \"fluent-text-indent-increase-rtl.svg\",\r\n  \"fluent-text-indent-increase.svg\",\r\n  \"fluent-text-italic-outline.svg\",\r\n  \"fluent-text-italic.svg\",\r\n  \"fluent-text-line-spacing-outline.svg\",\r\n  \"fluent-text-line-spacing.svg\",\r\n  \"fluent-text-more-outline.svg\",\r\n  \"fluent-text-more.svg\",\r\n  \"fluent-text-number-format.svg\",\r\n  \"fluent-text-number-list-ltr-90.svg\",\r\n  \"fluent-text-number-list-ltr.svg\",\r\n  \"fluent-text-number-list-rtl-90.svg\",\r\n  \"fluent-text-number-list-rtl.svg\",\r\n  \"fluent-text-paragraph-direction.svg\",\r\n  \"fluent-text-paragraph-outline.svg\",\r\n  \"fluent-text-paragraph.svg\",\r\n  \"fluent-text-position-behind.svg\",\r\n  \"fluent-text-position-front.svg\",\r\n  \"fluent-text-position-line.svg\",\r\n  \"fluent-text-position-square-left.svg\",\r\n  \"fluent-text-position-square.svg\",\r\n  \"fluent-text-position-through.svg\",\r\n  \"fluent-text-position-tight.svg\",\r\n  \"fluent-text-position-top-bottom.svg\",\r\n  \"fluent-text-proofing-tools.svg\",\r\n  \"fluent-text-quote-outline.svg\",\r\n  \"fluent-text-quote.svg\",\r\n  \"fluent-text-sort-ascending.svg\",\r\n  \"fluent-text-sort-descending.svg\",\r\n  \"fluent-text-strikethrough.svg\",\r\n  \"fluent-text-subscript-outline.svg\",\r\n  \"fluent-text-subscript.svg\",\r\n  \"fluent-text-superscript-outline.svg\",\r\n  \"fluent-text-superscript.svg\",\r\n  \"fluent-text-t-outline.svg\",\r\n  \"fluent-text-t.svg\",\r\n  \"fluent-text-underline-double.svg\",\r\n  \"fluent-text-underline-outline.svg\",\r\n  \"fluent-text-underline.svg\",\r\n  \"fluent-text-word-count-outline.svg\",\r\n  \"fluent-text-word-count.svg\",\r\n  \"fluent-text-wrap-off-outline.svg\",\r\n  \"fluent-text-wrap-off.svg\",\r\n  \"fluent-text-wrap-outline.svg\",\r\n  \"fluent-text-wrap.svg\",\r\n  \"fluent-textbox-align-bottom-left.svg\",\r\n  \"fluent-textbox-align-bottom.svg\",\r\n  \"fluent-textbox-align-center.svg\",\r\n  \"fluent-textbox-align-middle-left.svg\",\r\n  \"fluent-textbox-align-middle.svg\",\r\n  \"fluent-textbox-align-top-center.svg\",\r\n  \"fluent-textbox-align-top-left.svg\",\r\n  \"fluent-textbox-align-top-outline.svg\",\r\n  \"fluent-textbox-align-top-right.svg\",\r\n  \"fluent-textbox-align-top.svg\",\r\n  \"fluent-textbox-more-outline.svg\",\r\n  \"fluent-textbox-more.svg\",\r\n  \"fluent-textbox-outline.svg\",\r\n  \"fluent-textbox-rotate-90-outline.svg\",\r\n  \"fluent-textbox-rotate-90.svg\",\r\n  \"fluent-textbox-settings-outline.svg\",\r\n  \"fluent-textbox-settings.svg\",\r\n  \"fluent-textbox.svg\",\r\n  \"fluent-thinking-outline.svg\",\r\n  \"fluent-thinking.svg\",\r\n  \"fluent-thumb-dislike-outline.svg\",\r\n  \"fluent-thumb-dislike.svg\",\r\n  \"fluent-thumb-like-dislike.svg\",\r\n  \"fluent-thumb-like-outline.svg\",\r\n  \"fluent-thumb-like.svg\",\r\n  \"fluent-ticket-diagonal-outline.svg\",\r\n  \"fluent-ticket-diagonal.svg\",\r\n  \"fluent-ticket-horizontal-outline.svg\",\r\n  \"fluent-ticket-horizontal.svg\",\r\n  \"fluent-time-and-weather-outline.svg\",\r\n  \"fluent-time-and-weather.svg\",\r\n  \"fluent-time-picker-outline.svg\",\r\n  \"fluent-time-picker.svg\",\r\n  \"fluent-timeline-outline.svg\",\r\n  \"fluent-timeline.svg\",\r\n  \"fluent-timer-10-outline.svg\",\r\n  \"fluent-timer-10.svg\",\r\n  \"fluent-timer-2-outline.svg\",\r\n  \"fluent-timer-2.svg\",\r\n  \"fluent-timer-3-outline.svg\",\r\n  \"fluent-timer-3.svg\",\r\n  \"fluent-timer-off-outline.svg\",\r\n  \"fluent-timer-off.svg\",\r\n  \"fluent-timer-outline.svg\",\r\n  \"fluent-timer.svg\",\r\n  \"fluent-toggle-left-outline.svg\",\r\n  \"fluent-toggle-left.svg\",\r\n  \"fluent-toggle-multiple-outline.svg\",\r\n  \"fluent-toggle-multiple.svg\",\r\n  \"fluent-toggle-right-outline.svg\",\r\n  \"fluent-toggle-right.svg\",\r\n  \"fluent-toolbox-outline.svg\",\r\n  \"fluent-toolbox.svg\",\r\n  \"fluent-tooltip-quote-outline.svg\",\r\n  \"fluent-tooltip-quote.svg\",\r\n  \"fluent-top-speed-outline.svg\",\r\n  \"fluent-top-speed.svg\",\r\n  \"fluent-translate-auto-outline.svg\",\r\n  \"fluent-translate-auto.svg\",\r\n  \"fluent-translate-off-outline.svg\",\r\n  \"fluent-translate-off.svg\",\r\n  \"fluent-translate-outline.svg\",\r\n  \"fluent-translate.svg\",\r\n  \"fluent-transmission-outline.svg\",\r\n  \"fluent-transmission.svg\",\r\n  \"fluent-transparency-square.svg\",\r\n  \"fluent-tray-item-add-outline.svg\",\r\n  \"fluent-tray-item-add.svg\",\r\n  \"fluent-tray-item-remove-outline.svg\",\r\n  \"fluent-tray-item-remove.svg\",\r\n  \"fluent-tree-deciduous-outline.svg\",\r\n  \"fluent-tree-deciduous.svg\",\r\n  \"fluent-triangle-down-outline.svg\",\r\n  \"fluent-triangle-down.svg\",\r\n  \"fluent-triangle-outline.svg\",\r\n  \"fluent-triangle.svg\",\r\n  \"fluent-trophy-lock-outline.svg\",\r\n  \"fluent-trophy-lock.svg\",\r\n  \"fluent-trophy-off-outline.svg\",\r\n  \"fluent-trophy-off.svg\",\r\n  \"fluent-trophy-outline.svg\",\r\n  \"fluent-trophy.svg\",\r\n  \"fluent-tv-outline.svg\",\r\n  \"fluent-tv-usb-outline.svg\",\r\n  \"fluent-tv-usb.svg\",\r\n  \"fluent-tv.svg\",\r\n  \"fluent-umbrella-outline.svg\",\r\n  \"fluent-umbrella.svg\",\r\n  \"fluent-uninstall-app-outline.svg\",\r\n  \"fluent-uninstall-app.svg\",\r\n  \"fluent-usb-plug-outline.svg\",\r\n  \"fluent-usb-plug.svg\",\r\n  \"fluent-usb-stick-outline.svg\",\r\n  \"fluent-usb-stick.svg\",\r\n  \"fluent-vault-outline.svg\",\r\n  \"fluent-vault.svg\",\r\n  \"fluent-vehicle-bicycle-outline.svg\",\r\n  \"fluent-vehicle-bicycle.svg\",\r\n  \"fluent-vehicle-bus-outline.svg\",\r\n  \"fluent-vehicle-bus.svg\",\r\n  \"fluent-vehicle-cab-outline.svg\",\r\n  \"fluent-vehicle-cab.svg\",\r\n  \"fluent-vehicle-cable-car-outline.svg\",\r\n  \"fluent-vehicle-cable-car.svg\",\r\n  \"fluent-vehicle-car-collision.svg\",\r\n  \"fluent-vehicle-car-outline.svg\",\r\n  \"fluent-vehicle-car-parking.svg\",\r\n  \"fluent-vehicle-car-profile-ltr.svg\",\r\n  \"fluent-vehicle-car-profile-rtl.svg\",\r\n  \"fluent-vehicle-car-profile.svg\",\r\n  \"fluent-vehicle-car.svg\",\r\n  \"fluent-vehicle-motorcycle.svg\",\r\n  \"fluent-vehicle-ship-outline.svg\",\r\n  \"fluent-vehicle-ship.svg\",\r\n  \"fluent-vehicle-subway-clock.svg\",\r\n  \"fluent-vehicle-subway-outline.svg\",\r\n  \"fluent-vehicle-subway.svg\",\r\n  \"fluent-vehicle-tractor-outline.svg\",\r\n  \"fluent-vehicle-tractor.svg\",\r\n  \"fluent-vehicle-truck-bag-outline.svg\",\r\n  \"fluent-vehicle-truck-bag.svg\",\r\n  \"fluent-vehicle-truck-cube.svg\",\r\n  \"fluent-vehicle-truck-outline.svg\",\r\n  \"fluent-vehicle-truck-profile.svg\",\r\n  \"fluent-vehicle-truck.svg\",\r\n  \"fluent-video-360-outline.svg\",\r\n  \"fluent-video-360.svg\",\r\n  \"fluent-video-add-outline.svg\",\r\n  \"fluent-video-add.svg\",\r\n  \"fluent-video-background-effect.svg\",\r\n  \"fluent-video-chat-outline.svg\",\r\n  \"fluent-video-chat.svg\",\r\n  \"fluent-video-clip-multiple.svg\",\r\n  \"fluent-video-clip-off-outline.svg\",\r\n  \"fluent-video-clip-off.svg\",\r\n  \"fluent-video-clip-optimize.svg\",\r\n  \"fluent-video-clip-outline.svg\",\r\n  \"fluent-video-clip-wand-outline.svg\",\r\n  \"fluent-video-clip-wand.svg\",\r\n  \"fluent-video-clip.svg\",\r\n  \"fluent-video-link-outline.svg\",\r\n  \"fluent-video-link.svg\",\r\n  \"fluent-video-off-outline.svg\",\r\n  \"fluent-video-off.svg\",\r\n  \"fluent-video-outline.svg\",\r\n  \"fluent-video-person-call-outline.svg\",\r\n  \"fluent-video-person-call.svg\",\r\n  \"fluent-video-person-clock.svg\",\r\n  \"fluent-video-person-off-outline.svg\",\r\n  \"fluent-video-person-off.svg\",\r\n  \"fluent-video-person-outline.svg\",\r\n  \"fluent-video-person-pulse.svg\",\r\n  \"fluent-video-person-sparkle-off.svg\",\r\n  \"fluent-video-person-sparkle.svg\",\r\n  \"fluent-video-person-star-off.svg\",\r\n  \"fluent-video-person-star-outline.svg\",\r\n  \"fluent-video-person-star.svg\",\r\n  \"fluent-video-person.svg\",\r\n  \"fluent-video-play-pause-outline.svg\",\r\n  \"fluent-video-play-pause.svg\",\r\n  \"fluent-video-prohibited-outline.svg\",\r\n  \"fluent-video-prohibited.svg\",\r\n  \"fluent-video-security-outline.svg\",\r\n  \"fluent-video-security.svg\",\r\n  \"fluent-video-switch-outline.svg\",\r\n  \"fluent-video-switch.svg\",\r\n  \"fluent-video.svg\",\r\n  \"fluent-view-desktop-mobile.svg\",\r\n  \"fluent-view-desktop-outline.svg\",\r\n  \"fluent-view-desktop.svg\",\r\n  \"fluent-voicemail-outline.svg\",\r\n  \"fluent-voicemail-shield-outline.svg\",\r\n  \"fluent-voicemail-shield.svg\",\r\n  \"fluent-voicemail.svg\",\r\n  \"fluent-vote-outline.svg\",\r\n  \"fluent-vote.svg\",\r\n  \"fluent-walkie-talkie-outline.svg\",\r\n  \"fluent-walkie-talkie.svg\",\r\n  \"fluent-wallet-credit-card.svg\",\r\n  \"fluent-wallet-outline.svg\",\r\n  \"fluent-wallet.svg\",\r\n  \"fluent-wallpaper-outline.svg\",\r\n  \"fluent-wallpaper.svg\",\r\n  \"fluent-wand-outline.svg\",\r\n  \"fluent-wand.svg\",\r\n  \"fluent-warning-lock-open-outline.svg\",\r\n  \"fluent-warning-lock-open.svg\",\r\n  \"fluent-warning-outline.svg\",\r\n  \"fluent-warning.svg\",\r\n  \"fluent-washer-outline.svg\",\r\n  \"fluent-washer.svg\",\r\n  \"fluent-water-outline.svg\",\r\n  \"fluent-water.svg\",\r\n  \"fluent-weather-blowing-snow.svg\",\r\n  \"fluent-weather-cloudy-outline.svg\",\r\n  \"fluent-weather-cloudy.svg\",\r\n  \"fluent-weather-drizzle-outline.svg\",\r\n  \"fluent-weather-drizzle.svg\",\r\n  \"fluent-weather-duststorm-outline.svg\",\r\n  \"fluent-weather-duststorm.svg\",\r\n  \"fluent-weather-fog-outline.svg\",\r\n  \"fluent-weather-fog.svg\",\r\n  \"fluent-weather-hail-day-outline.svg\",\r\n  \"fluent-weather-hail-day.svg\",\r\n  \"fluent-weather-hail-night.svg\",\r\n  \"fluent-weather-haze-outline.svg\",\r\n  \"fluent-weather-haze.svg\",\r\n  \"fluent-weather-moon-off-outline.svg\",\r\n  \"fluent-weather-moon-off.svg\",\r\n  \"fluent-weather-moon-outline.svg\",\r\n  \"fluent-weather-moon.svg\",\r\n  \"fluent-weather-partly-cloudy-day.svg\",\r\n  \"fluent-weather-rain-outline.svg\",\r\n  \"fluent-weather-rain-showers-day.svg\",\r\n  \"fluent-weather-rain-snow-outline.svg\",\r\n  \"fluent-weather-rain-snow.svg\",\r\n  \"fluent-weather-rain.svg\",\r\n  \"fluent-weather-snow-outline.svg\",\r\n  \"fluent-weather-snow-shower-day.svg\",\r\n  \"fluent-weather-snow-shower-night.svg\",\r\n  \"fluent-weather-snow.svg\",\r\n  \"fluent-weather-snowflake-outline.svg\",\r\n  \"fluent-weather-snowflake.svg\",\r\n  \"fluent-weather-squalls-outline.svg\",\r\n  \"fluent-weather-squalls.svg\",\r\n  \"fluent-weather-sunny-high.svg\",\r\n  \"fluent-weather-sunny-low-outline.svg\",\r\n  \"fluent-weather-sunny-low.svg\",\r\n  \"fluent-weather-sunny-outline.svg\",\r\n  \"fluent-weather-sunny.svg\",\r\n  \"fluent-weather-thunderstorm.svg\",\r\n  \"fluent-web-asset-outline.svg\",\r\n  \"fluent-web-asset.svg\",\r\n  \"fluent-whiteboard-off-outline.svg\",\r\n  \"fluent-whiteboard-off.svg\",\r\n  \"fluent-whiteboard-outline.svg\",\r\n  \"fluent-whiteboard.svg\",\r\n  \"fluent-wifi-1-outline.svg\",\r\n  \"fluent-wifi-1.svg\",\r\n  \"fluent-wifi-2-outline.svg\",\r\n  \"fluent-wifi-2.svg\",\r\n  \"fluent-wifi-3-outline.svg\",\r\n  \"fluent-wifi-3.svg\",\r\n  \"fluent-wifi-4-outline.svg\",\r\n  \"fluent-wifi-4.svg\",\r\n  \"fluent-wifi-lock-outline.svg\",\r\n  \"fluent-wifi-lock.svg\",\r\n  \"fluent-wifi-off-outline.svg\",\r\n  \"fluent-wifi-off.svg\",\r\n  \"fluent-wifi-warning-outline.svg\",\r\n  \"fluent-wifi-warning.svg\",\r\n  \"fluent-window-ad-outline.svg\",\r\n  \"fluent-window-ad.svg\",\r\n  \"fluent-window-apps-outline.svg\",\r\n  \"fluent-window-apps.svg\",\r\n  \"fluent-window-arrow-up-outline.svg\",\r\n  \"fluent-window-arrow-up.svg\",\r\n  \"fluent-window-brush-outline.svg\",\r\n  \"fluent-window-brush.svg\",\r\n  \"fluent-window-database-outline.svg\",\r\n  \"fluent-window-database.svg\",\r\n  \"fluent-window-dev-tools-outline.svg\",\r\n  \"fluent-window-dev-tools.svg\",\r\n  \"fluent-window-fingerprint.svg\",\r\n  \"fluent-window-new-outline.svg\",\r\n  \"fluent-window-new.svg\",\r\n  \"fluent-window-outline.svg\",\r\n  \"fluent-window-shield-outline.svg\",\r\n  \"fluent-window-shield.svg\",\r\n  \"fluent-window-wrench-outline.svg\",\r\n  \"fluent-window-wrench.svg\",\r\n  \"fluent-window.svg\",\r\n  \"fluent-wrench-outline.svg\",\r\n  \"fluent-wrench-screwdriver.svg\",\r\n  \"fluent-wrench-settings-outline.svg\",\r\n  \"fluent-wrench-settings.svg\",\r\n  \"fluent-wrench.svg\",\r\n  \"fluent-xbox-console-outline.svg\",\r\n  \"fluent-xbox-console.svg\",\r\n  \"fluent-xbox-controller-error.svg\",\r\n  \"fluent-xbox-controller-outline.svg\",\r\n  \"fluent-xbox-controller.svg\",\r\n  \"fluent-xray-outline.svg\",\r\n  \"fluent-xray.svg\",\r\n  \"fluent-zoom-fit-outline.svg\",\r\n  \"fluent-zoom-fit.svg\",\r\n  \"fluent-zoom-in-outline.svg\",\r\n  \"fluent-zoom-in.svg\",\r\n  \"fluent-zoom-out-outline.svg\",\r\n  \"fluent-zoom-out.svg\"\r\n];","import { Component, ElementRef, forwardRef, OnInit, ViewChild } from '@angular/core';\r\nimport { CustomInput } from '../custom-input';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { EnvironmentService } from '../../../services/environment.service';\r\nimport { lstIconsIonicons } from './ionicons';\r\nimport { lstFluenticons } from './fluenticons';\r\nimport { InputSelectConfiguration } from '../input-select/input.select.configuration';\r\n\r\n@Component({\r\n  selector: 'input-icon',\r\n  templateUrl: './input-icon.component.html',\r\n  styleUrls: ['./input-icon.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputIconComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputIconComponent) },\r\n  ]\r\n})\r\nexport class InputIconComponent extends CustomInput<string> {\r\n  \r\n  lstIcons: { name: string }[] = [];\r\n\r\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  config: InputSelectConfiguration;\r\n\r\n  constructor(\r\n    private environmentService: EnvironmentService\r\n  ) { super(); \r\n    console.log('this.environmentService.environment.useFluentIcons', this.environmentService.environment.useFluentIcons);\r\n    const lst = this.environmentService.environment.useFluentIcons ? [...lstIconsIonicons, ...lstFluenticons] : [...lstIconsIonicons];\r\n    this.lstIcons = lst.map(icon => { \r\n      return { name: icon.replaceAll('.svg', '') };\r\n    });\r\n    this.config = new InputSelectConfiguration(\"name\", \"name\", true, true, null, false);\r\n  }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n\r\n  override SetValue(obj: string): void {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    this.propagateChange(obj);\r\n  }\r\n}\r\n\r\n","<input-select [ngModel]=\"value()\" (ngModelChange)=\"SetValue($event)\" [items]=\"lstIcons\" [configuration]=\"config\" [submitted]=\"submitted()\" [label]=\"label()\" [required]=\"required()\" [disabled]=\"disabled()\" [loading]=\"loading()\">\r\n  <ng-template sionLabelTemplate sionOptionTemplate let-item=\"item\">\r\n    <div class=\"flex truncate items-center justify-start gap-2 text-dark\">\r\n      <ion-icon [name]=\"item.name\" class=\"size-5\"></ion-icon>\r\n      <span class=\"truncate\">{{item.name}}</span>\r\n    </div>\r\n  </ng-template>\r\n</input-select>","import { InputStringConfiguration, InputStringType } from \"../input-string/input-string.configuration\";\r\n\r\nexport class InputTextAreaConfiguration extends InputStringConfiguration{\r\n  constructor(maxlength: number = 2000, autoGrow: boolean = false){\r\n    super(InputStringType.Text, maxlength, autoGrow);\r\n  }\r\n}","import { Component, ElementRef, forwardRef, HostListener, input, InputSignal, ViewChild } from '@angular/core';\r\nimport { InputTextAreaConfiguration } from './input-textarea.configuration';\r\nimport { InputProviderFactory } from '../input-provider-factory';\r\nimport { CustomInput } from '../custom-input';\r\n\r\n@Component({\r\n  selector: 'input-textarea',\r\n  templateUrl: './input-textarea.component.html',\r\n  styleUrls: ['./input-textarea.component.scss', '../inputs.scss'],\r\n  providers: [\r\n    ...InputProviderFactory.GetProviders(InputTextareaComponent),\r\n    { provide: CustomInput, useExisting: forwardRef(() => InputTextareaComponent) },\r\n  ],\r\n})\r\nexport class InputTextareaComponent extends CustomInput<string> {\r\n\r\n  configuration: InputSignal<InputTextAreaConfiguration> = input<InputTextAreaConfiguration>(new InputTextAreaConfiguration());\r\n\r\n  @ViewChild('textarea') input: ElementRef<HTMLTextAreaElement>;\r\n  @ViewChild('inputContainer') inputContainer: ElementRef<HTMLDivElement>;\r\n  override setFocus(event: MouseEvent | null): void {\r\n    if(this.input && (event == null || event.target == this.inputContainer.nativeElement)) { this.input.nativeElement.focus(); }      \r\n  }\r\n\r\n  constructor() { super(); }\r\n\r\n  private resize(): void {\r\n    if (!this.configuration().autoGrow) return;\r\n\r\n    const textarea = this.input?.nativeElement;\r\n    if (!textarea) return;\r\n\r\n    const selectionStart = textarea.selectionStart;\r\n    const selectionEnd = textarea.selectionEnd;\r\n\r\n    // bloqueia rolagem do container pai temporariamente\r\n    const scrollParent = this.EncontraScroll(textarea);\r\n    const prevScroll = scrollParent ? scrollParent.scrollTop : 0;\r\n\r\n    // recalcula altura\r\n    textarea.style.overflow = 'hidden';\r\n    textarea.style.height = 'auto';\r\n    textarea.style.height = `${textarea.scrollHeight}px`;\r\n\r\n    // restaura posição do scroll do container\r\n    if (scrollParent) scrollParent.scrollTop = prevScroll;\r\n\r\n    // mantém posição do cursor sem chamar focus()\r\n    textarea.setSelectionRange(selectionStart, selectionEnd);\r\n  }\r\n\r\n  // Encontra o container com scroll (ex: ion-content, div com overflow)\r\n  private EncontraScroll(el: HTMLElement): HTMLElement | null {\r\n    let parent = el.parentElement;\r\n    while (parent) {\r\n      const style = getComputedStyle(parent);\r\n      if (/(auto|scroll)/.test(style.overflowY)) return parent;\r\n      parent = parent.parentElement;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  @HostListener('input')\r\n  onInput(): void {\r\n    if (this.configuration().autoGrow) {\r\n      requestAnimationFrame(() => this.resize());\r\n    }\r\n  }\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n    requestAnimationFrame(() => this.resize());\r\n  }  \r\n}","<div \r\n  #inputContainer\r\n  class=\"input-container\" \r\n  (click)=\"setFocus($event)\"\r\n  [class.required]=\"required()\" \r\n  [class.submitted]=\"submitted()\" \r\n  [class.invalid]=\"invalid\" \r\n  [class.disabled]=\"disabled() || loading()\"\r\n  [class.loading]=\"loading()\"\r\n>\r\n  <div class=\"input-label\"> \r\n    <span class=\"truncate\">\r\n      {{label()}} \r\n    </span>\r\n  </div>\r\n  <textarea #textarea\r\n    [ngModel]=\"value()\" \r\n    (ngModelChange)=\"SetValue($event)\"\r\n    [disabled]=\"disabled() || loading()\"\r\n    [maxlength]=\"configuration().maxlength\"\r\n    (blur)=\"blur.emit($event)\"\r\n  >\r\n  </textarea>\r\n  <div class=\"loading-container\" [class.loading]=\"loading()\">\r\n    <ion-spinner></ion-spinner>\r\n  </div>\r\n</div>","import { FormBuilder } from '@angular/forms';\r\nimport { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, UrlTree } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\n\r\n\r\nimport { HttpServiceAtivo } from '../../../services/web/http.ativo.service';\r\nimport { HttpService      } from '../../../services/web/http.service';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { View } from './view';\r\nimport { InputType } from '../../inputs/input-type';\r\n\r\n/** Componente View Padão */\r\n@Component({\r\n  selector: 'default-view',\r\n  templateUrl: './default-view.component.html',\r\n  styleUrls: ['./default-view.component.scss'],\r\n})\r\nexport class DefaultViewComponent<T extends HttpService | HttpServiceAtivo> extends View<T> implements OnInit {\r\n\r\n  /** Remove o botão de voltar */\r\n  @Input() noBack: boolean = false;\r\n  /** Remove o botão NOVO da listagem */\r\n  @Input() noNew : boolean = false;\r\n  /** Remove os breadcrumbs da listagem */\r\n  @Input() noBreadcrumbs: boolean = false;\r\n  /** Habilita/Desabilita o focus no primeiro campo da view\r\n   * 1 - para ativar no novo e no editar\r\n   * 2 - para ativar apenas no novo\r\n   * 3 - para desativar para os dois casos\r\n   *     [Padrão 2]\r\n   */\r\n  @Input() focusInFirstField: number = 2;\r\n\r\n  InputType = InputType;\r\n\r\n\r\n  \r\n  /**  \r\n   * Rota para voltar, caso não seja definida, o componente irá tentar usar rota do ionic\r\n  */\r\n  @Input() backRouterLink: string | any[] | UrlTree | undefined = undefined;\r\n\r\n  constructor(\r\n    public override fb: FormBuilder,\r\n    public override elementRef: ElementRef,\r\n    public override activatedRoute: ActivatedRoute,\r\n    public override genericService: GenericService,\r\n    public override navController: NavController,\r\n  ) { super(); }\r\n\r\n  override async ngOnInit() {\r\n    this.startInFirstField = this.focusInFirstField;\r\n    await super.ngOnInit()\r\n  }\r\n}","<ion-content class=\"bg-transparent\"> \r\n  <div class=\"wrapper\" [ngClass]=\"{'!p-0 translucid-primary-background': nested}\" tabindex=\"-1\">\r\n    @if (!noBreadcrumbs) {\r\n      <ion-breadcrumbs>\r\n        <ion-breadcrumb class=\"cursor-pointer\" (click)=\"NavigateToList()\">\r\n          {{service.title}}\r\n        </ion-breadcrumb>\r\n        <ion-breadcrumb> \r\n          {{id == 0 ? 'Novo Registro' : 'Editar Registro' }} \r\n        </ion-breadcrumb>\r\n      </ion-breadcrumbs>\r\n    }\r\n    \r\n    <ion-card>\r\n      <ion-card-header class=\"!block\">\r\n        @if (service) {\r\n          <header-view \r\n            *ngIf=\"service\" \r\n            [novo]=\"id == 0\" \r\n            [useDefaultRouting]=\"nested\" \r\n            [loading]=\"loading\" \r\n            [progress]=\"progress\" \r\n            (save)=\"Save()\" \r\n            [noBack]=\"noBack\" \r\n            [noNew]=\"noNew\"\r\n            [backRouterLink]=\"backRouterLink\"\r\n          ></header-view>\r\n        }\r\n      </ion-card-header>\r\n      <ion-card-content class=\"p-0 h-full !overflow-y-auto overflow-x-hidden\">\r\n        <div class=\"grid grid-cols-12 gap-2 w-full\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n  \r\n          @for (field of lstTableFields; track $index) {\r\n            @if (field.index != 'id') {\r\n              @if (!field.hiddenView) {\r\n                @switch (field.type) {\r\n                  @case (InputType.Bool) {\r\n                    <input-bool      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\" ></input-bool>\r\n                  }\r\n                  @case (InputType.Cep){\r\n                    <input-cep       [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-cep>\r\n                  }\r\n                  @case (InputType.Color){\r\n                    <input-color     [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-color>\r\n                  }\r\n                  @case (InputType.CpfCnpj) {\r\n                    <input-cpf       [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n                  }\r\n                  @case (InputType.Cpf) {\r\n                    <input-cpf       [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cpf>\r\n                  }\r\n                  @case (InputType.Cnpj) {\r\n                    <input-cnpj      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-cnpj>\r\n                  }\r\n                  @case (InputType.Date) {\r\n                    <input-date      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date>\r\n                  }\r\n                  @case (InputType.DateTime) {\r\n                    <input-date-time [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-date-time>\r\n                  }\r\n                  @case (InputType.Time) {\r\n                    <input-time      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-time>\r\n                  }\r\n                  @case (InputType.Decimal) {\r\n                    <input-decimal   [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-decimal>\r\n                  }\r\n                  @case (InputType.Currency) {\r\n                    <input-currency  [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-currency>\r\n                  }\r\n                  @case (InputType.Number) {\r\n                    <input-number    [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-number>\r\n                  }\r\n                  @case (InputType.File) {\r\n                    <input-file      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-file>\r\n                  }\r\n                  @case (InputType.Icon) {\r\n                    <input-icon      [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\"></input-icon>\r\n                  }\r\n                  @case (InputType.Select) {\r\n                    <input-select    [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-select>\r\n                  }\r\n                  @case (InputType.String) {\r\n                    <input-string    [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-string>\r\n                  }\r\n                  @case (InputType.TelefoneCelular) {\r\n                    <input-telefone-celular    [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-telefone-celular>\r\n                  }\r\n                  @case (InputType.Telefone) {\r\n                    <input-telefone  [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-telefone>\r\n                  }\r\n                  @case (InputType.Celular) {\r\n                    <input-celular   [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-celular>\r\n                  }\r\n                  @case (InputType.TextArea) {\r\n                    <input-textarea  [class]=\"field.class\" [formControlName]=\"field.index\" [label]=\"field.header\" [loading]=\"loading\" [disabled]=\"field.disabled\" [submitted]=\"submitted\" [configuration]=\"field.configuration\"></input-textarea>\r\n                  }\r\n                }\r\n              }\r\n            }\r\n          }\r\n  \r\n          <div class=\"col-span-full rounded-2xl p-3 flex items-center justify-center\" *ngIf=\"!service || service.lstTableFields.length == 0\" style=\"background: var(--ion-color-danger);\">\r\n            <ion-text class=\"text-2xl text-light\">\r\n              <ion-icon class=\"align-sub text-3xl\" name=\"alert-circle\"></ion-icon> [ Invalid Configuration ]\r\n            </ion-text>\r\n          </div>\r\n        </div>\r\n      </ion-card-content>\r\n    </ion-card>\r\n  </div>\r\n</ion-content>","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { GenericService } from \"../../../services/generic.service\";\r\nimport { HttpService } from \"../../../services/web/http.service\";\r\nimport { DefaultViewComponent } from \"./default-view.component\";\r\n\r\n/** Componente padrão para a invocação do DefaultView */\r\n@Component({ template: '', styles: '' })\r\nexport abstract class AbstractView<T extends HttpService> implements OnInit {\r\n  public service       : T;\r\n  public genericService: GenericService;\r\n  public activatedRoute: ActivatedRoute;\r\n  \r\n  public id: number;\r\n  \r\n  ngOnInit(): void {\r\n    this.id = this.genericService.GetId(this.activatedRoute, 0);\r\n  }\r\n\r\n  @ViewChild(DefaultViewComponent<any>) public DefaultView: DefaultViewComponent<any>;\r\n  public static GetProvider(component): any[]{\r\n    return [{ provide: AbstractView, useExisting: component }]\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SIonPopoverComponent } from './sion-popover/sion-popover.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n@NgModule({\r\n  declarations: [ SIonPopoverComponent  ],\r\n  exports: [ SIonPopoverComponent ],\r\n  imports: [\r\n    CommonModule, OverlayModule\r\n  ]\r\n})\r\nexport class SIonPopoverModule { }\r\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MaskitoDirective } from '@maskito/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { InputTextareaComponent } from './input-textarea/input-textarea.component';\r\nimport { InputStringComponent } from './input-string/input-string.component';\r\nimport { InputDecimalComponent } from './input-decimal/input-decimal.component';\r\nimport { InputBoolComponent } from './input-bool/input-bool.component';\r\nimport { InputFileComponent } from './input-file/input-file.component';\r\nimport { ImageComponent } from '../image/image.component';\r\nimport { InputDateComponent } from './input-date/input-date.component';\r\nimport { InputSelectComponent } from './input-select/input-select.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { SIonLabelTemplateDirective } from './input-select/directives/sion-label-template.directive';\r\nimport { SIonOptionTemplateDirective } from './input-select/directives/sion-option-template.directive';\r\nimport { SIonPlaceholderTemplateDirective } from './input-select/directives/sion-placeholder-template.directive';\r\nimport { InputCpfCnpjComponent } from './input-cpf-cnpj/input-cpf-cnpj.component';\r\nimport { DownloadButtonComponent } from './input-file/download-button/download-button.component';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\nimport { InputColorComponent } from './input-color/input-color.component';\r\nimport { InputCepComponent } from './input-cep/input-cep.component';\r\nimport { InputTelefoneComponent } from './input-telefone/input-telefone.component';\r\nimport { InputIconComponent } from './input-icon/input-icon.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';\r\nimport { MatCardModule } from '@angular/material/card';\r\n\r\nconst lstComponents = [\r\n  InputBoolComponent,\r\n  InputCepComponent,\r\n  InputColorComponent,\r\n  InputCpfCnpjComponent,\r\n  InputDateComponent,\r\n  InputDecimalComponent,\r\n  InputFileComponent,\r\n  InputIconComponent,\r\n  InputSelectComponent,\r\n    SIonLabelTemplateDirective,\r\n    SIonOptionTemplateDirective,\r\n    SIonPlaceholderTemplateDirective,\r\n  InputStringComponent,\r\n  InputTelefoneComponent,\r\n  InputTextareaComponent,\r\n  DownloadButtonComponent,\r\n]\r\n\r\n@NgModule({\r\n  declarations: [ ...lstComponents ],\r\n  exports     : [ ...lstComponents ],\r\n  imports: [\r\n    IonicModule,\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    FormsModule,\r\n    ImageComponent,\r\n    MaskitoDirective,\r\n    SIonPopoverModule,\r\n    LoadingComponent,\r\n    NgVarDirective,\r\n    OverlayModule,\r\n    MatDatepickerModule,\r\n    MatCardModule\r\n  ],\r\n  providers: [\r\n    {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},\r\n    {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},\r\n  ]\r\n})\r\nexport class InputsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { RouterLink, RouterLinkWithHref, RouterModule, RouterOutlet } from '@angular/router';\r\n\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\n\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { DefaultListComponent } from './default-list/default-list.component';\r\nimport { DefaultViewComponent } from './default-view/default-view.component';\r\nimport { HeaderListComponent } from './default-list/header-list/header-list.component';\r\nimport { HeaderViewComponent } from './default-view/header-view/header-view.component';\r\nimport { DefaultTableComponent } from './default-table/default-table.component';\r\nimport { DefaultPaginationComponent } from './default-pagination/default-pagination.component';\r\nimport { ThFilterComponent } from './default-table/th-filter/th-filter.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { ContentBlockComponent } from '../content-block/content-block.component';\r\nimport { CdkDragPlaceholder } from \"@angular/cdk/drag-drop\";\r\n\r\nconst lstComponents = [\r\n  HeaderListComponent,\r\n  DefaultListComponent,\r\n\r\n  DefaultViewComponent,\r\n  HeaderViewComponent,\r\n  DefaultTableComponent,\r\n  DefaultPaginationComponent,\r\n  ThFilterComponent\r\n]\r\n\r\n/** Modulo parão, inclui os seguiintes componentes:\r\n *  - HeaderListComponent,\r\n    - DefaultListComponent,\r\n    - DefaultViewComponent,\r\n    - HeaderViewComponent,\r\n    - DefaultTableComponent,\r\n    - DefaultPaginationComponent,\r\n */\r\n@NgModule({\r\n  declarations: [...lstComponents],\r\n  exports     : [...lstComponents],\r\n  imports: [\r\n    IonicModule,\r\n    CommonModule,\r\n    InputsModule,\r\n    ReactiveFormsModule,\r\n    RouterLinkWithHref,\r\n    FormsModule,\r\n    RouterModule,\r\n    RouterOutlet,\r\n    RouterLink,\r\n    LoadingComponent,\r\n    NgVarDirective,\r\n    SIonPopoverModule,\r\n    ContentBlockComponent,\r\n    CdkDragPlaceholder\r\n]\r\n})\r\nexport class DefaultModule { }\r\n","import { Menu } from \"../../components/drawer/menu\";\r\n\r\nexport class RouteCacheService {\r\n  private cachedData: Menu[] | null = null;\r\n\r\n  getCachedData(): Menu[] {\r\n    return this.cachedData;\r\n  }\r\n\r\n  setCachedData(data: Menu[]): void {\r\n    this.cachedData = data;\r\n  }\r\n\r\n  isDataCached(): boolean {\r\n    return this.cachedData != null;\r\n  }\r\n}","import { Observable, tap, share, finalize } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { RouteCacheService } from './route.cache.service';\r\nimport { Menu } from '../../components/drawer/menu';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class RouteProviderService  {\r\n\r\n  loadFrom: Observable<Menu[]> | Menu[] = [];\r\n  private routeCacheService: RouteCacheService = new RouteCacheService();\r\n  private loading$: Observable<Menu[]> | null = null;\r\n\r\n  constructor(\r\n  ) { }\r\n\r\n  resolver: Promise<Menu[]>\r\n\r\n  GetData(): Observable<Menu[]> {\r\n    // If a request is already in progress, return that Observable\r\n    if (this.loading$) {\r\n      return this.loading$;\r\n    }\r\n\r\n    if(Array.isArray(this.loadFrom)){\r\n      this.routeCacheService.setCachedData(this.loadFrom);\r\n    }\r\n\r\n    const cachedData = this.routeCacheService.getCachedData();\r\n\r\n    if (cachedData) {\r\n      return new Observable(observer => {\r\n        observer.next(cachedData);\r\n        observer.complete();\r\n      });\r\n    } else {\r\n      // Store the loading Observable and make sure to reset it when it completes\r\n      this.loading$ = (this.loadFrom as Observable<Menu[]>).pipe(\r\n        tap(data => this.routeCacheService.setCachedData(data)),\r\n        finalize(() => this.loading$ = null),\r\n        share() // Share the same subscription with multiple subscribers\r\n      );\r\n      \r\n      return this.loading$;\r\n    }\r\n  }\r\n}\r\n","import { ActivatedRoute, RouterLinkWithHref } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { RouteProviderService } from '../../services/route/route.provider.service';\r\nimport { EnvironmentService } from '../../services/environment.service';\r\nimport { LoadingComponent } from '../loading/loading.component';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\nimport { Menu } from '../drawer/menu';\r\n\r\n/** Pagina Default - mostra os botões de rotas horizontalmente - componente padrão */\r\n@Component({\r\n  standalone: true,\r\n  selector: 'app-default',\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    IonicModule,\r\n    InputsModule,\r\n    RouterLinkWithHref,\r\n    LoadingComponent,\r\n    TranslateModule,\r\n  ],\r\n  templateUrl: './default.page.html',\r\n  styleUrls: ['./default.page.scss'],\r\n})\r\nexport class DefaultPage implements OnInit {\r\n\r\n  useTranslation: boolean = false;\r\n  TranslationModule: any = {\r\n    Permissao     : 'Entities.Permissao.',\r\n    PermissaoGrupo: 'Entities.PermissaoGrupo.'\r\n  };\r\n\r\n  constructor(\r\n    private route: ActivatedRoute,\r\n    private coreService: EnvironmentService,\r\n    private genericService: GenericService,\r\n    private routeProviderService: RouteProviderService \r\n  ) { \r\n  }\r\n  \r\n  title: string = this.coreService.environment.applicationName;\r\n  loading: boolean;\r\n  lstMenu: Menu[] = [];\r\n\r\n  lstImage: DefaultPageImage[] = null;\r\n\r\n  async ngOnInit(): Promise<void> {\r\n    this.loading = true;\r\n    \r\n    const conf = await firstValueFrom(this.route.data) as DefaultPageConfiguration;\r\n\r\n    this.lstImage = Array.isArray(conf.image) ? conf.image : \r\n                                   conf.image ? [conf.image] : undefined;\r\n\r\n    this.lstMenu       = await firstValueFrom(this.routeProviderService.GetData());\r\n    this.loading = false;\r\n  }\r\n\r\n  SetTitle(item: Menu){\r\n    this.genericService.SetTitle(item.title);\r\n  }\r\n}\r\n\r\nexport class DefaultPageConfiguration{\r\n  constructor(\r\n    public image: DefaultPageImage | DefaultPageImage[] | null = null,\r\n    public useTranslation: boolean = false\r\n  ){\r\n  }\r\n}\r\n\r\nexport class DefaultPageImage {\r\n  constructor(\r\n    public src: string | null = null,\r\n    public classes: string = ''\r\n  ){}\r\n}\r\n","<ion-content [fullscreen]=\"true\">\r\n  <div class=\"wrapper\">\r\n    <ion-breadcrumbs>\r\n      <ion-breadcrumb [routerLink]=\"[null]\">\r\n        <ion-icon slot=\"start\" name=\"home\"></ion-icon> Inicio\r\n      </ion-breadcrumb>\r\n    </ion-breadcrumbs>\r\n  \r\n    <ion-card>\r\n      <ion-card-content class=\"flex flex-col items-center justify-center !p-6\">\r\n        <div class=\"w-full shrink-0 text-center\">\r\n          @if(lstImage){\r\n            @for (item of lstImage; track $index) {\r\n              <ion-img [class]=\"item.classes\" [src]=\"item.src\" (ion-error)=\"lstImage\"></ion-img>\r\n            }\r\n          }\r\n          @else {\r\n            <ion-text class=\"text-8xl font-poppins w-full\"> {{title}} </ion-text>\r\n          }\r\n        </div>\r\n\r\n        <div class=\"overflow-hidden p-2 w-full relative\">\r\n          <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n          <div class=\"size-full flex flex-wrap portrait:!grid gap-2\">\r\n            @for (item of lstMenu; track item; let i = $index) {\r\n              @if(item.type == \"Menu\"){\r\n                <ion-button fill=\"outline\" class=\"grow min-w-fit\" [routerLink]=\"[item.route]\">\r\n                  <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n                  {{useTranslation ? (TranslationModule.Permissao + item.id | translate) : item.title}}\r\n                </ion-button>\r\n              }\r\n              @if(item.type == \"MenuGroup\"){\r\n                <ion-button fill=\"outline\" class=\"grow min-w-fit\" (click)=\"popover.present($event)\">\r\n                  <ion-icon slot=\"start\" [name]=\"item.icon\"></ion-icon> \r\n                  {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n                </ion-button>\r\n\r\n                <ion-popover #popover class=\"overflow-y-auto\" [dismissOnSelect]=\"true\" triggerAction=\"click\">\r\n                  <ng-template>\r\n                    <ion-list class=\"no-outer-border\">\r\n                      <ion-item class=\"bg-transparent\" (click)=\"SetTitle(menu)\" *ngFor=\"let menu of item.lstMenu\" [routerLink]=\"['./' + menu.route]\" lines=\"none\" detail=\"false\" routerLinkActive=\"selected\">\r\n                        <ion-icon [name]=\"menu.icon\" slot=\"start\"></ion-icon> \r\n                        <ion-label> \r\n                          {{useTranslation ? (TranslationModule.Permissao + menu.id | translate) : menu.title}}  \r\n                        </ion-label>\r\n                      </ion-item>\r\n                    </ion-list>\r\n                  </ng-template>\r\n                </ion-popover>\r\n              }\r\n            }\r\n          </div>\r\n        </div>\r\n\r\n        <!-- <div class=\"!overflow-y-auto w-full portrait:grow relative\">\r\n          <loading [type]=\"3\" [loading]=\"loading\"></loading>\r\n          <div class=\"flex flex-wrap items-start justify-start mt-4 portrait:!grid portrait:!grid-cols-1\"> \r\n          </div>\r\n        </div> -->\r\n      </ion-card-content>\r\n    </ion-card>\r\n  </div>\r\n</ion-content>","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  selector: 'drag-drop-overlay',\r\n  templateUrl: './drag-drop-overlay.component.html',\r\n  styleUrls: ['./drag-drop-overlay.component.scss'],\r\n})\r\nexport class DragDropOverlayComponent  implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {}\r\n\r\n  fileOver: boolean;\r\n}\r\n","<div class=\"absolute top-0 left-0 size-full z-50 p-4 pointer-events-none\" [ngClass]=\"{'fileOver': fileOver}\">\r\n  <div class=\"border-4 border-dashed border-transparent default-transition rounded-2xl size-full flex items-center justify-center\">\r\n    <ion-icon class=\"text-9xl text-transparent\" name=\"cloud-upload\"></ion-icon>\r\n  </div>\r\n</div>","import { ContentChild, Directive, ViewChild } from '@angular/core';\r\nimport { Output, EventEmitter, HostBinding, HostListener } from '@angular/core';\r\nimport { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';\r\n\r\n@Directive({\r\n  selector: '[DragDropFile]'\r\n})\r\nexport class DragDropFileDirective {\r\n\r\n  constructor() { }\r\n\r\n  @HostBinding('class.fileOver') fileOver: boolean;\r\n  @Output() fileDropped = new EventEmitter<File[]>();\r\n\r\n  @ContentChild(DragDropOverlayComponent) dragDropOverlay: DragDropOverlayComponent \r\n\r\n  // Dragover listener\r\n  @HostListener('dragover', ['$event']) onDragOver(evt: DragEvent) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    this.fileOver = true;\r\n    this.dragDropOverlay.fileOver = true;\r\n  }\r\n\r\n  // Dragleave listener\r\n  @HostListener('dragleave', ['$event']) public onDragLeave(evt: DragEvent) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    this.fileOver = false;\r\n    this.dragDropOverlay.fileOver = false;\r\n  }\r\n  \r\n  // Drop listener\r\n  @HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {\r\n    evt.preventDefault();\r\n    evt.stopPropagation();\r\n    this.fileOver = false;\r\n    this.dragDropOverlay.fileOver = false;\r\n    let files = evt.dataTransfer.files;\r\n    if (files.length > 0) {\r\n      this.fileDropped.emit(Array.from(files));\r\n    }\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DragDropFileDirective } from './drag-drop-file.directive';\r\nimport { DragDropOverlayComponent } from './drag-drop-overlay/drag-drop-overlay.component';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nconst values = [\r\n  DragDropFileDirective,\r\n  DragDropOverlayComponent\r\n]\r\n\r\n\r\n@NgModule({\r\n  declarations: [ ...values ],\r\n  exports     : [ ...values ],\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule\r\n  ]\r\n})\r\nexport class DragDropFileModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthService } from '../../../services/auth.service';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    RouterLinkWithHref,\r\n  ],\r\n  selector: 'default-drawer-end',\r\n  templateUrl: './default-drawer-end.component.html',\r\n  styleUrls: ['./default-drawer-end.component.scss'],\r\n})\r\nexport class DefaultDrawerEndComponent  implements OnInit {\r\n\r\n  constructor(\r\n    public authService: AuthService\r\n  ) { }\r\n\r\n  @Input() colapsed: boolean = false;\r\n\r\n  Token: any;\r\n  ngOnInit(): void {\r\n    this.authService.LoadToken().then((res) => {\r\n      this.Token = res;\r\n    })\r\n  }\r\n\r\n\r\n  Loggout(): void { this.authService.Loggout(); }\r\n}\r\n","<div class=\"w-full default-transition flex\" [ngClass]=\"{'!w-16': colapsed}\">\r\n  <div class=\"w-10 shrink-0 aspect-square rounded-2xl flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n    <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n  </div>\r\n  <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n    <span>{{Token ? Token.Nome : ''}}</span>\r\n  </div>\r\n\r\n  <ion-button (click)=\"Loggout()\" class=\"size-10 shrink-0\" size=\"small\" color=\"danger\">\r\n    <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n  </ion-button>\r\n</div>","\r\nexport class Menu{\r\n  id: number;\r\n  route: string | null;\r\n  icon : string | null;\r\n  title: string;\r\n  lstMenu: Menu[];\r\n  type: 'Menu' | 'MenuGroup'\r\n  constructor(type: 'Menu' | 'MenuGroup', title: string, icon : string | null, lstMenu: Menu[] = [], route: string | null = null){\r\n    this.type  = type; \r\n    this.title = title;\r\n    this.route = route;\r\n    if(icon){\r\n      this.icon  = icon;\r\n    }else{\r\n      this.icon = \"layers\";\r\n    }\r\n    this.lstMenu = lstMenu;\r\n  }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\r\nimport { IonAccordion, IonAccordionGroup, IonicModule, NavController } from '@ionic/angular';\r\nimport { Menu } from '.././menu';\r\nimport { Router, RouterLinkWithHref } from '@angular/router';\r\nimport { GenericService } from '../../../services/generic.service';\r\nimport { NgVarDirective } from '../../../directives/ng-var.directive';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [CommonModule, IonicModule, RouterLinkWithHref, TranslateModule],\r\n  selector: 'drawer-group',\r\n  templateUrl: './drawer-group.component.html',\r\n  styleUrls: ['./drawer-group.component.scss'],\r\n})\r\nexport class DrawerGroupComponent  implements OnInit {\r\n\r\n  TranslationModule: any = {\r\n    Permissao     : 'Entities.Permissao.',\r\n    PermissaoGrupo: 'Entities.PermissaoGrupo.'\r\n  };\r\n  @Input() MenuGroup: Menu;\r\n  @Input() colapsed: boolean;\r\n  @Input() useTranslation: boolean;\r\n\r\n  constructor(\r\n    public router: Router,\r\n    private navController: NavController,\r\n    private genericService: GenericService\r\n  ) { }\r\n\r\n  ngOnInit() {}\r\n\r\n  HandleNav(item: Menu | any, event: MouseEvent) {\r\n    if(event.ctrlKey || event.metaKey){\r\n      window.open(window.origin + '/' + item.route, '_blank');\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    this.SetTitle(item);\r\n    this.navController.navigateRoot('/' + item.route);\r\n  }\r\n  SetTitle(item: Menu){\r\n    this.genericService.SetTitle(item.title);\r\n  }\r\n\r\n  @ViewChildren(IonAccordionGroup) lstIonAcordionGroup: QueryList<IonAccordion>\r\n}\r\n","<div class=\"size-full flex flex-col  verflow-hidden\">\r\n  <div class=\"w-full text-center\">\r\n    <!-- <ion-item class=\"bg-inactive bg-active\" lines=\"none\" style=\"--border-radius: 1rem\">\r\n      <ion-label class=\"text-center\">\r\n        <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon> <br>\r\n        <ion-text class=\"text-lg\">\r\n          {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n        </ion-text>\r\n      </ion-label>\r\n    </ion-item> -->\r\n    <div class=\"gradient-background header flex flex-col gap-1 p-2 text-center items-center justify-center rounded-xl\">\r\n      <ion-icon class=\"text-2xl\" [name]=\"MenuGroup.icon\"></ion-icon>\r\n      <ion-text class=\"text-dark\">\r\n        {{useTranslation ? (TranslationModule.PermissaoGrupo + MenuGroup.id | translate) : MenuGroup.title}} \r\n      </ion-text>\r\n    </div>\r\n  </div>\r\n  <div class=\"flex flex-col gap-2 w-full pt-2 mask-y overflow-y-auto\">\r\n    @for (mGroup of MenuGroup.lstMenu; track $index) {\r\n      <!-- Menu -->\r\n      @if(mGroup.type == \"Menu\"){\r\n        <div (click)=\"HandleNav(mGroup, $event)\" \r\n          class=\"bg-inactive gradient-background menu\"\r\n          [class.bg-active]=\"router.isActive('/' + mGroup.route, false)\"\r\n        >\r\n          <div class=\"content\">\r\n            <ion-icon class=\"shrink-0\" [name]=\"mGroup.icon\"></ion-icon>\r\n            <ion-label class=\"shrink\">\r\n              {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}}          \r\n            </ion-label>\r\n          </div>\r\n        </div>\r\n        <!-- <ion-item \r\n          class=\"bg-inactive shrink-0\" lines=\"none\" \r\n          (click)=\"HandleNav(mGroup)\"\r\n          [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mGroup.route, false)}\">\r\n          <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n          <ion-label class=\"ion-text-nowrap\">\r\n            {{useTranslation ? (TranslationModule.Permissao + mGroup.id | translate) : mGroup.title}}          \r\n          </ion-label>\r\n        </ion-item> -->\r\n      } \r\n      @else if (mGroup.type == \"MenuGroup\") {\r\n        <!-- MenuGroup -->\r\n        <!-- <div class=\"w-full overflow-hidden shrink-0\">\r\n          <ion-accordion-group class=\"ion-text-nowrap w-full\">\r\n            <ion-accordion class=\"bg-transparent\" [value]=\"mGroup\">\r\n              <ion-item slot=\"header\" color=\"light\" class=\"ion-text-nowrap bg-inactive\" style=\"--ion-color-base: var(--background) !important\">\r\n                <ion-icon slot=\"start\" [name]=\"mGroup.icon\"></ion-icon>\r\n                <ion-label>\r\n                  {{useTranslation ? (TranslationModule.PermissaoGrupo + mGroup.id | translate) : mGroup.title}}\r\n                </ion-label>\r\n              </ion-item>\r\n              <div slot=\"content\">\r\n                <div class=\"pl-8\">\r\n                  <div class=\"w-full border-l-2 border-solid rounded-bl-2xl grid gap-2 pl-2 py-2\" style=\"border-color: color-mix(in srgb, var(--ion-color-primary) 30%, transparent 70%)\">\r\n                    @for (mMenu of mGroup.lstMenu; track $index) {\r\n                      @if (mMenu.type == \"Menu\") {\r\n                        <ion-item \r\n                          class=\"bg-inactive\" lines=\"none\" \r\n                          (click)=\"HandleNav(mMenu)\"\r\n                          [ngClass]=\"{'colapsed': colapsed, 'bg-active' : router.isActive('/' + mMenu.route, false)}\">\r\n                          <ion-icon slot=\"start\" [name]=\"mMenu.icon\"></ion-icon>\r\n                          <ion-label class=\"ion-text-nowrap\">\r\n                            {{useTranslation ? (TranslationModule.Permissao + mMenu.id | translate) : mMenu.title}}\r\n                          </ion-label>\r\n                        </ion-item>\r\n                      }\r\n                    }\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </ion-accordion>\r\n          </ion-accordion-group>\r\n        </div> -->\r\n      }\r\n    }\r\n  </div>\r\n</div>","import { Component, computed, effect, EventEmitter, input, Input, InputSignal, Output, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule, NavController } from '@ionic/angular';\r\nimport { Menu } from './menu';\r\n\r\nimport { DrawerGroupComponent } from './drawer-group/drawer-group.component';\r\nimport { LoadingComponent } from '../../components/loading/loading.component';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\nimport { Router, RouterLinkWithHref } from '@angular/router';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { Search } from '../../services/utils.service';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n@Component({\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    LoadingComponent,\r\n    DrawerGroupComponent,\r\n    TranslateModule,\r\n    SIonPopoverModule,\r\n    RouterLinkWithHref,\r\n    ReactiveFormsModule,\r\n    FormsModule\r\n  ],\r\n  selector: 'drawer',\r\n  templateUrl: './drawer.component.html',\r\n  styleUrls: ['./drawer.component.scss'],\r\n})\r\nexport class DrawerComponent {\r\n\r\n  TranslationModule: any = {\r\n    Permissao     : 'Entities.Permissao.',\r\n    PermissaoGrupo: 'Entities.PermissaoGrupo.',\r\n    SemResultado  : 'Messages.SemResultado'\r\n  };\r\n\r\n  @Input() loading: boolean = true;\r\n  lstMenu: InputSignal<Menu[]> = input<Menu[]>();\r\n  lstFlattenMenu: Signal<Menu[]> = computed(() => { return FlattenMenus(this.lstMenu()) });\r\n\r\n  @Input() colapsed: boolean = false;  \r\n  @Output() colapsedChange: EventEmitter<boolean> = new EventEmitter<boolean>;  \r\n  @Input() title: string;\r\n  @Input() useTranslation: boolean = false;\r\n  \r\n  constructor(\r\n    public router: Router,\r\n    private navController: NavController,\r\n    private genericService: GenericService\r\n  ) { \r\n    effect(() => {\r\n      //Handle Menu Title\r\n      const lstFlat = this.lstFlattenMenu();\r\n      const currentMenu = lstFlat.find(p => window.location.pathname.includes('/' + p.route));\r\n      const group: Menu | null = FindMenuParent(this.lstMenu(), currentMenu);\r\n      if(group){\r\n        this.CurrentGroupActive = group;\r\n      }\r\n      else{\r\n        this.CurrentGroupActive = this.lstMenu()[0];\r\n      }\r\n    });\r\n  }\r\n  CurrentGroupActive: Menu = null;\r\n\r\n  ToggleCollapsed(){\r\n    this.colapsedChange.emit(!this._enterColapsed);\r\n    this._enterColapsed = false;\r\n  }\r\n\r\n  _enterColapsed: boolean = false;\r\n  onMouseEnter(){\r\n    if(this.colapsed){\r\n      this._enterColapsed = true;\r\n      this.colapsedChange.emit(false);\r\n    }\r\n  }\r\n  onMouseLeave(){\r\n    if(this._enterColapsed){\r\n      this._enterColapsed = false;\r\n      this.colapsedChange.emit(true);\r\n    }\r\n  }\r\n\r\n  HandleNav(item: Menu | any, event: MouseEvent) {\r\n    if(event.ctrlKey || event.metaKey){\r\n      window.open(window.origin + '/' + item.route, '_blank');\r\n      event.preventDefault();\r\n      return;\r\n    }\r\n    this.SetTitle(item);\r\n    const vGroup: Menu | null = FindMenuParent(this.lstMenu(), item);\r\n    if(vGroup){\r\n      this.CurrentGroupActive = vGroup;\r\n    }\r\n    this.navController.navigateRoot('/' + item.route);\r\n  }\r\n  SetTitle(item: Menu){\r\n    this.genericService.SetTitle(item.title);\r\n  }\r\n\r\n  search: WritableSignal<string> = signal<string>(\"\");\r\n  lstMenuFiltered: Signal<Menu[]> = computed(() => {\r\n    const str = this.search().toLowerCase();\r\n    const lstS1 = this.lstMenu().map(p => {\r\n      return new Menu(p.type, p.title, p.icon, p.lstMenu.filter(x => x.title.toLowerCase().includes(str)), p.route);\r\n    });\r\n    const lstS2 = lstS1.filter(p => p.lstMenu.length > 0);\r\n    return lstS2;\r\n  });\r\n}\r\n\r\n/**\r\n * Flattens a hierarchical Menu[] structure into a single array\r\n * containing all Menu items from the original array and all nested items\r\n * @param menus The array of Menu items to flatten\r\n * @returns A flattened array containing all Menu items\r\n */\r\nfunction FlattenMenus(menus: Menu[]): Menu[] {\r\n  const result: Menu[] = [];\r\n  \r\n  function addMenuItems(items: Menu[]) {\r\n    for (const menu of items) {\r\n      // Add current menu to result\r\n      result.push(menu);\r\n      \r\n      // Process nested menus if they exist\r\n      if (menu.lstMenu && menu.lstMenu.length > 0) {\r\n        addMenuItems(menu.lstMenu);\r\n      }\r\n    }\r\n  }\r\n  \r\n  addMenuItems(menus);\r\n  return result;\r\n}\r\n\r\nfunction FindMenuParent(menus: Menu[], targetMenu: Menu): Menu | null {\r\n  for (const menu of menus) {\r\n    // Check if current menu has the target in its direct children\r\n    if (menu.lstMenu && menu.lstMenu.some(m => m === targetMenu)) {\r\n      return menu;\r\n    }\r\n    \r\n    // Search deeper in the hierarchy\r\n    if (menu.lstMenu && menu.lstMenu.length > 0) {\r\n      const parent = FindMenuParent(menu.lstMenu, targetMenu);\r\n      if (parent) {\r\n        return parent;\r\n      }\r\n    }\r\n  }\r\n  \r\n  return null;\r\n}","<div class=\"absolute left-0 top-0 h-full bg-light size-full flex flex-col p-2 !pr-0 w-[19rem] overflow-hidden\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\r\n  <!-- [ Header ] -->\r\n  <div class=\"shrink-0 w-full flex justify-between items-center\">\r\n    <div #anchor\r\n      (click)=\"ToggleCollapsed()\" \r\n      class=\"toggle size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n    >\r\n      <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n    </div>\r\n    <!-- <ion-button class=\"size-10 shrink-0 aspect-square\" size=\"small\" color=\"medium\" (click)=\"ToggleCollapsed()\">\r\n      <ion-icon name=\"menu\" slot=\"icon-only\"></ion-icon>\r\n    </ion-button> -->\r\n\r\n    <div class=\"size-full shrink flex pl-2 \">\r\n      <div class=\"size-full max-h-10 flex flex-wrap overflow-hidden\">\r\n        @if (!ref.children.length) {\r\n          <ion-text class=\"size-full flex items-center justify-center default-transition z-0\" [ngClass]=\"{'opacity-0 -translate-x-1/2 pointer-events-none': colapsed }\"> \r\n            {{title}}\r\n          </ion-text>\r\n        }\r\n        <div #ref class=\"size-full flex items-center justify-center shrink-0\">\r\n          <ng-content select=\"[slot=logo]\"></ng-content>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- [ Content ] -->\r\n  <div class=\"size-full shrink flex flex-col relative overflow-hidden\">\r\n    <loading [type]=\"3\" [loading]=\"loading\" text=\"\"></loading>\r\n    <div class=\"size-full shrink flex gap-2\">\r\n      <div class=\"h-full w-12 pr-2 py-2 mask-y shrink-0 flex flex-col gap-2 overflow-y-auto overflow-x-hidden border-dashed border-r border-r-medium/30\">\r\n        <div #searchAnchor (click)=\"modal.present()\" class=\"search-button size-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\">\r\n          <ion-icon name=\"search\" slot=\"icon-only\"></ion-icon>\r\n        </div>\r\n\r\n        @for (item of lstMenu(); track $index) {\r\n          <div>\r\n            <div\r\n              [class.bg-active]=\"CurrentGroupActive == item\"\r\n              #anchor (mouseenter)=\"popover.present($event)\" \r\n              (mouseleave)=\"popover.dismiss()\" \r\n              (click)=\"CurrentGroupActive = item\" \r\n              class=\"w-10 aspect-square shrink-0 rounded-xl bg-inactive gradient-background menu\"\r\n            >\r\n              <ion-icon [name]=\"item.icon\"></ion-icon>\r\n            </div>\r\n            <sion-popover #popover [anchor]=\"anchor\" [flip]=\"false\" placement=\"right\" fill=\"solid\">\r\n              <div class=\"p-1\">\r\n                {{useTranslation ? (TranslationModule.PermissaoGrupo + item.id | translate) : item.title}}\r\n              </div>\r\n            </sion-popover>\r\n          </div>\r\n        }\r\n\r\n      </div>\r\n      <div class=\"size-full shrink relative\">\r\n        @for (mGroup of lstMenu(); track $index) {\r\n          <div class=\"absolute top-0 left-0 size-full py-2 default-transition opacity-0 translate-x-full z-0 overflow-hidden\" [ngClass]=\"{'opacity-100 !translate-x-0': CurrentGroupActive == mGroup}\">\r\n            <drawer-group [MenuGroup]=\"mGroup\" [useTranslation]=\"useTranslation\" [colapsed]=\"colapsed\"></drawer-group>\r\n          </div>\r\n        }\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <!-- [ End ] -->\r\n  <div class=\"shrink-0 w-full\">\r\n    <ng-content select=\"[slot=drawer]\"></ng-content>\r\n  </div>\r\n</div>\r\n\r\n<ion-modal #modal [keepContentsMounted]=\"true\" (onWillDismiss)=\"search.set('')\">\r\n  <ng-template>\r\n    <ion-content>\r\n      <ion-card class=\"size-full m-0 overflow-hidden\">\r\n        <ion-card-content class=\"size-full flex flex-col overflow-hidden p-0\">\r\n          <div class=\"shrink-0 w-full flex items-center justify-center\">\r\n            <ion-searchbar class=\"p-0 !pl-2 !py-2\" [ngModel]=\"this.search()\" (ngModelChange)=\"this.search.set($event)\" [debounce]=\"200\"></ion-searchbar>\r\n            <ion-button size=\"small\" fill=\"clear\" (click)=\"modal.dismiss()\">\r\n              <ion-icon name=\"close\"></ion-icon>\r\n            </ion-button>\r\n          </div>\r\n\r\n          <div class=\"size-full flex flex-col shrink gap-2 overflow-y-auto p-2 mask-y\">\r\n            @for (vGroup of lstMenuFiltered(); track $index) {\r\n              <ion-card class=\"m-0 shrink-0\">\r\n                <ion-card-content class=\"p-0 gradient-background bg-inactive flex flex-col\">\r\n                  <div class=\"w-10 flex items-center !justify-start gap-2 text-dark shrink-0 p-2\">\r\n                    <ion-icon [name]=\"vGroup.icon\"></ion-icon>\r\n                    <ion-text>\r\n                      {{useTranslation ? (TranslationModule.PermissaoGrupo + vGroup.id | translate) : vGroup.title}} \r\n                    </ion-text>\r\n                  </div>\r\n                  @for (vMenu of vGroup.lstMenu; track $index) {\r\n                    <div \r\n                      (click)=\"HandleNav(vMenu, $event); modal.dismiss()\"\r\n                      [class.bg-active]=\"router.isActive('/' + vMenu.route, false)\"\r\n                      class=\"w-full flex items-center !justify-start gap-2 text-dark shrink-0 !pl-8 p-1.5 border-t border-t-medium/30 menu-search\">\r\n                      <ion-icon [name]=\"vMenu.icon\"></ion-icon>\r\n                      <ion-text>\r\n                        {{useTranslation ? (TranslationModule.Permissao + vMenu.id | translate) : vMenu.title}} \r\n                      </ion-text>\r\n                    </div>\r\n                  }\r\n                </ion-card-content>\r\n              </ion-card>\r\n            }\r\n\r\n            @if (lstMenuFiltered().length == 0) {\r\n              <ion-text class=\"text-center text-medium\">\r\n                {{useTranslation ? (TranslationModule.SemResultado | translate) : 'Sem resultados encontrados'}}\r\n              </ion-text>\r\n            }\r\n          </div>\r\n        </ion-card-content>\r\n      </ion-card>\r\n    </ion-content>\r\n  </ng-template>\r\n</ion-modal>","import { Component, effect, EventEmitter, Input, model, ModelSignal, Output } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport moment from 'moment';\r\n\r\nimport { InputSelectConfiguration } from '../inputs/input-select/input.select.configuration';\r\nimport { ComparisonValueType } from '../../classes/comparison/comparison-value-type';\r\nimport { ComparisonOperator } from '../../classes/comparison/comparison-operator';\r\nimport { InputsModule } from '../inputs/inputs.module';\r\nimport { Comparison } from '../../classes/comparison/comparison';\r\nimport { InputType } from '../inputs/input-type';\r\nimport { Utils } from '../../services/utils.service';\r\n\r\nimport { InputCurrencyConfiguration, InputDecimalConfiguration, InputNumberConfiguration } from '../inputs/input-decimal/input-decimal.configuration';\r\nimport { InputStringConfiguration } from '../inputs/input-string/input-string.configuration';\r\nimport { InputDateConfiguration } from '../inputs/input-date/input-date.configuration';\r\nimport { InputFileConfiguration } from '../inputs/input-file/input-file.configuration';\r\nimport { InputBoolConfiguration } from '../inputs/input-bool/input-bool.configuration';\r\nimport { InputConfiguration } from '../inputs/input-configuration';\r\nimport { InputCpfCnpjConfiguration } from '../inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\nimport { InputCepConfiguration } from '../inputs/input-cep/input-cep.configuration';\r\n\r\n/** Componente padrão de filtro */\r\n@Component({\r\n  standalone: true,\r\n  imports: [CommonModule, IonicModule, InputsModule, ReactiveFormsModule, FormsModule],\r\n  selector: 'filter',\r\n  templateUrl: './filter.component.html',\r\n  styleUrls: ['./filter.component.scss'],\r\n\r\n})\r\nexport class FilterComponent {\r\n\r\n  /** Label do input */\r\n  @Input() label: string;\r\n  /** Filtro que sera utilizado na pesquisa (usando two way data binding) */\r\n  filter: ModelSignal<Comparison> = model<Comparison>();\r\n\r\n  /** Tipo de input do filtro */\r\n  @Input() type: InputType;\r\n  \r\n  guid: string = Utils.GenerateGUID();\r\n  \r\n  /** Configuração input do filtro */\r\n  _configuration: InputConfiguration | null = null;\r\n  configuration: ModelSignal<InputConfiguration | null> = model<InputConfiguration | null>(null);\r\n\r\n  constructor() { \r\n    effect(() => {\r\n      if([InputType.Date, InputType.DateTime].includes(this.type)){ \r\n        if(this.filter().value){\r\n          this.model = moment(this.filter().value).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n          this.filter().value = this.model;\r\n        }\r\n      }\r\n      this.SetConfiguration();\r\n    })\r\n  }\r\n\r\n  get index() { return this.filter().propertyName; }\r\n\r\n  SetConfiguration() {\r\n    if(!this.configuration()){\r\n      if([InputType.Date, InputType.DateTime, InputType.Time].includes(this.type)){ \r\n                                           this._configuration = new InputDateConfiguration(true) } else\r\n      if(this.type == InputType.File    ){ this._configuration = new InputFileConfiguration()     } else\r\n      if(this.type == InputType.Number  ){ this._configuration = new InputNumberConfiguration()   } else\r\n      if(this.type == InputType.Decimal ){ this._configuration = new InputDecimalConfiguration()  } else\r\n      if(this.type == InputType.Currency){ this._configuration = new InputCurrencyConfiguration() } else\r\n      if(this.type == InputType.String  ){ this._configuration = new InputStringConfiguration()   } else\r\n      if(this.type == InputType.Select  ){ this._configuration = new InputSelectConfiguration()   } else\r\n      if(this.type == InputType.TextArea){ this._configuration = new InputStringConfiguration();  } else \r\n      if(this.type == InputType.Bool    ){ this._configuration = new InputBoolConfiguration();    } else\r\n      if(this.type == InputType.Cpf     ){ this._configuration = new InputCpfCnpjConfiguration(\"CPF\");  } else\r\n      if(this.type == InputType.Cnpj    ){ this._configuration = new InputCpfCnpjConfiguration(\"CNPJ\");  } else  \r\n      if(this.type == InputType.CpfCnpj ){ this._configuration = new InputCpfCnpjConfiguration(\"CPFCNPJ\");  }\r\n      if(this.type == InputType.Cep     ){ this._configuration = new InputCepConfiguration();  }\r\n    }\r\n\r\n    if(this.configuration() && this.configuration() instanceof InputSelectConfiguration){\r\n      this._configuration = new InputSelectConfiguration(\r\n        this.configuration().bindValue,\r\n        this.configuration().bindLabel,\r\n        true,\r\n        true,\r\n        this.configuration().loadFrom,\r\n        true,\r\n      );\r\n    }\r\n\r\n    if(this.configuration() instanceof InputDateConfiguration){\r\n      this._configuration = new InputDateConfiguration(true);\r\n    }\r\n\r\n    if(this.type == InputType.Bool){\r\n      if(this.index == \"ativo\"){\r\n        this._configuration = new InputSelectConfiguration('value', 'label', true, true, [\r\n          { label: 'Somente Ativos'    , value: true  },\r\n          { label: 'Somente Não Ativos', value: false },\r\n        ]);\r\n        this.model = true;\r\n      }\r\n      else{\r\n        this._configuration = new InputSelectConfiguration('value', 'label', true, false, [\r\n          { label: 'Sim', value: true  },\r\n          { label: 'Não', value: false },\r\n        ]);\r\n      }\r\n    }\r\n\r\n    if(!this._configuration){\r\n      this._configuration = this.configuration()\r\n    }\r\n  }\r\n\r\n  isFilterActive: boolean = false;\r\n\r\n  model: any | null = null;\r\n  /** Evento emitido quando o valor do filtro muda */\r\n  @Output('change') changeEmitter: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  Change(): void{\r\n    if(this.model){\r\n      if(this.type == InputType.Date && (\r\n          this.filter().operator == ComparisonOperator.LessThan || \r\n          this.filter().operator == ComparisonOperator.LessThanOrEqual)\r\n        )\r\n      { \r\n        this.model = this.FormatDateModel(moment(this.model).endOf(\"day\").toISOString());\r\n      }\r\n    }\r\n    this.filter().value = this.model;\r\n    this.filter.set(this.filter());\r\n    this.changeEmitter.emit();\r\n  }\r\n\r\n  FormatDateModel(model: string): string{\r\n    return moment(model).format(\"YYYY-MM-DDTHH:mm:ss\");\r\n  }\r\n}\r\n","@if(_configuration){\r\n  @switch (type) {\r\n    @case ('String') {\r\n      <input-string [(ngModel)]=\"model\" [label]=\"label\" (blur)=\"Change()\"></input-string>\r\n    }\r\n    @case ('Number') {\r\n      <input-number (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-number>\r\n    }\r\n    @case ('Decimal') {\r\n      <input-decimal (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-decimal>\r\n    }\r\n    @case ('Currency') {\r\n      <input-currency (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-currency>\r\n    }\r\n    @case ('Select') {\r\n      <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" [configuration]=\"_configuration\"></input-select>\r\n    }\r\n    @case ('TextArea') {\r\n      <input-string (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\"></input-string>\r\n    }\r\n    @case ('Bool') {\r\n      <input-select (change)=\"Change()\" [(ngModel)]=\"model\" class=\"th-select\" [label]=\"label\" placeholder=\"\" [configuration]=\"_configuration\"></input-select>\r\n    }\r\n    @case ('Date') {\r\n      <input-date (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date>\r\n    }\r\n    @case ('DateTime') {\r\n      <input-date-time (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-date-time>\r\n    }\r\n    @case (\"Cep\") {\r\n      <input-cep (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\"></input-cep>\r\n    }\r\n    @case (\"Cpf\") {\r\n      <input-cpf (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf>\r\n    }\r\n    @case (\"Cnpj\") {\r\n      <input-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cnpj>\r\n    }\r\n    @case (\"CpfCnpj\") {\r\n      <input-cpf-cnpj (change)=\"Change()\" [(ngModel)]=\"model\" [label]=\"label\" [configuration]=\"_configuration\"></input-cpf-cnpj>\r\n    }\r\n  }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  selector: 'forbidden-403',\r\n  standalone: true,\r\n  imports: [CommonModule, IonicModule, RouterLink],\r\n  templateUrl: './forbidden-403.component.html',\r\n  styleUrls: ['./forbidden-403.component.scss'],\r\n})\r\nexport class Forbidden403Component  implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {}\r\n\r\n}\r\n","<div class=\"bg-white size-full\">\r\n  <div class=\"relative flex flex-col items-center justify-center min-h-screen overflow-hidden\">\r\n    <div class=\"absolute inset-0 w-full h-full bg-gradient-to-br from-red-500 to-red-900 animate-gradient-fade\"></div>\r\n  \r\n    <ion-card class=\"m-0 max-w-md\">\r\n      <ion-card-content class=\"size-full bg-light/10 p-8 flex flex-col items-center justify-center text-center space-y-6\">\r\n        <div class=\"p-3 rounded-full relative translucid-border\">\r\n          <div class=\"size-12 flex items-center justify-center\">\r\n            <ion-icon class=\"text-5xl text-white/70\" name=\"shield-outline\"></ion-icon>\r\n          </div>\r\n      \r\n      \r\n          <div class=\"absolute -inset-1 rounded-full bg-gradient-to-r from-rose-400 to-pink-500 opacity-25 blur-sm\"></div>\r\n        </div>\r\n      \r\n        <ion-text class=\"text-4xl font-bold tracking-tight text-white/70\">\r\n          Acesso Negado\r\n        </ion-text>\r\n      \r\n        <ion-text color=\"light\" class=\"text-white/70\">\r\n          Você não tem permissão para acessar este recurso. Por favor, entre em contato com o administrador se acreditar que isso é um erro.\r\n        </ion-text>\r\n      \r\n        <div class=\"flex flex-col sm:flex-row gap-4 mt-4\">\r\n          <ion-button [routerLink]=\"['/']\" color=\"danger\" class=\"text-red-600 px-4 py-2 rounded-md font-medium\">\r\n            <ion-icon name=\"chevron-back\" slot=\"start\"></ion-icon>\r\n            Retornar a navegação\r\n          </ion-button>\r\n        </div>\r\n  \r\n      </ion-card-content>\r\n    </ion-card>\r\n  </div>\r\n</div>\r\n  ","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [ IonicModule, CommonModule ],\r\n  selector: 'info-popover',\r\n  templateUrl: './info-popover.component.html',\r\n  styleUrls: ['./info-popover.component.scss'],\r\n})\r\nexport class InfoPopoverComponent  implements OnInit {\r\n\r\n  @Output('OnClick') clickEventEmitter: EventEmitter<void> = new EventEmitter<void>()\r\n\r\n  @Input() button: boolean = false;\r\n  @Input() fill: string = 'solid';\r\n  @Input('position') _position: string = 'relative';\r\n  position: string = '';\r\n\r\n  SetPositionClass(){\r\n    switch(this._position){\r\n      case('relative'): {\r\n        this.position = \"relative\"; \r\n      }\r\n      break;\r\n      case('top-right'):{\r\n        this.position = \"absolute top-3 right-3\"; \r\n      }\r\n      break;\r\n      case('right'):{\r\n        this.position = \"absolute top-1/2 bottom 1/2 right-3\"; \r\n      }\r\n      break;\r\n      case('bottom-right'):{\r\n        this.position = \"absolute bottom-3 right-3\"; \r\n      }\r\n      break;\r\n      case('top'):{\r\n        this.position = \"absolute top-3 right-1/2 left-1/2\"; \r\n      }\r\n      break;\r\n      case('bottom'):{\r\n        this.position = \"absolute left-1/2 right-1/2 bottom-3\"; \r\n      }\r\n      break;\r\n      case('left'):{\r\n        this.position = \"absolute top-1/2 bottom-1/2 left-3\"; \r\n      }\r\n      break;\r\n      case('top-left'):{\r\n        this.position = \"absolute top-3 left-3\"; \r\n      }\r\n      break;\r\n      case('bottom-left'):{\r\n        this.position = \"absolute bottom-3 left-3\"; \r\n      }\r\n      break;\r\n      case('center'):{\r\n        this.position = \"absolute top-1/2 bottom-1/2 left-1/2 right-1/2\"; \r\n      }\r\n      break;\r\n    }\r\n  }\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n    this.SetPositionClass();\r\n  }\r\n\r\n  ClickEvent(){\r\n    this.clickEventEmitter.emit();\r\n  }\r\n}\r\n","<div class=\"min-w-fit min-h-fit {{position}}\">\r\n  <ion-button [fill]=\"fill\" size=\"small\" class=\"size-8 m-0\" (click)=\"button ? popover.present($event) : null\" (mouseenter)=\"!button ? popover.present($event) : null\">\r\n    <ion-icon slot=\"icon-only\" name=\"help\"></ion-icon>\r\n  </ion-button>\r\n  \r\n  <ion-popover #popover triggerAction=\"hover\">\r\n    <ng-template>\r\n      <ion-content class=\"ion-padding\">\r\n        <div class=\"w-56 text-sm\">\r\n          <ng-content></ng-content>\r\n        </div>\r\n  \r\n        @if (button) {\r\n          <div class=\"w-56 h-8 flex items-center justify-center mt-3\">\r\n            <ion-text class=\"cursor-pointer\" color=\"primary\" (click)=\"ClickEvent()\">\r\n              <ion-icon class=\"align-sub\" name=\"information-circle\"></ion-icon> Clique para saber mais\r\n            </ion-text>\r\n          </div>\r\n        }\r\n      </ion-content>\r\n    </ng-template>\r\n  </ion-popover>\r\n</div>","import { InputDecimalConfiguration, InputNumberConfiguration } from \"./input-decimal/input-decimal.configuration\";\r\n\r\nexport class InputsDefaultConfigurations {\r\n  static readonly configurationDecimalPercentage: InputDecimalConfiguration = new InputDecimalConfiguration(2, null, '%');\r\n  static readonly configurationDecimalDegree    : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"°C\");\r\n  static readonly configurationDecimalM3H       : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"m³/h\");\r\n  static readonly configurationDecimalMeters    : InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"m\");\r\n  static readonly configurationDecimalMilimeters: InputDecimalConfiguration = new InputDecimalConfiguration(2, null, \"mm\");\r\n\r\n  static readonly configurationNumberPercentage: InputNumberConfiguration = new InputNumberConfiguration(null, '%');\r\n  static readonly configurationNumberDegree    : InputNumberConfiguration = new InputNumberConfiguration(null, \"°C\");\r\n  static readonly configurationNumberM3H       : InputNumberConfiguration = new InputNumberConfiguration(null, \"m³/h\");\r\n  static readonly configurationNumberMeters    : InputNumberConfiguration = new InputNumberConfiguration(null, \"m\");\r\n  static readonly configurationNumberMilimeters: InputNumberConfiguration = new InputNumberConfiguration(null, \"mm\");\r\n}","import { AbstractControl } from \"@angular/forms\";\r\nimport {\r\n  isPossiblePhoneNumber,\r\n} from 'libphonenumber-js'\r\n\r\nexport class ControlError {\r\n  constructor(public message: string){}\r\n}\r\n\r\nexport class FormValidators{\r\n  static readonly CPFError    : ControlError = new ControlError(\"CPF incompleto\");\r\n  static readonly CnpjError   : ControlError = new ControlError(\"CNPJ incompleto\");\r\n  static readonly CPFCnpjError: ControlError = new ControlError(\"CPF / CNPJ incompleto\");\r\n  static CPFValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(control.value.length != 11){ return FormValidators.CPFError; }\r\n      return null;\r\n    }\r\n    return FormValidators.CPFError;\r\n  } \r\n  static CnpjValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(control.value.length != 14){ return FormValidators.CnpjError; }\r\n      return null;\r\n    }\r\n    return FormValidators.CnpjError;\r\n  } \r\n  static CPFCpnjValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(control.value.length < 11){\r\n        return FormValidators.CPFError;\r\n      }else\r\n      if(control.value.length > 11 && control.value.length != 14){  \r\n        return FormValidators.CnpjError;\r\n      }\r\n      return null;\r\n    }\r\n    return null;\r\n  } \r\n\r\n  static readonly TelefoneError: ControlError = new ControlError(\"Telefone invalido\");\r\n  static TelefoneValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(control.value.length != 12){\r\n        return FormValidators.TelefoneError;\r\n      }\r\n      return null;\r\n    }\r\n    return null;\r\n  } \r\n  static readonly CelularError: ControlError = new ControlError(\"Celular invalido\");\r\n  static CelularValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(control.value.length != 13){\r\n        return FormValidators.CelularError;\r\n      }\r\n      return null;\r\n    }\r\n    return null;\r\n  } \r\n  static readonly TelefoneCelularError: ControlError = new ControlError(\"Telefone / Celular inválido\");\r\n  static TelefoneCelularValidator(control: AbstractControl): ControlError | null {\r\n    if(control.value != null){\r\n      if(!(isPossiblePhoneNumber(control.value))){\r\n        return FormValidators.TelefoneCelularError;\r\n      }\r\n      return null;\r\n    }\r\n    return null;\r\n  } \r\n\r\n\r\n  static readonly PositiveNonZeroNumberError: ControlError = new ControlError(\"%fieldName% deve ser maior que 0!\");\r\n  static PositiveNonZeroNumberValidator(fieldName: string): (control: AbstractControl) => ControlError | null {\r\n    return ((control: AbstractControl): ControlError | null => {\r\n      const Error = FormValidators.PositiveNonZeroNumberError.message.replace(\"%fieldName%\", fieldName);\r\n      if(control.value != null){\r\n        if(control.value <= 0){ return new ControlError(Error); }\r\n        return null;\r\n      }\r\n      return new ControlError(Error);;\r\n    })\r\n  }\r\n\r\n  static readonly PositiveNumberError: ControlError = new ControlError(\"%fieldName% deve ser maior ou igual que 0!\");\r\n  static PositiveNumberValidator(fieldName: string): (control: AbstractControl) => ControlError | null {\r\n    return ((control: AbstractControl): ControlError | null => {\r\n      const Error = FormValidators.PositiveNumberError.message.replace(\"%fieldName%\", fieldName);\r\n      if(control.value != null){\r\n        if(control.value < 0){ return new ControlError(Error); }\r\n        return null;\r\n      }\r\n      return new ControlError(Error); \r\n    })\r\n  }\r\n\r\n  static readonly ValueBetweenError = new ControlError(\"%fieldName% deve ser maior ou igual a %min% e menor ou igual a %max%\");\r\n  static ValueBetweenValidator(min: number, max: number, fieldName: string, equalMin: boolean = true, equalMax: boolean = true): (control: AbstractControl) => ControlError | null {\r\n    return ((control: AbstractControl): ControlError | null => {\r\n      const Error = FormValidators.ValueBetweenError.message.replace(\"%fieldName%\", fieldName).replace(\"%min%\", min.toString()).replace(\"%max%\", max.toString());\r\n      if(control.value != null){\r\n        if(control.value < min && equalMin){ return new ControlError(Error); }else\r\n        if(control.value > max && equalMax){ return new ControlError(Error); }else\r\n        if(control.value <= min && !equalMin){ return new ControlError(Error); }else\r\n        if(control.value >= max && !equalMax){ return new ControlError(Error); }\r\n        return null;\r\n      }\r\n      return new ControlError(Error); \r\n    });\r\n  }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { NavController } from '@ionic/angular';\r\n\r\nimport { InputStringConfiguration, InputStringType } from '../components/inputs/input-string/input-string.configuration';\r\nimport { ApiUrlProviderService } from '../services/web/api-url-provider.service';\r\nimport { HttpServiceAtivo } from '../services/web/http.ativo.service';\r\nimport { GenericService } from './generic.service';\r\nimport { TableField } from '../classes/inputs/table-field';\r\nimport { InputType } from '../components/inputs/input-type';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UsuarioService extends HttpServiceAtivo {\r\n\r\n  public override route: string = \"usuario\"; \r\n  public override title: string = \"Usuario\"; \r\n\r\n  constructor(\r\n    protected override http: HttpClient,\r\n    protected override fb: FormBuilder,\r\n    protected override genericService: GenericService,\r\n    protected override navController : NavController,\r\n    protected override apiUrlProviderService : ApiUrlProviderService,\r\n  ) { \r\n    super(http, fb, genericService, navController, apiUrlProviderService);\r\n  }\r\n\r\n  override get lstTableFields(){\r\n    var lst: TableField[] = [];\r\n\r\n    lst[0] = this.defaultId;\r\n    lst[1] = new TableField(\"Nome\"   , \"nome\"   , this.fb.control(null, Validators.required), InputType.String)\r\n    lst[2] = new TableField(\"Apelido\", \"apelido\", this.fb.control(null, Validators.required), InputType.String)\r\n    lst[3] = new TableField(\"Senha\"  , \"senha\"  , this.fb.control(null, Validators.required), InputType.String)\r\n    lst[3].hiddenView = true;\r\n    lst[3].configuration = new InputStringConfiguration(InputStringType.Password);\r\n    lst[4] = this.defaultAtivo;\r\n\r\n    return lst;\r\n  };\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\nimport { ApiUrlProviderService } from '../../../services/web/api-url-provider.service';\r\nimport { UsuarioService        } from '../../../services/usuario.service';\r\nimport { AuthService           } from '../../../services/auth.service';\r\n\r\nimport { InputsModule             } from '../../../components/inputs/inputs.module';\r\nimport { InputSelectConfiguration } from '../../../components/inputs/input-select/input.select.configuration';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    InputsModule\r\n  ],\r\n  selector: 'login-admin',\r\n  templateUrl: './login-admin.component.html',\r\n  styleUrls: ['./login-admin.component.scss'],\r\n})\r\nexport class LoginAdminComponent  implements OnInit {\r\n\r\n  constructor(\r\n    public apiUrlProviderService: ApiUrlProviderService,\r\n    public authService: AuthService,\r\n    private usuarioService: UsuarioService,\r\n  ) { }\r\n\r\n  idUsuario: number | null;\r\n\r\n  async ngOnInit() {\r\n    try{\r\n      this.idUsuario = (await this.authService.LoadToken()).id;\r\n    }catch{}\r\n  }\r\n\r\n  public selectUserConfiguration: InputSelectConfiguration = new InputSelectConfiguration('id', ((v) => { return v.nome + ' - ' + v.apelido; }), false, true, this.usuarioService);\r\n  SelectUser(event: number){\r\n    if(event){ this.authService.BypassLogin(event).then(() => window.location.reload() ) }\r\n  }\r\n\r\n  apiUrl: string = this.apiUrlProviderService.apiUrl;\r\n  SetApiUrl(){\r\n    this.apiUrlProviderService.apiUrl = this.apiUrl;\r\n  }\r\n}\r\n","@if (this.authService.isAdmin || !this.apiUrlProviderService.production) {\r\n  <ion-button (click)=\"adminPopover.present($event)\" fill=\"outline\" class=\"aspect-square h-8 z-50\" size=\"small\">\r\n    <ion-icon name=\"shield\" slot=\"icon-only\"></ion-icon>\r\n  </ion-button>\r\n  <ion-popover id=\"admin-popover\" #adminPopover>\r\n    <ng-template>\r\n      <ion-content class=\"p-2 bg-transparent\">\r\n      <div class=\"p-2\">\r\n        <input-select\r\n          [(ngModel)]=\"idUsuario\"\r\n          label=\"Logar como...\"\r\n          (change)=\"SelectUser($event)\"\r\n          [configuration]=\"selectUserConfiguration\"\r\n        ></input-select>\r\n  \r\n        <div class=\"rounded-2xl mt-2 overflow-hidden border border-primary/30\">\r\n          <div class=\"py-2 text-center border-b border-b-medium/30\">\r\n            <span class=\"font-poppins\"> API </span>\r\n          </div>\r\n          <ion-item lines=\"none\" style=\"--border-width: 0 !important;\">\r\n            <ion-input [(ngModel)]=\"apiUrl\" (ngModelChange)=\"SetApiUrl()\"></ion-input>\r\n          </ion-item>\r\n        </div>\r\n      </div>\r\n      </ion-content>\r\n    </ng-template>\r\n  </ion-popover>\r\n}","import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { Component, EventEmitter, HostListener, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IonicModule, NavController } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { EnvironmentService } from '../../services/environment.service';\r\nimport { ApiUrlProviderService } from '../../services/web/api-url-provider.service';\r\nimport { GenericService } from '../../services/generic.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n  ],\r\n  selector: 'login',\r\n  templateUrl: './login.component.html',\r\n  styleUrls: ['./login.component.scss'],\r\n})\r\nexport class DefaultLoginComponent  implements OnInit {\r\n\r\n  constructor(\r\n    private fb: FormBuilder,\r\n    private genericService: GenericService,\r\n    private navController: NavController,\r\n    private authService: AuthService,\r\n    public apiUrlProviderService: ApiUrlProviderService,\r\n    public coreService: EnvironmentService,\r\n    private router: Router\r\n  ) { \r\n    this.genericService.SetTitle(\"Login\");\r\n  }\r\n  \r\n  async ngOnInit() {\r\n    this.CreateForm();\r\n\r\n    if(!this.coreService.environment.production){\r\n      this.frm.patchValue(this.coreService.environment.defaultCredentials); \r\n    }\r\n    const Token = await this.authService.LoadToken()\r\n    if(this.authService.isTokenValid(Token)){\r\n      this.router.navigate([\"/\"]);\r\n    }\r\n  }\r\n  \r\n  frm: FormGroup;\r\n  CreateForm(): void{\r\n    this.frm = this.fb.group({\r\n      apelido : [null ,Validators.required],\r\n      senha   : [null, Validators.required]\r\n    });\r\n  }\r\n\r\n  loading: boolean;\r\n  submitted: boolean = false;\r\n\r\n  @Output() OnLogin: EventEmitter<any> = new EventEmitter<any>();\r\n  @ViewChild('loginContainer') loginContainer: HTMLElement;\r\n\r\n  @HostListener('window:keydown', ['$event'])\r\n  async Login($event?: KeyboardEvent): Promise<void>{\r\n    if($event && $event.key != 'Enter'){ return; }\r\n    if($event && !this.loginContainer.contains(document.activeElement)){\r\n      return; // Prevent login if the active element is not within the login container\r\n    }\r\n\r\n    this.submitted = true;\r\n    this.loading   = true;\r\n   \r\n    if(!this.frm.valid){\r\n      this.loading = false;\r\n      this.genericService.PresentToast(\"Usuario / Senha não informado!\"); return;\r\n    }\r\n\r\n    try{\r\n      const Token = await this.authService.Login(this.frm.value);\r\n\r\n      this.loading = false;\r\n      this.navController.navigateRoot(\"/\");\r\n      this.genericService.PresentToast(\"Logado com sucesso!\", \"checkmark-circle\");\r\n      this.OnLogin.emit(Token);\r\n    }\r\n    catch (status){\r\n      if(status == 401){\r\n        this.genericService.PresentToast(\"Usuário / Senha inválido (s)!\");\r\n      }else{\r\n        this.genericService.PresentToast(\"Ocorreu um erro ao realizar o login!\");\r\n      }\r\n      this.loading = false;\r\n    }\r\n  }\r\n}\r\n","<!-- <div class=\"size-full flex justify-center items-center relative\">\r\n  <div class=\"landscape:w-4/5 portrait:w-full landscape:h-2/3 portrait:h-full landscape:max-w-[60rem] translucid-border landscape:rounded-3xl landscape:backdrop-blur-xl overflow-hidden\">\r\n    <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n      <div class=\"shrink-0 w-96 portrait:w-full portrait:h-32 h-full p-3\">\r\n        <div class=\"rounded-2xl size-full overflow-x-hidden\">\r\n          <ng-content class=\"size-full\"></ng-content>\r\n        </div>\r\n      </div>\r\n      <div class=\"grow flex items-center justify-center h-full py-3 pr-3 portrait:pl-3\">\r\n        <div class=\"w-96 h-full flex flex-col items-center justify-center gap-2\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n\r\n          <ion-text class=\"text-5xl my-10 portrait:mt-[-5rem]\"> Login </ion-text>\r\n\r\n          <ion-card class=\"w-full backdrop-blur-xl\">\r\n            <ion-card-content>\r\n              <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n                <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n                <ion-input placeholder=\"Usuário / User\" formControlName=\"apelido\"></ion-input>\r\n              </ion-item>\r\n            </ion-card-content>\r\n          </ion-card>\r\n\r\n          <ion-card class=\"w-full backdrop-blur-xl\"> \r\n            <ion-card-content>\r\n              <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n                <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n                <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\">\r\n                  <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n                </ion-input>\r\n              </ion-item>\r\n            </ion-card-content>\r\n          </ion-card>\r\n\r\n          <div class=\"w-full\">\r\n            <a href=\"\">Esqueceu a senha?</a>\r\n          </div>\r\n\r\n          <div class=\"flex w-full\">\r\n            <ion-button class=\"rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n              <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n              <ion-icon    class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0':  loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n              <span class=\"default-transition\" > Login </span>\r\n            </ion-button>\r\n\r\n            <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n              <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n            </ion-button>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div> -->\r\n\r\n<div #loginContainer class=\"size-full flex justify-center items-center relative portrait:p-4\">\r\n  <div class=\"landscape:w-4/5 landscape:h-2/3 landscape:xl:max-w-[60rem] portrait:size-full translucid-border backdrop-blur-xl rounded-3xl overflow-hidden\">\r\n    <div class=\"size-full flex portrait:flex-col\" style=\"background-color: color-mix(in srgb, var(--ion-color-light) 20%, transparent 80%);\">\r\n      <div class=\"shrink-0 w-96 portrait:w-full portrait:h-40 landscape:h-full p-2\">\r\n        <div class=\"size-full rounded-2xl overflow-hidden\">\r\n          <ng-content select=\"[slot=logo]\" class=\"size-full\"></ng-content>\r\n        </div>\r\n      </div>\r\n      <div class=\"shrink size-full flex flex-col items-center justify-center gap-3 px-10 relative\" *ngIf=\"frm\" [formGroup]=\"frm\">\r\n        <ion-text class=\"h-24 text-5xl\"> Login </ion-text>\r\n\r\n        <ion-card class=\"w-full backdrop-blur-xl\">\r\n          <ion-card-content>\r\n            <ion-item lines=\"none\" label=\"Senha\" labelPlacement=\"stacked\" class=\"rounded-2xl my-3 w-full\">\r\n              <ion-icon name=\"person\" slot=\"start\"></ion-icon>\r\n              <ion-input placeholder=\"Usuário / User\" formControlName=\"apelido\" (keydown.enter)=\"Login()\"></ion-input>\r\n            </ion-item>\r\n          </ion-card-content>\r\n        </ion-card>\r\n\r\n        <ion-card class=\"w-full backdrop-blur-xl\"> \r\n          <ion-card-content>\r\n            <ion-item lines=\"none\" class=\"rounded-2xl my-3 w-full\">\r\n              <ion-icon name=\"lock-closed\" slot=\"start\"></ion-icon>\r\n              <ion-input type=\"password\" formControlName=\"senha\" placeholder=\"Senha / Password\" (keydown.enter)=\"Login()\">\r\n                <ion-input-password-toggle slot=\"end\"></ion-input-password-toggle>\r\n              </ion-input>\r\n            </ion-item>\r\n          </ion-card-content>\r\n        </ion-card>\r\n\r\n        <div class=\"flex w-full\">\r\n          <ion-button class=\"transition-all rounded-2xl shadow-xl default-transition w-full\" expand=\"block\" (click)=\"Login()\" [disabled]=\"loading\">\r\n            <ion-spinner class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0': !loading, 'mr-2' : loading}\" slot=\"start\"></ion-spinner>\r\n            <ion-icon    class=\"default-transition\" [ngClass]=\"{'-translate-x-12 opacity-0 size-0':  loading}\" name=\"enter-outline\" slot=\"start\" ></ion-icon>\r\n            <span class=\"default-transition\"> Login </span>\r\n          </ion-button>\r\n\r\n          <!-- <ion-button class=\"shrink-0 aspect-square ml-3\" color=\"dark\" hidden>\r\n            <svg class=\"size-8\" slot=\"icon-only\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 32 32\" width=\"64\" height=\"64\"><defs><path id=\"A\" d=\"M44.5 20H24v8.5h11.8C34.7 33.9 30.1 37 24 37c-7.2 0-13-5.8-13-13s5.8-13 13-13c3.1 0 5.9 1.1 8.1 2.9l6.4-6.4C34.6 4.1 29.6 2 24 2 11.8 2 2 11.8 2 24s9.8 22 22 22c11 0 21-8 21-22 0-1.3-.2-2.7-.5-4z\"/></defs><clipPath id=\"B\"><use xlink:href=\"#A\"/></clipPath><g transform=\"matrix(.727273 0 0 .727273 -.954545 -1.45455)\"><path d=\"M0 37V11l17 13z\" clip-path=\"url(#B)\" fill=\"#fbbc05\"/><path d=\"M0 11l17 13 7-6.1L48 14V0H0z\" clip-path=\"url(#B)\" fill=\"#ea4335\"/><path d=\"M0 37l30-23 7.9 1L48 0v48H0z\" clip-path=\"url(#B)\" fill=\"#34a853\"/><path d=\"M48 48L17 24l-4-3 35-10z\" clip-path=\"url(#B)\" fill=\"#4285f4\"/></g></svg>\r\n          </ion-button> -->\r\n        </div>\r\n\r\n        <div class=\"w-full\">\r\n          <ng-content select=\"[slot=end]\"></ng-content>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { Preferences } from '@capacitor/preferences';\r\n\r\nimport { DrawerComponent } from '../drawer/drawer.component';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { SIonPopoverModule } from '../popover/sion-popover.module';\r\n\r\n@Component({\r\n  standalone: true,\r\n  imports: [ CommonModule, IonicModule, RouterLinkWithHref, SIonPopoverModule ],\r\n  selector: 'main-content',\r\n  templateUrl: './main-content.component.html',\r\n  styleUrls: ['./main-content.component.scss'],\r\n})\r\nexport class MainContentComponent  implements OnInit {\r\n\r\n  @Input() backdrop: string = 'bg-primary/30';\r\n  @Input() shadowColor: string = 'color-mix(in srgb, var(--ion-color-primary) 15%, transparent)';\r\n\r\n  @Input() colapsed: boolean = false;\r\n  @Input() drawerComponent: DrawerComponent;\r\n\r\n  constructor(\r\n    public authService: AuthService,\r\n  ) { }\r\n\r\n  Token: any;\r\n  async ngOnInit(): Promise<void> {\r\n    this.Token = await this.authService.LoadToken();\r\n    this.Theme = Number((await Preferences.get({ key: 'theme' })).value) as Theme;\r\n\r\n    this.SetTheme(this.Theme);\r\n    window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {\r\n      this.SetTheme(this.Theme);\r\n    });\r\n  }\r\n\r\n  Theme: Theme = Theme.System;\r\n  async SetTheme(theme: Theme) {\r\n    this.Theme = theme;\r\n    await Preferences.set({ key: 'theme', value: this.Theme.toString() });\r\n    if (this.Theme === Theme.System) {\r\n      var matches = window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n      if (matches) {\r\n        document.body.classList.add('dark');\r\n      } else {\r\n        document.body.classList.remove('dark');\r\n      }\r\n    }\r\n    else \r\n    if (this.Theme === Theme.Light) {\r\n      document.body.classList.remove('dark');\r\n    } else \r\n    if (this.Theme === Theme.Dark) {\r\n      document.body.classList.add('dark'); \r\n    }\r\n  }\r\n\r\n  get fullScreen(): boolean { \r\n    if(document.fullscreenElement != null){\r\n      return true;\r\n    }\r\n    return false; \r\n  };\r\n\r\n  @ViewChild('target') FullScreenConteiner;\r\n  FullScreen(): void{\r\n    if(!this.fullScreen){\r\n      const elem = this.FullScreenConteiner.nativeElement;\r\n  \r\n      if (elem.requestFullscreen) {\r\n        elem.requestFullscreen();\r\n      } else if (elem.msRequestFullscreen) {\r\n        elem.msRequestFullscreen();\r\n      } else if (elem.mozRequestFullScreen) {\r\n        elem.mozRequestFullScreen();\r\n      } else if (elem.webkitRequestFullscreen) {\r\n        elem.webkitRequestFullscreen();\r\n      }\r\n    }else{\r\n      document.exitFullscreen()\r\n    }\r\n  }\r\n}\r\n\r\nenum Theme {\r\n  System = 0,\r\n  Light  = 1,\r\n  Dark   = 2,\r\n}\r\n","<div class=\"size-full flex flex-col\" [ngClass]=\"{'bg-light/50': fullScreen}\" #target>\r\n  <div class=\"w-full h-14 relative shrink-0\">\r\n    <ion-card class=\"m-0 rounded-none size-full border-none\">\r\n      <ion-card-content class=\"p-0 px-2 size-full flex\">\r\n        <div class=\"w-1/2 h-full flex items-center justify-start\">\r\n          @if (!fullScreen) {\r\n            <ion-menu-button  [routerLink]=\"['/']\" [autoHide]=\"true\"></ion-menu-button>\r\n          }\r\n          <ng-content select=\"[slot=start]\"></ng-content>\r\n        </div>\r\n\r\n        <div class=\"w-1/2 h-full flex items-center justify-end gap-2\">\r\n          <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n          <ion-button (click)=\"FullScreen()\" fill=\"outline\" color=\"dark\" size=\"small\" class=\"size-10 aspect-square  portrait:hidden\">\r\n            <ion-icon slot=\"icon-only\" name=\"expand\"></ion-icon>\r\n          </ion-button>\r\n\r\n\r\n          @if (!fullScreen) {\r\n            <div #anchor>\r\n              <ion-button (click)=\"userPopover.present($event)\" size=\"small\" class=\"size-10 aspect-square\">\r\n                <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n              </ion-button>\r\n            </div>\r\n            <sion-popover #userPopover [anchor]=\"anchor\" [flip]=\"false\" width=\"13rem\">\r\n              <div class=\"w-full flex flex-col overflow-hidden\">\r\n                <div class=\"w-full flex p-2 gap-2 overflow-hidden\">\r\n                  <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center bg-primary\">\r\n                    <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n                  </div>\r\n\r\n                  <div class=\"shrink-0 w-full flex flex-col justify-center items-start overflow-hidden text-sm\">\r\n                    <span class=\"truncate\"> {{Token ? Token.Nome : ''}} </span>\r\n                    <span class=\"truncate text-secondary\"> &#64;{{Token ? Token.Apelido : ''}} </span>\r\n                  </div>\r\n                </div>\r\n\r\n                <div class=\"w-full\">\r\n                  <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n                </div>\r\n\r\n                <div class=\"w-full p-1 !pb-0 translucid-border !border-x-0 !border-b-0\">\r\n                  <div class=\"rounded-xl flex gap-2 items-center justify-start default-transition py-1 px-2\">\r\n                    <ion-icon name=\"contrast\"></ion-icon>\r\n                    <ion-text> Tema </ion-text>\r\n                  </div>\r\n\r\n                  <div class=\"flex flex-col pl-4\">\r\n                    <ion-radio-group alignment=\"start\" [allowEmptySelection]=\"false\" [value]=\"Theme\" (ionChange)=\"SetTheme($event.detail.value)\">\r\n                      <ion-item class=\"bg-transparent\" lines=\"full\">\r\n                        <ion-icon name=\"cog\" slot=\"start\"></ion-icon>\r\n                        <ion-radio class=\"w-full\" [value]=\"0\">Sistema</ion-radio>\r\n                      </ion-item>\r\n                      <ion-item class=\"bg-transparent\" lines=\"full\">\r\n                        <ion-icon name=\"sunny\" slot=\"start\"></ion-icon>\r\n                        <ion-radio class=\"w-full\" [value]=\"1\">Claro</ion-radio>\r\n                      </ion-item>\r\n                      <ion-item class=\"bg-transparent\" lines=\"none\">\r\n                        <ion-icon name=\"moon\" slot=\"start\"></ion-icon>\r\n                        <ion-radio class=\"w-full\" [value]=\"2\">Escuro</ion-radio>\r\n                      </ion-item>\r\n                    </ion-radio-group>\r\n\r\n\r\n                    <!-- <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n                      <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n                        <ion-checkbox [checked]=\"Theme == 0\" (ionChange)=\"SetTheme(0)\" ></ion-checkbox>\r\n                        <ion-icon name=\"cog\"></ion-icon>\r\n                        <ion-text> Sistema </ion-text>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n                      <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n                        <ion-checkbox [checked]=\"Theme == 1\" (ionChange)=\"SetTheme(1)\" ></ion-checkbox>\r\n                        <ion-icon name=\"sunny\"></ion-icon>\r\n                        <ion-text> Claro </ion-text>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0 overflow-hidden\">\r\n                      <div class=\"rounded-xl flex gap-2 items-center justify-start cursor-pointer hover:bg-medium/30 default-transition py-1 px-2\">\r\n                        <ion-checkbox [checked]=\"Theme == 2\" (ionChange)=\"SetTheme(2)\" ></ion-checkbox>\r\n                        <ion-icon name=\"moon\"></ion-icon>\r\n                        <ion-text> Escuro </ion-text>\r\n                      </div>\r\n                    </div> -->\r\n                  </div>\r\n                </div>\r\n\r\n\r\n                <div class=\"w-full p-1 translucid-border !border-x-0 !border-b-0\">\r\n                  <div (click)=\"authService.Loggout()\" class=\"rounded-xl flex gap-2 cursor-pointer items-center justify-start hover:bg-medium/10 default-transition py-1 px-2\">\r\n                    <ion-icon color=\"danger\" name=\"exit\"></ion-icon>\r\n                    <ion-text> Log Out </ion-text>\r\n                  </div>\r\n\r\n                  <!-- <ion-text> Log Out </ion-text>\r\n                  <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n                    <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n                  </ion-button> -->\r\n                </div>\r\n              </div>\r\n\r\n              <!-- <div class=\"size-full\">\r\n                <div class=\"w-full p-1 flex items-center\">\r\n                  <div class=\"size-10 shrink-0 aspect-square rounded-2xl text-sm flex items-center justify-center default-transition\" style=\"background-color: var(--ion-color-primary);\">\r\n                    <span class=\"uppercase text-white\">{{Token ? Token.Nome[0] : ''}}</span>\r\n                  </div>\r\n                  <div class=\"grow min-w-10 p-2 justify-center items-center whitespace-nowrap text-ellipsis overflow-hidden block default-transition\" [ngClass]=\"{'opacity-0 w-0': colapsed}\">\r\n                    <span>{{Token ? Token.Nome : ''}}</span> <br>\r\n                    <ion-text color=\"secondary\" class=\"text-sm\">\r\n                      &#64;{{Token ? Token.Apelido : ''}}\r\n                    </ion-text>\r\n                  </div>\r\n                </div>\r\n                <div class=\"w-full\">\r\n                  <ng-content class=\"size-full\" select=\"[slot=user-popover]\"></ng-content>\r\n                </div>\r\n                <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n                  <div class=\"hover:bg-medium/30 default-transition size-full\">\r\n                    <ion-button color=\"dark\" fill=\"clear\" size=\"small\" class=\"rounded-xl w-full text-left overflow-hidden\">\r\n                      <ion-icon slot=\"start\" name=\"contrast\"></ion-icon>\r\n                      <ion-label class=\"text-sm\">Tema</ion-label>\r\n                    </ion-button>\r\n                  </div>\r\n                </div>\r\n                <div class=\"w-full p-1 px-2 translucid-border !border-x-0 !border-b-0 flex items-center justify-between\">\r\n                  <ion-text> Log Out </ion-text>\r\n                  <ion-button (click)=\"authService.Loggout()\" class=\"size-8 shrink-0\" size=\"small\" fill=\"clear\" color=\"danger\">\r\n                    <ion-icon slot=\"icon-only\" name=\"exit-outline\"></ion-icon> \r\n                  </ion-button>\r\n                </div>\r\n              </div> -->\r\n            </sion-popover>\r\n          }\r\n        </div>\r\n      </ion-card-content>\r\n    </ion-card>\r\n  </div>\r\n  <div class=\"size-full relative p-2 pt-0 bg-light\">\r\n    <div class=\"size-full relative rounded-2xl content-shadow overflow-hidden {{backdrop}}\" style=\"--shadow-color: {{shadowColor}}\">\r\n      <ng-content></ng-content> \r\n    </div>\r\n  </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  selector: 'sion-card',\r\n  standalone: true,\r\n  imports: [ CommonModule, IonicModule ],\r\n  templateUrl: './sion-card.component.html',\r\n  styleUrls: ['./sion-card.component.scss'],\r\n})\r\nexport class SionCardComponent  implements OnInit {\r\n\r\n\r\n  @Input() background: string = 'bg-light';\r\n  @Input() backdrop: string = 'bg-primary/30';\r\n  @Input() justify: string = 'justify-center';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {}\r\n\r\n}\r\n","<ion-card class=\"m-0 size-full\">\r\n  <ion-card-content class=\"size-full p-0\">\r\n    <div class=\"size-full {{backdrop}} flex flex-col overflow-hidden\">\r\n      <div class=\"flex items-center {{justify}} p-2 min-h-8 shrink-0\">\r\n        <ng-content select=\"[slot=header]\"></ng-content>\r\n      </div>\r\n      <div class=\"{{background}} size-full rounded-t-2xl overflow-hidden\">\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n  </ion-card-content>\r\n</ion-card>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { StepperComponent } from '../stepper.component';\r\n\r\n@Component({\r\n  selector: 'step',\r\n  templateUrl: './step.component.html',\r\n  styleUrls: ['./step.component.scss'],\r\n})\r\nexport class StepComponent  implements OnInit {\r\n  \r\n  @Input()        label   : string = \"Label\";\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() {\r\n  }\r\n\r\n  parent: StepperComponent;\r\n\r\n  get index(): number{ \r\n    if(this.parent && this.parent.lstSteps){\r\n      return this.parent.lstSteps.toArray().indexOf(this);\r\n    }\r\n    return 0;\r\n  }\r\n  \r\n  get fill(): boolean{\r\n    if(this.parent){\r\n      return this.parent.lstSteps.toArray().indexOf(this) == this.parent.value();\r\n    }\r\n    return false;\r\n  };\r\n  \r\n  get selected(): boolean{\r\n    if(this.parent){\r\n      return this.parent.lstSteps.toArray().indexOf(this) <= this.parent.value();\r\n    }\r\n    return false;\r\n  };\r\n\r\n  get _fill(){\r\n    return this.fill ? 1 : 0; \r\n  }\r\n}","<div class=\"px-1 flex flex-col items-center justify-center text-center animated\">\r\n  <div [ngClass]=\"{'selected': selected}\" class=\"default-transition min-h-8 min-w-8 bg-red-400 flex items-center justify-center rounded-2xl step\">\r\n    <div class=\"wrapper\"><ng-content select=\"ion-icon, ion-text\"></ng-content></div>\r\n    <div class=\"default\">\r\n      {{index + 1}}\r\n    </div>\r\n  </div>\r\n  \r\n  <ion-text> {{label}} </ion-text>\r\n  <ion-progress-bar [color]=\"selected ? 'secondary' : 'primary'\" class=\"h-2 ease-in-out\" [value]=\"_fill\"></ion-progress-bar>\r\n</div>","import { AfterContentInit, Component, ContentChildren, QueryList } from '@angular/core';\r\nimport { StepComponent } from './step/step.component';\r\nimport { CustomInput } from '../inputs/custom-input';\r\nimport { InputProviderFactory } from '../inputs/input-provider-factory';\r\n\r\n@Component({\r\n  selector: 'stepper',\r\n  templateUrl: './stepper.component.html',\r\n  styleUrls: ['./stepper.component.scss'],\r\n  providers: InputProviderFactory.GetProviders(StepperComponent)\r\n})\r\nexport class StepperComponent extends CustomInput<any> implements AfterContentInit  {\r\n  override setFocus(event: MouseEvent): void {\r\n    // throw new Error('Method not implemented.');\r\n  }\r\n\r\n  constructor() { super(); }\r\n  ngAfterContentInit(): void {\r\n    if(this.lstSteps){\r\n      this.lstSteps.filter(p => !p.parent).forEach(comp => { comp.parent = this; });\r\n    }\r\n  }\r\n\r\n  @ContentChildren(StepComponent) lstSteps : QueryList<StepComponent>;\r\n\r\n  override writeValue(obj: string): void | Promise<void> {\r\n    this.value.set(obj);\r\n    this.runValidation();\r\n  }\r\n\r\n  override SetValue(obj: any): void {\r\n    this.value.set(obj);\r\n    this.ngAfterContentInit();\r\n    this.runValidation();\r\n    this.propagateChange(obj);\r\n  }\r\n}\r\n","<div class=\"flex w-full justify-evenly\">\r\n    <ng-content select=\"step\" class=\"grow\"></ng-content>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StepComponent } from './step/step.component';\r\nimport { StepperComponent } from './stepper.component';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@NgModule({\r\n  declarations: [ StepComponent, StepperComponent ],\r\n  exports: [ StepComponent, StepperComponent ],\r\n  imports: [\r\n    CommonModule,\r\n    IonicModule\r\n  ]\r\n})\r\nexport class StepperModule { }\r\n","import { Component, Input, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { RouterOutlet } from \"@angular/router\";\r\nimport { Utils } from \"../../../services/utils.service\";\r\n\r\n@Component({\r\n  selector: 'tab',\r\n  templateUrl: './tab.component.html',\r\n  styleUrls: ['./tab.component.scss'],\r\n})\r\nexport class TabComponent {\r\n  @Input() id   : string  = null;\r\n\r\n  @Input() label: string  = \"Label\";\r\n  /** Icone da aba @link https://ionic.io/ionicons */\r\n  @Input() name : string  = \"warning\";\r\n  /** Rota aba, quando náo informada irá mostrar o conteudo do componente */\r\n  @Input() public route : string | null = null;\r\n  @Input() active: boolean = false;\r\n  @Input() relative: boolean = false;\r\n\r\n  constructor() { }\r\n\r\n  @ViewChild('placeToRender', {read: ViewContainerRef}) placeToRender: ViewContainerRef;\r\n  routerOutlet: RouterOutlet | null = null;\r\n\r\n  guid = Utils.GenerateGUID();\r\n}\r\n\r\n","<div [ngClass]=\"{'-translate-x-full opacity-0': !active,\r\n                 '!relative': relative }\" class=\"default-transition overflow-hidden max-h-full size-full absolute top-0 left-0\">\r\n  @if(route && active){\r\n    <router-outlet class=\"size-full\"></router-outlet>\r\n  }@else {\r\n    <ng-content></ng-content>\r\n  }\r\n</div>","import { AfterContentInit, Component, ContentChild, ContentChildren, EventEmitter, OnInit, Output, QueryList } from '@angular/core';\r\nimport { TabComponent } from '../tab/tab.component';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'tabs',\r\n  templateUrl: './tabs.component.html',\r\n  styleUrls: ['./tabs.component.scss'],\r\n})\r\nexport class TabsComponent implements AfterContentInit {\r\n\r\n  @ContentChildren(TabComponent) lstTabs: QueryList<TabComponent>;\r\n  @ContentChild(RouterOutlet)  router: RouterOutlet;\r\n  \r\n  /** Emitido quando a aba é trocada. Emite o ID do elemento */\r\n  @Output('change') changeEmitter: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n  constructor(\r\n  ) { }\r\n\r\n  ngAfterContentInit(): void {\r\n    let activeTabs = this.lstTabs.filter((tab) => tab.active);\r\n    if(activeTabs.length == 0 && this.lstTabs.length > 0) { this.SetActiveTab(this.lstTabs.first); }\r\n  \r\n    let currentLocationTabs = this.lstTabs.filter(tab => tab.route).filter((tab) => window.location.pathname.toLocaleLowerCase().includes((tab.route).toLocaleLowerCase()));\r\n    if(currentLocationTabs.length > 0){ this.SetActiveTab(currentLocationTabs[0]); }\r\n  }\r\n\r\n  ActiveTab: TabComponent | null = null;\r\n  SetActiveTab(tab: TabComponent){\r\n    this.lstTabs.forEach(tab => tab.active = false);\r\n    tab.active = true;\r\n    this.ActiveTab = tab;\r\n    if(tab.route){ this.isComponent = false; } else{ this.isComponent = true; }\r\n    this.changeEmitter.emit(this.ActiveTab.id);\r\n  }\r\n  isComponent: boolean = true;\r\n\r\n  GetElse(){\r\n    return this.lstTabs.some(p => p.route != null) ? './' : undefined\r\n  }\r\n}\r\n","<div class=\"flex flex-col size-full\">\r\n  <div class=\"h-10 w-full flex px-3 mask-x/3 overflow-x-auto\">\r\n    @for (tab of lstTabs; track $index) {\r\n      <div [routerLink]=\"tab.route ? '.' + tab.route : GetElse()\" [ngClass]=\"{'selected': tab.active}\" class=\"default-transition !translucid-background translucid-border tab-selector !border-b-0 animated-from-right whitespace-nowrap\" (click)=\"SetActiveTab(tab)\">\r\n        <ion-text class=\"mx-auto\" [color]=\"tab.active ? 'dark' : ''\">\r\n          <ion-icon [name]=\"tab.name\" class=\"align-sub mr-1\"></ion-icon> {{tab.label}}\r\n        </ion-text>\r\n      </div>\r\n    }\r\n  </div>\r\n  <div class=\"translucid-border tab-content !overflow-hidden relative\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>","import { RouterLinkWithHref, RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { TabsComponent } from './tabs/tabs.component';\r\nimport { TabComponent } from './tab/tab.component';\r\nimport { NgVarDirective } from '../../directives/ng-var.directive';\r\n\r\n@NgModule({\r\n  declarations: [ TabsComponent, TabComponent ],\r\n  exports     : [ TabsComponent, TabComponent ],\r\n  imports: [ CommonModule, IonicModule, NgVarDirective, RouterLinkWithHref, RouterModule ]\r\n})\r\nexport class TabsModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { AfterViewInit, Component, ElementRef, Host, Input, input, OnDestroy, OnInit, SkipSelf, ViewChild } from '@angular/core';\r\nimport { IonicModule } from '@ionic/angular';\r\n\r\n@Component({\r\n  selector: 'tooltip',\r\n  standalone: true,\r\n  imports: [CommonModule, IonicModule],\r\n  templateUrl: './tooltip.component.html',\r\n  styleUrls: ['./tooltip.component.scss'],\r\n})\r\nexport class TooltipComponent {\r\n\r\n  @Input() align: 'top' | 'bottom' | 'left' | 'right' = 'right';\r\n  @Input() color: string= 'secondary';\r\n}\r\n","<!-- <div\r\n  class=\"\r\n    absolute\r\n    \r\n\r\n    default-transition px-2\r\n    min-w-fit h-fit py-1\r\n    bg-[var(--ion-color-secondary)] \r\n    rounded-xl\r\n  \"\r\n  [ngClass]=\"{'!translate-x-0 !translate-y-0 !opacity-100': _active}\"\r\n> \r\n  <div class=\"absolute -left-1 top-0 rounded bottom-0 my-auto rotate-45 h-4 aspect-square bg-red-500 [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n  <div class=\"z-[100] whitespace-nowrap\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>  -->\r\n<div #wrapper id=\"wrapper\" class=\"size-full absolute left-0 right-0 animated\">\r\n  <div\r\n    id=\"tooltip\"\r\n    style=\"--background: var(--ion-color-{{color}})\"\r\n    class=\"\r\n      !pointer-events-none\r\n      absolute\r\n      default-transition px-2\r\n      min-w-fit h-fit py-1\r\n      bg-[var(--background)]\r\n      rounded-xl blur-sm\r\n      opacity-0\r\n      max-w-full\r\n      {{align}}\r\n    \"\r\n  > \r\n    @switch (align) {\r\n      @case ('top') {\r\n        <div class=\"absolute rounded -bottom-1 left-0 right-0 mx-auto -rotate-45 h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n      }\r\n      @case ('bottom') {\r\n        <div class=\"absolute rounded -top-1 left-0 right-0 mx-auto rotate-[135deg] h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n      }\r\n      @case ('right') {\r\n        <div class=\"absolute rounded -left-1 top-0 bottom-0 my-auto rotate-45 h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n      }\r\n      @case ('left') {\r\n        <div class=\"absolute rounded -right-1 top-0 bottom-0 my-auto -rotate-[135deg] h-4 aspect-square bg-[var(--background)] [clip-path:polygon(0_20%,_0%_100%,_80%_100%)]\"></div>\r\n      }\r\n    }\r\n    <div class=\"z-[100] block text-dark text-sm\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div> \r\n</div>\r\n\r\n","import { AfterContentInit, Component, ElementRef, HostListener, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { TooltipComponent } from '../tooltip/tooltip.component';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n  selector: 'text-tooltip',\r\n  standalone: true,\r\n  imports: [CommonModule, IonicModule, TooltipComponent],\r\n  templateUrl: './text-tooltip.component.html',\r\n  styleUrls: ['./text-tooltip.component.scss'],\r\n})\r\nexport class TextTooltipComponent implements OnChanges, AfterContentInit  {\r\n  isOverflowing: boolean = true;\r\n\r\n  @ViewChild('text') text: ElementRef<HTMLDivElement>;\r\n  private CheckOverflowHandler(){\r\n    if(this.text){ this.isOverflowing = this.text.nativeElement.scrollWidth > this.text.nativeElement.clientWidth; }\r\n  };\r\n  \r\n  @Input() align: 'top' | 'bottom' | 'left' | 'right' = 'right';\r\n  @Input() color: string= 'secondary';\r\n\r\n  constructor() { \r\n  }\r\n  \r\n  @HostListener(\"mouseenter\")\r\n  onMouseEnter() {\r\n    this.CheckOverflowHandler()\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    setTimeout(() => this.CheckOverflowHandler(), 100)\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.CheckOverflowHandler();\r\n  }\r\n\r\n  @HostListener(\"window:resize\")\r\n  onResize() {\r\n    this.CheckOverflowHandler()\r\n  }\r\n\r\n}\r\n","<div #text class=\"w-full truncate relative  overflow-hidden\">\r\n  <ng-content select=\"[slot=content]\"></ng-content>\r\n</div>\r\n<div class=\"absolute top-0 left-0 size-full\">\r\n  <tooltip [color]=\"color\" [align]=\"align\" *ngIf=\"isOverflowing\" [hidden]=\"!isOverflowing\">\r\n    <ng-content select=\"[slot=tooltip]\"></ng-content>\r\n  </tooltip>\r\n</div>","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n  constructor(private auth: AuthService, private router: Router) {}\r\n\r\n  async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {\r\n    const Token = await this.auth.LoadToken();\r\n    const Authenticated = this.auth.isTokenValid(Token);\r\n    if(!Authenticated){\r\n      this.auth.Loggout();\r\n    }\r\n    return Authenticated;\r\n  }\r\n}","import { HttpClient, HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable, catchError } from \"rxjs\";\r\nimport { ToastController } from \"@ionic/angular\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\nimport { ApiUrlProviderService } from \"../services/web/api-url-provider.service\";\r\nimport { GenericService } from \"../services/generic.service\";\r\nimport { AuthService } from \"../services/auth.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n\r\n  constructor(\r\n    private auth: AuthService,\r\n    private http: HttpClient,\r\n    private genericService: GenericService,\r\n    private toastController: ToastController,\r\n    private apiUrlProviderService: ApiUrlProviderService,\r\n    private router: Router,\r\n  ) {}\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    return next.handle(req).pipe(\r\n      catchError((error: HttpErrorResponse) => { \r\n        // if(error.status == 0){\r\n        //   this.PresentErrorToast(error.error, req, error);\r\n        // }\r\n        if(error.status == 401){ \r\n          this.auth.Loggout(); \r\n          this.router.navigate(['/login'], { queryParams: { returnUrl: window.location.pathname } });\r\n        }else \r\n        if(error.status == 403){\r\n          this.router.navigate(['/403'])\r\n        } else\r\n        if(error.status != 404){ \r\n          this.PresentErrorToast(error.error, req, error);\r\n        }\r\n        throw error;\r\n      })\r\n    );\r\n  }\r\n\r\n  private localUserKey: string = \"APLICATION_USER_KEY\";\r\n  private localAdminKey: string = \"APLICATION_ADMIN_KEY\";\r\n  async PresentErrorToast(json: string, request: any, fullError: any) {\r\n    var res: ApiErrorReturn = null;\r\n    try{\r\n      res = JSON.parse(json) as ApiErrorReturn\r\n    }catch{\r\n      res = { Erro: \"Não foi possivel converter o JSON de retorno!\", Mensagem: \"Ocorreu um erro inesperado!\", _Info: \"\" }\r\n    }\r\n    res._Info = await this.GetInfo(request, fullError);\r\n\r\n    const toast = await this.toastController.create({\r\n      message: res.Mensagem,\r\n      duration: 5000,\r\n      icon: \"bug\",\r\n      position: 'bottom',\r\n      translucent: false, \r\n      cssClass: 'ionic-toast',\r\n      buttons: [\r\n        { \r\n          text: \"Reportar Erro\",\r\n          icon: \"document\",\r\n          side: \"end\",\r\n          handler: () => {\r\n            this.Report(res);\r\n          }\r\n        }\r\n      ]\r\n    });\r\n\r\n    await toast.present();\r\n  }\r\n\r\n  protected get fullRoute(): string{\r\n    return this.apiUrlProviderService.apiUrl + 'error'\r\n  }\r\n  Report(res: ApiErrorReturn): void{\r\n    this.http.post(this.fullRoute, res).subscribe({\r\n      next: (res) => { this.genericService.PresentToast(\"Erro informado com sucesso!\", \"checkmark-circle\"); },\r\n      error:(err) => { this.genericService.PresentToast(\"Ocorreu um erro inesperado no retorno do erro!\"); }\r\n    });\r\n  }\r\n\r\n  async GetInfo(request: any, fullError: any): Promise<string>{\r\n    return JSON.stringify({\r\n      token     : this.auth.LoadToken(),\r\n      tokenAdmin: this.auth.LoadTokenAdmin(),\r\n      currentUrl: window.location.href,\r\n      userId    : (await this.auth.LoadToken()).id,\r\n      jwtAdmin  : localStorage.getItem(this.localAdminKey),\r\n      jwtUser   : localStorage.getItem(this.localUserKey),\r\n      request   : request,\r\n      error     : fullError,\r\n      apiUrl    : this.apiUrlProviderService.apiUrl\r\n    });\r\n  }\r\n}\r\n\r\nclass ApiErrorReturn {\r\n  Mensagem: string;\r\n  Erro: string;\r\n  _Info: string;\r\n}","import { AuthService } from '../services/auth.service';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor\r\n} from '@angular/common/http';\r\nimport { Observable, first, firstValueFrom, from, lastValueFrom, mergeMap, switchMap } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n  constructor(\r\n    private auth: AuthService\r\n  ) {}\r\n\r\n  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n    return from(this.auth.JWToken()).pipe( \r\n      switchMap((authToken: string) => {\r\n        const authReq = request.clone({ setHeaders: { Authorization: `Bearer ${authToken}` } });\r\n        return next.handle(authReq);\r\n      })\r\n    );\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of @sapphire-ion/framework\r\n */\r\n\r\n// [ 📁 Lib ]\r\n//[ 📁 Classes ]\r\n  // [ 📁 Classes -> Comparison ]\r\n    export * from '../lib/classes/comparison/properties/bool-property';\r\n    export * from '../lib/classes/comparison/properties/date-property';\r\n    export * from '../lib/classes/comparison/properties/datetime-property';\r\n    export * from '../lib/classes/comparison/properties/decimal-property';\r\n    export * from '../lib/classes/comparison/properties/enum-property';\r\n    export * from '../lib/classes/comparison/properties/implicit-property';\r\n    export * from '../lib/classes/comparison/properties/int-property';\r\n    export * from '../lib/classes/comparison/properties/long-property';\r\n    export * from '../lib/classes/comparison/properties/string-property';\r\n    export * from '../lib/classes/comparison/properties/time-property';\r\n    export * from '../lib/classes/comparison/properties/bool-property';\r\n  export * from '../lib/classes/comparison/comparison';\r\n  export * from '../lib/classes/comparison/comparison-operator';\r\n  export * from '../lib/classes/comparison/comparison-value-type';\r\n  // [ 📁 Classes -> Filters ]\r\n  export * from '../lib/classes/filters/view-filtros';\r\n  // [ 📁 Classes -> Inputs ]\r\n  export * from '../lib/classes/inputs/table-field-form-builder';\r\n  export * from '../lib/classes/inputs/table-field';\r\n  // [ 📁 Classes -> Routes ]\r\n  export * from '../lib/classes/routes/default-routing-factory';\r\n  export * from '../lib/classes/routes/id-preloader-configuration';\r\n  export * from '../lib/classes/routes/route-data';\r\nexport * from '../lib/classes/credentials';\r\nexport * from '../lib/classes/environment';\r\nexport * from '../lib/classes/infinite-scroll';\r\nexport * from '../lib/classes/page-option';\r\n\r\n//[ 📁 Components ]\r\n  //[ 📁 Components -> Carousel ]\r\n    // [ 📁 Components -> Carousel -> Carrousel-Image ]\r\n    export * from '../lib/components/carousel/carousel-image/carousel-image.component';\r\n    // [ 📁 Components -> Carousel -> Carrousel-Item ]\r\n    export * from '../lib/components/carousel/carousel-item/carousel-item.component';\r\n  export * from '../lib/components/carousel/carousel.component';\r\n  export * from '../lib/components/carousel/carousel.module';\r\n  export * from '../lib/components/carousel/i-carousel-item.component';\r\n  // [ 📁 Components -> Content-Block ]\r\n  export * from '../lib/components/content-block/content-block.component';\r\n  // [ 📁 Components -> Default ]\r\n    // [ 📁 Components -> Default -> default-list ]\r\n      // [ 📁 Components -> Default -> default-list -> header-list ]\r\n      export * from '../lib/components/default/default-list/header-list/header-list.component';\r\n    export * from '../lib/components/default/default-list/abstract-list';\r\n    export * from '../lib/components/default/default-list/default-list.component';\r\n    export * from '../lib/components/default/default-list/list';\r\n    // [ 📁 Components -> Default -> default-pagination ]\r\n    export * from '../lib/components/default/default-pagination/default-pagination.component';\r\n    // [ 📁 Components -> Default -> default-table ]\r\n      // [ 📁 Components -> Default -> default-table -> th-filter ]\r\n      export * from '../lib/components/default/default-table/th-filter/th-filter.component';\r\n    export * from '../lib/components/default/default-table/default-table.component';\r\n    // [ 📁 Components -> Default -> default-view ]\r\n      // [ 📁 Components -> Default -> default-view -> header-view ]\r\n      export * from '../lib/components/default/default-view/header-view/header-view.component';\r\n    export * from '../lib/components/default/default-view/abstract-view';\r\n    export * from '../lib/components/default/default-view/default-view.component';\r\n    export * from '../lib/components/default/default-view/view';\r\n  export * from '../lib/components/default/default.module';\r\n  // [ 📁 Components -> default-page ]\r\n  export * from '../lib/components/default-page/default.page';\r\n  // [ 📁 Components -> drag-drop-page ]\r\n    // [ 📁 Components -> drag-drop-page -> drag-drop-overlay ]\r\n    export * from '../lib/components/drag-drop-file/drag-drop-overlay/drag-drop-overlay.component';\r\n  export * from '../lib/components/drag-drop-file/drag-drop-file.directive';\r\n  export * from '../lib/components/drag-drop-file/drag-drop-file.module';\r\n  // [ 📁 Components -> drawer ]\r\n    // [ 📁 Components -> drawer -> default-drawer-end ]\r\n    export * from '../lib/components/drawer/default-drawer-end/default-drawer-end.component';\r\n    // [ 📁 Components -> drawer -> drawer-group ]\r\n    export * from '../lib/components/drawer/drawer-group/drawer-group.component';\r\n  export * from '../lib/components/drawer/drawer.component';\r\n  export * from '../lib/components/drawer/menu';\r\n  // [ 📁 Components -> filter ]\r\n  export * from '../lib/components/filter/filter.component';\r\n  // [ 📁 Components -> http-responses-pages ]\r\n    // [ 📁 Components -> http-responses-pages -> forbidden-403 ]\r\n    export * from '../lib/components/http-responses-pages/forbidden-403/forbidden-403.component';\r\n  // [ 📁 Components -> image ]\r\n  export * from '../lib/components/image/image.component';\r\n  // [ 📁 Components -> info-popover ]\r\n  export * from '../lib/components/info-popover/info-popover.component';\r\n\r\n  // [ 📁 Components -> inputs ]\r\n    // [ 📁 Components -> inputs -> input-bool ]\r\n    export * from '../lib/components/inputs/input-bool/input-bool.component';\r\n    export * from '../lib/components/inputs/input-bool/input-bool.configuration';\r\n    // [ 📁 Components -> inputs -> input-cep ]\r\n    export * from '../lib/components/inputs/input-cep/input-cep.component';\r\n    export * from '../lib/components/inputs/input-cep/input-cep.configuration';\r\n    // [ 📁 Components -> inputs -> input-color ]\r\n    export * from '../lib/components/inputs/input-color/input-color.component';\r\n    // export * from '../lib/components/inputs/input-color/input-color.configuration';\r\n    // [ 📁 Components -> inputs -> input-cpf-cnpj ]\r\n    export * from '../lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.component';\r\n    export * from '../lib/components/inputs/input-cpf-cnpj/input-cpf-cnpj.configuration';\r\n    // [ 📁 Components -> inputs -> input-date ]\r\n    export * from '../lib/components/inputs/input-date/input-date.component';\r\n    export * from '../lib/components/inputs/input-date/input-date.configuration';\r\n    // [ 📁 Components -> inputs -> input-decimal ]\r\n    export * from '../lib/components/inputs/input-decimal/input-decimal.component';\r\n    export * from '../lib/components/inputs/input-decimal/input-decimal.configuration';\r\n    // [ 📁 Components -> inputs -> input-file ]\r\n    export * from '../lib/components/inputs/input-file/download-button/download-button.component';\r\n    export * from '../lib/components/inputs/input-file/input-file.component';\r\n    export * from '../lib/components/inputs/input-file/input-file.configuration';\r\n    // [ 📁 Components -> inputs -> input-icon ]\r\n    export * from '../lib/components/inputs/input-icon/input-icon.component';\r\n    // [ 📁 Components -> inputs -> input-select ]\r\n      // [ 📁 Components -> inputs -> input-select -> directives ]\r\n      export * from '../lib/components/inputs/input-select/directives/sion-label-template.directive';\r\n      export * from '../lib/components/inputs/input-select/directives/sion-option-template.directive';\r\n      export * from '../lib/components/inputs/input-select/directives/sion-placeholder-template.directive';\r\n    export * from '../lib/components/inputs/input-select/input-select.component';\r\n    export * from '../lib/components/inputs/input-select/input.select.configuration';\r\n    // [ 📁 Components -> inputs -> input-string ]\r\n    export * from '../lib/components/inputs/input-string/input-string.component';\r\n    export * from '../lib/components/inputs/input-string/input-string.configuration';\r\n    // [ 📁 Components -> inputs -> input-telefone ]\r\n    export * from '../lib/components/inputs/input-telefone/input-telefone.component';\r\n    export * from '../lib/components/inputs/input-telefone/input-telefone.configuration';\r\n    // [ 📁 Components -> inputs -> input-textarea ]\r\n    export * from '../lib/components/inputs/input-textarea/input-textarea.component';\r\n  export * from '../lib/components/inputs/input-configuration';\r\n  export * from '../lib/components/inputs/input-default-configurations';\r\n  export * from '../lib/components/inputs/input-provider-factory';\r\n  export * from '../lib/components/inputs/input-type';\r\n  export * from '../lib/components/inputs/input-validators';\r\n  export * from '../lib/components/inputs/inputs.module';\r\n  // [ 📁 Components -> loading ]\r\n  export * from '../lib/components/loading/loading.component';\r\n  // [ 📁 Components -> login ]\r\n    // [ 📁 Components -> login -> login-admin ]\r\n    export * from '../lib/components/login/login-admin/login-admin.component';\r\n  export * from '../lib/components/login/login.component';\r\n  // [ 📁 Components -> main-content ]\r\n  export * from '../lib/components/main-content/main-content.component';\r\n  // [ 📁 Components -> popover ]\r\n    // [ 📁 Components -> sion-popover ]\r\n    export * from '../lib/components/popover/sion-popover/sion-popover.component';\r\n  export * from '../lib/components/popover/sion-popover.module';\r\n  // [ 📁 Components -> sion-card ]\r\n  export * from '../lib/components/sion-card/sion-card.component';\r\n  // [ 📁 Components -> stepper ]\r\n    // [ 📁 Components -> stepper -> step ]\r\n    export * from '../lib/components/stepper/step/step.component';\r\n  export * from '../lib/components/stepper/stepper.component';\r\n  export * from '../lib/components/stepper/stepper.module';\r\n  // [ 📁 Components -> tabs ]\r\n    // [ 📁 Components -> tabs -> tab ]\r\n    export * from '../lib/components/tabs/tab/tab.component';\r\n    // [ 📁 Components -> tabs -> tabs ]\r\n    export * from '../lib/components/tabs/tabs/tabs.component';\r\n  export * from '../lib/components/tabs/tabs.module';\r\n  // [ 📁 Components -> text-tooltip ]\r\n  export * from '../lib/components/text-tooltip/text-tooltip.component';\r\n  // [ 📁 Components -> tooltip ]\r\n  export * from '../lib/components/tooltip/tooltip.component';\r\n//[ 📁 Directives ]\r\n  export * from '../lib/directives/ng-var.directive';\r\n//[ 📁 Guards ]\r\n  export * from '../lib/guards/auth.guard';\r\n  export * from '../lib/guards/error.interceptor';\r\n  export * from '../lib/guards/token.interceptor';\r\n// [ 📁 Pipes ]\r\n  export * from '../lib/pipes/secure.pipe';\r\n// [ 📁 Services ]\r\n  // [ 📁 Services -> Route ]\r\n    export * from '../lib/services/route/route.provider.service';\r\n    export * from '../lib/services/route/route.cache.service';\r\n  // [ 📁 Services -> Web ]\r\n    export * from '../lib/services/web/api-url-provider.service';\r\n    export * from '../lib/services/web/http.ativo.service';\r\n    export * from '../lib/services/web/http.service';\r\n    export * from '../lib/services/web/storage.service';\r\n  export * from '../lib/services/auth.service';\r\n  // export * from '../lib/services/crypto.service';\r\n  export * from '../lib/services/environment.service';\r\n  export * from './services/generic.service';\r\n  export * from '../lib/services/usuario.service';\r\n  export * from '../lib/services/utils.service';\r\n  export * from '../lib/services/navigation-context.service';\r\n\r\nexport * from '../lib/core.module';","/*\r\n * Public API Surface of ion-sapphire-framework\r\n */\r\n\r\nexport * from './lib/index';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ModalFocusTrapService","i2.PopoverFocusTrapService","i1.EnvironmentService","i3.EnvironmentService","i1","i2","i3.GenericService","i4","i5.ApiUrlProviderService","i4.ApiUrlProviderService","i2.AuthService","i3.ApiUrlProviderService","i1.ApiUrlProviderService","i3","i2.ImageComponent","lstComponents","mask","i2.ApiUrlProviderService","i1.StorageService","i5.LoadingComponent","i6.NgVarDirective","i1.GenericService","i5.SIonPopoverComponent","i4.SIonPopoverComponent","i2.InputCepComponent","i3.InputCpfCnpjComponent","i4.InputDateComponent","i5.InputDecimalComponent","i6.InputSelectComponent","i7.InputStringComponent","i8","i5.DownloadButtonComponent","i6","i7.LoadingComponent","i8.ContentBlockComponent","i9.DefaultPaginationComponent","i10.ThFilterComponent","i2.GenericService","i5.HeaderListComponent","i6.DefaultTableComponent","i3.NavigationContextService","i5","i6.SIonPopoverComponent","i1.UtilsService","i2.StorageService","i4.InputSelectComponent","i5.SIonLabelTemplateDirective","i6.SIonOptionTemplateDirective","i6.InputBoolComponent","i7.InputCepComponent","i8.InputColorComponent","i9.InputCpfCnpjComponent","i10.InputDateComponent","i11.InputDecimalComponent","i12.InputFileComponent","i13.InputIconComponent","i14.InputSelectComponent","i15.InputStringComponent","i16.InputTelefoneComponent","i17.InputTextareaComponent","i18.HeaderViewComponent","i2.EnvironmentService","i4.RouteProviderService","i1.AuthService","i7","i1.InputCepComponent","i2.InputCpfCnpjComponent","i3.InputDateComponent","i4.InputDecimalComponent","i5.InputSelectComponent","i6.InputStringComponent","i3.UsuarioService","i4.AuthService","i6.EnvironmentService"],"mappings":"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"}