@fundamental-ngx/core 0.34.0-rc.7 → 0.34.0-rc.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/package.json +1 -1
  18. package/dialog/package.json +1 -1
  19. package/dynamic-page/package.json +1 -1
  20. package/dynamic-side-content/package.json +1 -1
  21. package/esm2020/object-status/object-status.component.mjs +5 -3
  22. package/esm2020/upload-collection/public_api.mjs +2 -2
  23. package/esm2020/upload-collection/upload-collection-item.directive.mjs +4 -3
  24. package/esm2020/upload-collection/upload-collection-simple.directives.mjs +29 -2
  25. package/esm2020/upload-collection/upload-collection.component.mjs +2 -2
  26. package/esm2020/upload-collection/upload-collection.module.mjs +6 -2
  27. package/facets/package.json +1 -1
  28. package/feed-input/package.json +1 -1
  29. package/feed-list-item/package.json +1 -1
  30. package/fesm2015/fundamental-ngx-core-object-status.mjs +4 -2
  31. package/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
  32. package/fesm2015/fundamental-ngx-core-upload-collection.mjs +45 -11
  33. package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  34. package/fesm2020/fundamental-ngx-core-object-status.mjs +4 -2
  35. package/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
  36. package/fesm2020/fundamental-ngx-core-upload-collection.mjs +43 -11
  37. package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  38. package/file-uploader/package.json +1 -1
  39. package/fixed-card-layout/package.json +1 -1
  40. package/flexible-column-layout/package.json +1 -1
  41. package/form/package.json +1 -1
  42. package/formatted-text/package.json +1 -1
  43. package/grid-list/package.json +1 -1
  44. package/icon/package.json +1 -1
  45. package/illustrated-message/package.json +1 -1
  46. package/infinite-scroll/package.json +1 -1
  47. package/info-label/package.json +1 -1
  48. package/inline-help/package.json +1 -1
  49. package/input-group/package.json +1 -1
  50. package/layout-grid/package.json +1 -1
  51. package/layout-panel/package.json +1 -1
  52. package/link/package.json +1 -1
  53. package/list/package.json +1 -1
  54. package/menu/package.json +1 -1
  55. package/message-box/package.json +1 -1
  56. package/message-strip/package.json +1 -1
  57. package/message-toast/package.json +1 -1
  58. package/micro-process-flow/package.json +1 -1
  59. package/mobile-mode/package.json +1 -1
  60. package/multi-input/package.json +1 -1
  61. package/nested-list/package.json +1 -1
  62. package/notification/package.json +1 -1
  63. package/object-identifier/package.json +1 -1
  64. package/object-marker/package.json +1 -1
  65. package/object-number/package.json +1 -1
  66. package/object-status/esm2020/object-status.component.mjs +5 -3
  67. package/object-status/fesm2015/fundamental-ngx-core-object-status.mjs +4 -2
  68. package/object-status/fesm2015/fundamental-ngx-core-object-status.mjs.map +1 -1
  69. package/object-status/fesm2020/fundamental-ngx-core-object-status.mjs +4 -2
  70. package/object-status/fesm2020/fundamental-ngx-core-object-status.mjs.map +1 -1
  71. package/object-status/object-status.component.d.ts +2 -0
  72. package/object-status/package.json +1 -1
  73. package/package.json +1 -1
  74. package/pagination/package.json +1 -1
  75. package/panel/package.json +1 -1
  76. package/popover/package.json +1 -1
  77. package/product-switch/package.json +1 -1
  78. package/progress-indicator/package.json +1 -1
  79. package/quick-view/package.json +1 -1
  80. package/radio/package.json +1 -1
  81. package/rating-indicator/package.json +1 -1
  82. package/resizable-card-layout/package.json +1 -1
  83. package/scroll-spy/package.json +1 -1
  84. package/scrollbar/package.json +1 -1
  85. package/segmented-button/package.json +1 -1
  86. package/select/package.json +1 -1
  87. package/shared/package.json +1 -1
  88. package/shellbar/package.json +1 -1
  89. package/side-navigation/package.json +1 -1
  90. package/slider/package.json +1 -1
  91. package/split-button/package.json +1 -1
  92. package/splitter/package.json +1 -1
  93. package/status-indicator/package.json +1 -1
  94. package/step-input/package.json +1 -1
  95. package/switch/package.json +1 -1
  96. package/table/package.json +1 -1
  97. package/tabs/package.json +1 -1
  98. package/text/package.json +1 -1
  99. package/tile/package.json +1 -1
  100. package/time/package.json +1 -1
  101. package/time-picker/package.json +1 -1
  102. package/timeline/package.json +1 -1
  103. package/title/package.json +1 -1
  104. package/token/package.json +1 -1
  105. package/toolbar/package.json +1 -1
  106. package/tree/package.json +1 -1
  107. package/upload-collection/esm2020/public_api.mjs +2 -2
  108. package/upload-collection/esm2020/upload-collection-item.directive.mjs +4 -3
  109. package/upload-collection/esm2020/upload-collection-simple.directives.mjs +29 -2
  110. package/upload-collection/esm2020/upload-collection.component.mjs +2 -2
  111. package/upload-collection/esm2020/upload-collection.module.mjs +6 -2
  112. package/upload-collection/fesm2015/fundamental-ngx-core-upload-collection.mjs +45 -11
  113. package/upload-collection/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  114. package/upload-collection/fesm2020/fundamental-ngx-core-upload-collection.mjs +43 -11
  115. package/upload-collection/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  116. package/upload-collection/package.json +1 -1
  117. package/upload-collection/public_api.d.ts +1 -1
  118. package/upload-collection/upload-collection-simple.directives.d.ts +9 -1
  119. package/upload-collection/upload-collection.module.d.ts +1 -1
  120. package/utils/package.json +1 -1
  121. package/vertical-navigation/package.json +1 -1
  122. package/wizard/package.json +1 -1
@@ -53,7 +53,8 @@ ObjectStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
53
53
  [ariaLabel]="glyphAriaLabel"
54
54
  >
55
55
  </fd-icon>
56
- <span *ngIf="label" class="fd-object-status__text">{{ label }}</span>
56
+
57
+ <span *ngIf="label" class="fd-object-status__text" [class]="_textClass">{{ label }}</span>
57
58
 
58
59
  <!-- DEPRECATED - Remove in v0.23.0 -->
59
60
  <ng-content></ng-content>
@@ -75,7 +76,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
75
76
  [ariaLabel]="glyphAriaLabel"
76
77
  >
77
78
  </fd-icon>
78
- <span *ngIf="label" class="fd-object-status__text">{{ label }}</span>
79
+
80
+ <span *ngIf="label" class="fd-object-status__text" [class]="_textClass">{{ label }}</span>
79
81
 
80
82
  <!-- DEPRECATED - Remove in v0.23.0 -->
81
83
  <ng-content></ng-content>
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-object-status.mjs","sources":["../../../../libs/core/src/lib/object-status/object-status.component.ts","../../../../libs/core/src/lib/object-status/object-status.module.ts","../../../../libs/core/src/lib/object-status/fundamental-ngx-core-object-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n ViewEncapsulation,\n OnInit\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nexport type ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-object-status]',\n template: `\n <fd-icon\n *ngIf=\"glyph\"\n class=\"fd-object-status__icon\"\n [glyph]=\"glyph\"\n [attr.role]=\"glyphAriaLabel ? 'presentation' : ''\"\n [ariaLabel]=\"glyphAriaLabel\"\n >\n </fd-icon>\n <span *ngIf=\"label\" class=\"fd-object-status__text\">{{ label }}</span>\n\n <!-- DEPRECATED - Remove in v0.23.0 -->\n <ng-content></ng-content>\n `,\n styleUrls: ['./object-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': 'clickable ? 0 : -1'\n }\n})\nexport class ObjectStatusComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * The status represented by the Object Status.\n * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'\n * For default Object Status omit this property\n */\n @Input()\n status: ObjectStatus;\n\n /**\n * Glyph (icon) of the Object Status.\n */\n @Input()\n glyph: string;\n\n /** Define the text content of the Object Status */\n @Input()\n label: string;\n\n /**\n * Label applied to glyph element, should be used when there is no text included\n */\n @Input()\n glyphAriaLabel: string;\n\n /**\n * A number representing the indication color.\n * Option includes numbers from 1 to 8\n */\n @Input()\n indicationColor: number = null;\n\n /** Whether the Object Status is clickable. */\n @Input()\n clickable = false;\n\n /** Whether the Object Status is inverted. */\n @Input()\n inverted = false;\n\n /** Whether the Object Status is in Large Design. */\n @Input()\n large = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return buildObjectStatusCssClasses(this);\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nexport const buildObjectStatusCssClasses = ({\n status,\n inverted,\n large,\n indicationColor,\n clickable,\n class: className\n}: Partial<{\n status: ObjectStatus;\n inverted: boolean;\n large: boolean;\n indicationColor: number;\n clickable: boolean;\n class: string;\n}>): string[] => [\n 'fd-object-status',\n inverted ? 'fd-object-status--inverted' : '',\n large ? 'fd-object-status--large' : '',\n status ? `fd-object-status--${status}` : '',\n indicationColor ? `fd-object-status--indication-${indicationColor}` : '',\n clickable ? 'fd-object-status--link' : '',\n className\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from './object-status.component';\n\n@NgModule({\n declarations: [ObjectStatusComponent],\n imports: [CommonModule, IconModule],\n exports: [ObjectStatusComponent]\n})\nexport class ObjectStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAsCa,qBAAqB;;IAiD9B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;;;;QAf3C,oBAAe,GAAW,IAAI,CAAC;;QAI/B,cAAS,GAAG,KAAK,CAAC;;QAIlB,aAAQ,GAAG,KAAK,CAAC;;QAIjB,UAAK,GAAG,KAAK,CAAC;KAGiC;;IAG/C,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC;KAC5C;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;kHAzEQ,qBAAqB;sGAArB,qBAAqB,kWArBpB;;;;;;;;;;;;;KAaT;AA0ED;IALC,aAAa;;;;mEAOb;2FApEQ,qBAAqB;kBAxBjC,SAAS;+BAEI,oBAAoB,YACpB;;;;;;;;;;;;;KAaT,iBAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACF,iBAAiB,EAAE,oBAAoB;qBAC1C;iGAKD,KAAK;sBADJ,KAAK;gBASN,MAAM;sBADL,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAON,cAAc;sBADb,KAAK;gBAQN,eAAe;sBADd,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,QAAQ;sBADP,KAAK;gBAKN,KAAK;sBADJ,KAAK;;;;;;QAqBN,sBAAsB;MAUb,2BAA2B,GAAG,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,eAAe,EACf,SAAS,EACT,KAAK,EAAE,SAAS,EAQlB,KAAe;IACb,kBAAkB;IAClB,QAAQ,GAAG,4BAA4B,GAAG,EAAE;IAC5C,KAAK,GAAG,yBAAyB,GAAG,EAAE;IACtC,MAAM,GAAG,qBAAqB,MAAM,EAAE,GAAG,EAAE;IAC3C,eAAe,GAAG,gCAAgC,eAAe,EAAE,GAAG,EAAE;IACxE,SAAS,GAAG,wBAAwB,GAAG,EAAE;IACzC,SAAS;;;MC7HA,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAJZ,qBAAqB,aAC1B,YAAY,EAAE,UAAU,aACxB,qBAAqB;gHAEtB,kBAAkB,YAHlB,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,kBAAkB;kBAL9B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,qBAAqB,CAAC;iBACnC;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-core-object-status.mjs","sources":["../../../../libs/core/src/lib/object-status/object-status.component.ts","../../../../libs/core/src/lib/object-status/object-status.module.ts","../../../../libs/core/src/lib/object-status/fundamental-ngx-core-object-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n ViewEncapsulation,\n OnInit\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nexport type ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-object-status]',\n template: `\n <fd-icon\n *ngIf=\"glyph\"\n class=\"fd-object-status__icon\"\n [glyph]=\"glyph\"\n [attr.role]=\"glyphAriaLabel ? 'presentation' : ''\"\n [ariaLabel]=\"glyphAriaLabel\"\n >\n </fd-icon>\n\n <span *ngIf=\"label\" class=\"fd-object-status__text\" [class]=\"_textClass\">{{ label }}</span>\n\n <!-- DEPRECATED - Remove in v0.23.0 -->\n <ng-content></ng-content>\n `,\n styleUrls: ['./object-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': 'clickable ? 0 : -1'\n }\n})\nexport class ObjectStatusComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * The status represented by the Object Status.\n * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'\n * For default Object Status omit this property\n */\n @Input()\n status: ObjectStatus;\n\n /**\n * Glyph (icon) of the Object Status.\n */\n @Input()\n glyph: string;\n\n /** Define the text content of the Object Status */\n @Input()\n label: string;\n\n /**\n * Label applied to glyph element, should be used when there is no text included\n */\n @Input()\n glyphAriaLabel: string;\n\n /**\n * A number representing the indication color.\n * Option includes numbers from 1 to 8\n */\n @Input()\n indicationColor: number = null;\n\n /** Whether the Object Status is clickable. */\n @Input()\n clickable = false;\n\n /** Whether the Object Status is inverted. */\n @Input()\n inverted = false;\n\n /** Whether the Object Status is in Large Design. */\n @Input()\n large = false;\n\n /** @hidden */\n _textClass: string;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return buildObjectStatusCssClasses(this);\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nexport const buildObjectStatusCssClasses = ({\n status,\n inverted,\n large,\n indicationColor,\n clickable,\n class: className\n}: Partial<{\n status: ObjectStatus;\n inverted: boolean;\n large: boolean;\n indicationColor: number;\n clickable: boolean;\n class: string;\n}>): string[] => [\n 'fd-object-status',\n inverted ? 'fd-object-status--inverted' : '',\n large ? 'fd-object-status--large' : '',\n status ? `fd-object-status--${status}` : '',\n indicationColor ? `fd-object-status--indication-${indicationColor}` : '',\n clickable ? 'fd-object-status--link' : '',\n className\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from './object-status.component';\n\n@NgModule({\n declarations: [ObjectStatusComponent],\n imports: [CommonModule, IconModule],\n exports: [ObjectStatusComponent]\n})\nexport class ObjectStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAuCa,qBAAqB;;IAoD9B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;;;;QAlB3C,oBAAe,GAAW,IAAI,CAAC;;QAI/B,cAAS,GAAG,KAAK,CAAC;;QAIlB,aAAQ,GAAG,KAAK,CAAC;;QAIjB,UAAK,GAAG,KAAK,CAAC;KAMiC;;IAG/C,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC;KAC5C;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;kHA5EQ,qBAAqB;sGAArB,qBAAqB,kWAtBpB;;;;;;;;;;;;;;KAcT;AA6ED;IALC,aAAa;;;;mEAOb;2FAvEQ,qBAAqB;kBAzBjC,SAAS;+BAEI,oBAAoB,YACpB;;;;;;;;;;;;;;KAcT,iBAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACF,iBAAiB,EAAE,oBAAoB;qBAC1C;iGAKD,KAAK;sBADJ,KAAK;gBASN,MAAM;sBADL,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAON,cAAc;sBADb,KAAK;gBAQN,eAAe;sBADd,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,QAAQ;sBADP,KAAK;gBAKN,KAAK;sBADJ,KAAK;;;;;;QAwBN,sBAAsB;MAUb,2BAA2B,GAAG,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,eAAe,EACf,SAAS,EACT,KAAK,EAAE,SAAS,EAQlB,KAAe;IACb,kBAAkB;IAClB,QAAQ,GAAG,4BAA4B,GAAG,EAAE;IAC5C,KAAK,GAAG,yBAAyB,GAAG,EAAE;IACtC,MAAM,GAAG,qBAAqB,MAAM,EAAE,GAAG,EAAE;IAC3C,eAAe,GAAG,gCAAgC,eAAe,EAAE,GAAG,EAAE;IACxE,SAAS,GAAG,wBAAwB,GAAG,EAAE;IACzC,SAAS;;;MCjIA,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAJZ,qBAAqB,aAC1B,YAAY,EAAE,UAAU,aACxB,qBAAqB;gHAEtB,kBAAkB,YAHlB,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,kBAAkB;kBAL9B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,qBAAqB,CAAC;iBACnC;;;ACTD;;;;;;"}
@@ -1,13 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, ContentChildren, HostBinding, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChild, ContentChild, HostListener, NgModule } from '@angular/core';
2
+ import { Directive, Optional, Inject, ContentChildren, HostBinding, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChild, ContentChild, HostListener, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';
6
- import * as i1 from '@fundamental-ngx/core/list';
6
+ import * as i1 from '@fundamental-ngx/core/object-status';
7
+ import { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';
8
+ import * as i1$1 from '@fundamental-ngx/core/list';
7
9
  import { ListModule } from '@fundamental-ngx/core/list';
8
- import * as i1$1 from '@fundamental-ngx/core/button';
10
+ import * as i1$2 from '@fundamental-ngx/core/button';
9
11
  import { ButtonModule } from '@fundamental-ngx/core/button';
10
- import * as i1$2 from '@fundamental-ngx/core/form';
12
+ import * as i1$3 from '@fundamental-ngx/core/form';
11
13
  import { FormControlModule } from '@fundamental-ngx/core/form';
12
14
  import * as i3 from '@angular/forms';
13
15
  import { FormsModule } from '@angular/forms';
@@ -77,6 +79,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
77
79
  host: { class: 'fd-upload-collection__status-group' }
78
80
  }]
79
81
  }] });
82
+ class UploadCollectionStatusItemDirective {
83
+ constructor(_objectStatus) {
84
+ this._objectStatus = _objectStatus;
85
+ }
86
+ ngOnInit() {
87
+ if (this._objectStatus) {
88
+ this._objectStatus._textClass += ' fd-upload-collection__status-group-item-text';
89
+ }
90
+ }
91
+ }
92
+ UploadCollectionStatusItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionStatusItemDirective, deps: [{ token: ObjectStatusComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
93
+ UploadCollectionStatusItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionStatusItemDirective, selector: "[fd-upload-collection-status-item]", host: { classAttribute: "fd-upload-collection__status-group-item" }, ngImport: i0 });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionStatusItemDirective, decorators: [{
95
+ type: Directive,
96
+ args: [{
97
+ // eslint-disable-next-line @angular-eslint/directive-selector
98
+ selector: '[fd-upload-collection-status-item]',
99
+ host: { class: 'fd-upload-collection__status-group-item' }
100
+ }]
101
+ }], ctorParameters: function () {
102
+ return [{ type: i1.ObjectStatusComponent, decorators: [{
103
+ type: Optional
104
+ }, {
105
+ type: Inject,
106
+ args: [ObjectStatusComponent]
107
+ }] }];
108
+ } });
80
109
  class UploadCollectionTitleContainerDirective {
81
110
  constructor() {
82
111
  /** Whether or not this is in edit mode. */
@@ -110,12 +139,12 @@ class UploadCollectionComponent {
110
139
  UploadCollectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
140
  UploadCollectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionComponent, selector: "fd-upload-collection", inputs: { small: "small", selection: "selection" }, host: { properties: { "class.fd-upload-collection--sm": "this.small" }, classAttribute: "fd-upload-collection" }, ngImport: i0, template: `<ul fd-list [byline]="true" [selection]="selection">
112
141
  <ng-content></ng-content>
113
- </ul>`, isInline: true, styles: ["@charset \"UTF-8\";.fd-upload-collection__status-group .fd-object-status{margin-left:.25rem;margin-right:.25rem}.fd-upload-collection__status-group .fd-object-status:first-child{margin-left:0}[dir=rtl] .fd-upload-collection__status-group .fd-object-status:first-child,.fd-upload-collection__status-group .fd-object-status:first-child[dir=rtl]{margin-left:.25rem;margin-right:0}/*!\n * Fundamental Library Styles v0.20.0-rc.26\n * Copyright (c) 2021 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-upload-collection .fd-upload-collection__item{flex-wrap:nowrap}.fd-upload-collection__thumbnail{align-self:flex-start}.fd-upload-collection__button-group{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group[dir=rtl],[dir=rtl] .fd-upload-collection__button-group{margin-right:1rem;margin-left:0}.fd-upload-collection__button-group button{margin-left:.125rem}.fd-upload-collection__button-group button[dir=rtl],[dir=rtl] .fd-upload-collection__button-group button{margin-right:.125rem;margin-left:0}.fd-upload-collection__title-container{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{margin-right:.5rem;flex:none}.fd-upload-collection__title-container .fd-upload-collection__title[dir=rtl],[dir=rtl] .fd-upload-collection__title-container .fd-upload-collection__title{margin-right:0;margin-left:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70)}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{padding-top:.625rem}.fd-upload-collection__status-group{margin-top:.375rem}.fd-upload-collection__extension{margin-left:.375rem;display:inline-block}.fd-upload-collection__extension[dir=rtl],[dir=rtl] .fd-upload-collection__extension{margin-right:.375rem;margin-left:0}.fd-upload-collection__text-separator:before{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70);content:\"\\2022\"}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-left:0;margin-right:0;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-left:.5rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child)[dir=rtl],[dir=rtl] .fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-right:.5rem;margin-left:0}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n"], components: [{ type: i1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "compact", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
142
+ </ul>`, isInline: true, styles: ["@charset \"UTF-8\";/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-upload-collection .fd-upload-collection__item{flex-wrap:nowrap}.fd-upload-collection__thumbnail{align-self:flex-start}.fd-upload-collection__button-group{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group[dir=rtl],[dir=rtl] .fd-upload-collection__button-group{margin-right:1rem;margin-left:0}.fd-upload-collection__button-group button{margin-left:.125rem}.fd-upload-collection__button-group button[dir=rtl],[dir=rtl] .fd-upload-collection__button-group button{margin-right:.125rem;margin-left:0}.fd-upload-collection__title-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{margin-right:.5rem;flex:none;flex-shrink:1}.fd-upload-collection__title-container .fd-upload-collection__title[dir=rtl],[dir=rtl] .fd-upload-collection__title-container .fd-upload-collection__title{margin-right:0;margin-left:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--sapFontSize);line-height:1rem;color:var(--sapContent_LabelColor)}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{padding-top:.625rem}.fd-upload-collection .fd-upload-collection__status-group{display:flex;flex-direction:row;margin-top:.375rem}.fd-upload-collection .fd-upload-collection__status-group-item{margin-left:.25rem;margin-right:.25rem;flex-shrink:1;min-width:0}.fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-left:0;margin-right:.25rem}.fd-upload-collection .fd-upload-collection__status-group-item:first-child[dir=rtl],[dir=rtl] .fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-right:0;margin-left:.25rem}.fd-upload-collection .fd-upload-collection__status-group-item-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:initial}.fd-upload-collection__extension{margin-left:.375rem;display:inline-block}.fd-upload-collection__extension[dir=rtl],[dir=rtl] .fd-upload-collection__extension{margin-right:.375rem;margin-left:0}.fd-upload-collection__text-separator:before{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor);content:\"\\2022\"}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-left:0;margin-right:0;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-left:.5rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child)[dir=rtl],[dir=rtl] .fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-right:.5rem;margin-left:0}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n"], components: [{ type: i1$1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "compact", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
114
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionComponent, decorators: [{
115
144
  type: Component,
116
145
  args: [{ selector: 'fd-upload-collection', host: { class: 'fd-upload-collection' }, template: `<ul fd-list [byline]="true" [selection]="selection">
117
146
  <ng-content></ng-content>
118
- </ul>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";.fd-upload-collection__status-group .fd-object-status{margin-left:.25rem;margin-right:.25rem}.fd-upload-collection__status-group .fd-object-status:first-child{margin-left:0}[dir=rtl] .fd-upload-collection__status-group .fd-object-status:first-child,.fd-upload-collection__status-group .fd-object-status:first-child[dir=rtl]{margin-left:.25rem;margin-right:0}/*!\n * Fundamental Library Styles v0.20.0-rc.26\n * Copyright (c) 2021 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-upload-collection .fd-upload-collection__item{flex-wrap:nowrap}.fd-upload-collection__thumbnail{align-self:flex-start}.fd-upload-collection__button-group{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group[dir=rtl],[dir=rtl] .fd-upload-collection__button-group{margin-right:1rem;margin-left:0}.fd-upload-collection__button-group button{margin-left:.125rem}.fd-upload-collection__button-group button[dir=rtl],[dir=rtl] .fd-upload-collection__button-group button{margin-right:.125rem;margin-left:0}.fd-upload-collection__title-container{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{margin-right:.5rem;flex:none}.fd-upload-collection__title-container .fd-upload-collection__title[dir=rtl],[dir=rtl] .fd-upload-collection__title-container .fd-upload-collection__title{margin-right:0;margin-left:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1rem;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70)}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{padding-top:.625rem}.fd-upload-collection__status-group{margin-top:.375rem}.fd-upload-collection__extension{margin-left:.375rem;display:inline-block}.fd-upload-collection__extension[dir=rtl],[dir=rtl] .fd-upload-collection__extension{margin-right:.375rem;margin-left:0}.fd-upload-collection__text-separator:before{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:#6a6d70;color:var(--sapContent_LabelColor, #6a6d70);content:\"\\2022\"}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{font-size:.875rem;font-size:var(--sapFontSize, .875rem);line-height:1.4;line-height:var(--sapContent_LineHeight, 1.4);color:#32363a;color:var(--sapTextColor, #32363a);font-family:\"72\",\"72full\",Arial,Helvetica,sans-serif;font-family:var(--sapFontFamily, \"72\", \"72full\", Arial, Helvetica, sans-serif);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-left:0;margin-right:0;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-left:.5rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child)[dir=rtl],[dir=rtl] .fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-right:.5rem;margin-left:0}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n"] }]
147
+ </ul>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";/*!\n * Fundamental Library Styles v0.24.0-rc.8\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-upload-collection .fd-upload-collection__item{flex-wrap:nowrap}.fd-upload-collection__thumbnail{align-self:flex-start}.fd-upload-collection__button-group{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;margin-left:1rem}.fd-upload-collection__button-group:after,.fd-upload-collection__button-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__button-group[dir=rtl],[dir=rtl] .fd-upload-collection__button-group{margin-right:1rem;margin-left:0}.fd-upload-collection__button-group button{margin-left:.125rem}.fd-upload-collection__button-group button[dir=rtl],[dir=rtl] .fd-upload-collection__button-group button{margin-right:.125rem;margin-left:0}.fd-upload-collection__title-container{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;display:flex;align-items:center}.fd-upload-collection__title-container:after,.fd-upload-collection__title-container:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__title-container .fd-upload-collection__title{margin-right:.5rem;flex:none;flex-shrink:1}.fd-upload-collection__title-container .fd-upload-collection__title[dir=rtl],[dir=rtl] .fd-upload-collection__title-container .fd-upload-collection__title{margin-right:0;margin-left:.5rem}.fd-upload-collection__description,.fd-upload-collection__extension,.fd-upload-collection__status-group{line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--sapFontSize);line-height:1rem;color:var(--sapContent_LabelColor)}.fd-upload-collection__description:after,.fd-upload-collection__description:before,.fd-upload-collection__extension:after,.fd-upload-collection__extension:before,.fd-upload-collection__status-group:after,.fd-upload-collection__status-group:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__description{padding-top:.625rem}.fd-upload-collection .fd-upload-collection__status-group{display:flex;flex-direction:row;margin-top:.375rem}.fd-upload-collection .fd-upload-collection__status-group-item{margin-left:.25rem;margin-right:.25rem;flex-shrink:1;min-width:0}.fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-left:0;margin-right:.25rem}.fd-upload-collection .fd-upload-collection__status-group-item:first-child[dir=rtl],[dir=rtl] .fd-upload-collection .fd-upload-collection__status-group-item:first-child{margin-right:0;margin-left:.25rem}.fd-upload-collection .fd-upload-collection__status-group-item-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:initial}.fd-upload-collection__extension{margin-left:.375rem;display:inline-block}.fd-upload-collection__extension[dir=rtl],[dir=rtl] .fd-upload-collection__extension{margin-right:.375rem;margin-left:0}.fd-upload-collection__text-separator:before{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;color:var(--sapContent_LabelColor);content:\"\\2022\"}.fd-upload-collection__text-separator:before:after,.fd-upload-collection__text-separator:before:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0}.fd-upload-collection__form-item:after,.fd-upload-collection__form-item:before{box-sizing:inherit;font-size:inherit}.fd-upload-collection__form-item input{width:60%}.fd-upload-collection--sm .fd-upload-collection__item{flex-wrap:wrap}.fd-upload-collection--sm .fd-upload-collection__button-group{margin-left:0;margin-right:0;flex-basis:100%;margin-top:.75rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-left:.5rem}.fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child)[dir=rtl],[dir=rtl] .fd-upload-collection--sm .fd-upload-collection__button-group button:not(:first-child){margin-right:.5rem;margin-left:0}.fd-upload-collection--sm .fd-upload-collection__form-item input{width:75%}\n"] }]
119
148
  }], propDecorators: { small: [{
120
149
  type: Input
121
150
  }, {
@@ -188,7 +217,7 @@ class UploadCollectionButtonGroupComponent {
188
217
  }
189
218
  }
190
219
  UploadCollectionButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
- UploadCollectionButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionButtonGroupComponent, selector: "fd-upload-collection-button-group", inputs: { allowFileNameEdit: "allowFileNameEdit", allowFileDeletion: "allowFileDeletion", disableFileNameEdit: "disableFileNameEdit", disableFileDeletion: "disableFileDeletion", okText: "okText", cancelText: "cancelText", editAriaLabel: "editAriaLabel", deleteAriaLabel: "deleteAriaLabel", okAriaLabel: "okAriaLabel", cancelAriaLabel: "cancelAriaLabel" }, outputs: { editClicked: "editClicked", okClicked: "okClicked", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__button-group" }, viewQueries: [{ propertyName: "_okButton", first: true, predicate: ["okButton"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [attr.aria-label]=\"editAriaLabel\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [attr.aria-label]=\"deleteAriaLabel\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"okAriaLabel\"\n>\n {{ okText }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"cancelAriaLabel\"\n>\n {{ cancelText }}\n</button>\n", components: [{ type: i1$1.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
220
+ UploadCollectionButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionButtonGroupComponent, selector: "fd-upload-collection-button-group", inputs: { allowFileNameEdit: "allowFileNameEdit", allowFileDeletion: "allowFileDeletion", disableFileNameEdit: "disableFileNameEdit", disableFileDeletion: "disableFileDeletion", okText: "okText", cancelText: "cancelText", editAriaLabel: "editAriaLabel", deleteAriaLabel: "deleteAriaLabel", okAriaLabel: "okAriaLabel", cancelAriaLabel: "cancelAriaLabel" }, outputs: { editClicked: "editClicked", okClicked: "okClicked", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__button-group" }, viewQueries: [{ propertyName: "_okButton", first: true, predicate: ["okButton"], descendants: true }], ngImport: i0, template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [attr.aria-label]=\"editAriaLabel\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [attr.aria-label]=\"deleteAriaLabel\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"okAriaLabel\"\n>\n {{ okText }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"cancelAriaLabel\"\n>\n {{ cancelText }}\n</button>\n", components: [{ type: i1$2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
192
221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionButtonGroupComponent, decorators: [{
193
222
  type: Component,
194
223
  args: [{ selector: 'fd-upload-collection-button-group', host: { class: 'fd-upload-collection__button-group' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [attr.aria-label]=\"editAriaLabel\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [attr.aria-label]=\"deleteAriaLabel\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"okAriaLabel\"\n>\n {{ okText }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"cancelAriaLabel\"\n>\n {{ cancelText }}\n</button>\n" }]
@@ -261,7 +290,7 @@ class UploadCollectionFormItemComponent {
261
290
  }
262
291
  }
263
292
  UploadCollectionFormItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
264
- UploadCollectionFormItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionFormItemComponent, selector: "fd-upload-collection-form-item", inputs: { placeholder: "placeholder", _editMode: "_editMode" }, outputs: { fileNameChanged: "fileNameChanged" }, host: { classAttribute: "fd-upload-collection__form-item" }, ngImport: i0, template: "<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n style=\"pointer-events: all\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n", components: [{ type: i1$2.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "compact", "type", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
293
+ UploadCollectionFormItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.4", type: UploadCollectionFormItemComponent, selector: "fd-upload-collection-form-item", inputs: { placeholder: "placeholder", _editMode: "_editMode" }, outputs: { fileNameChanged: "fileNameChanged" }, host: { classAttribute: "fd-upload-collection__form-item" }, ngImport: i0, template: "<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n style=\"pointer-events: all\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n", components: [{ type: i1$3.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "compact", "type", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
265
294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: UploadCollectionFormItemComponent, decorators: [{
266
295
  type: Component,
267
296
  args: [{ selector: 'fd-upload-collection-form-item', host: { class: 'fd-upload-collection__form-item' }, encapsulation: ViewEncapsulation.None, template: "<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n style=\"pointer-events: all\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n" }]
@@ -294,7 +323,8 @@ class UploadCollectionItemDirective {
294
323
  }
295
324
  /** @hidden */
296
325
  ngAfterViewInit() {
297
- this.onResize();
326
+ // Process resize after all the children views is initialized
327
+ setTimeout(() => this.onResize());
298
328
  }
299
329
  /** @hidden */
300
330
  ngOnDestroy() {
@@ -390,7 +420,7 @@ class UploadCollectionItemDirective {
390
420
  if (str.length > cutLength) {
391
421
  const stringLeftIndex = Math.floor(cutLength / 2);
392
422
  const stringRightIndex = str.length - stringLeftIndex + 3;
393
- return str.substring(0, stringLeftIndex) + '... ' + str.substring(stringRightIndex, str.length);
423
+ return str.substring(0, stringLeftIndex) + '...' + str.substring(stringRightIndex, str.length);
394
424
  }
395
425
  return str;
396
426
  }
@@ -457,6 +487,7 @@ UploadCollectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
457
487
  UploadCollectionDescriptionDirective,
458
488
  UploadCollectionTextSeparatorDirective,
459
489
  UploadCollectionStatusGroupDirective,
490
+ UploadCollectionStatusItemDirective,
460
491
  UploadCollectionButtonGroupComponent,
461
492
  UploadCollectionFormItemComponent,
462
493
  UploadCollectionTitleContainerDirective], imports: [CommonModule, ListModule, ButtonModule, LinkModule, FormsModule, FormControlModule], exports: [UploadCollectionComponent,
@@ -466,6 +497,7 @@ UploadCollectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
466
497
  UploadCollectionDescriptionDirective,
467
498
  UploadCollectionTextSeparatorDirective,
468
499
  UploadCollectionStatusGroupDirective,
500
+ UploadCollectionStatusItemDirective,
469
501
  UploadCollectionButtonGroupComponent,
470
502
  UploadCollectionFormItemComponent,
471
503
  UploadCollectionTitleContainerDirective] });
@@ -481,6 +513,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
481
513
  UploadCollectionDescriptionDirective,
482
514
  UploadCollectionTextSeparatorDirective,
483
515
  UploadCollectionStatusGroupDirective,
516
+ UploadCollectionStatusItemDirective,
484
517
  UploadCollectionButtonGroupComponent,
485
518
  UploadCollectionFormItemComponent,
486
519
  UploadCollectionTitleContainerDirective
@@ -494,6 +527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
494
527
  UploadCollectionDescriptionDirective,
495
528
  UploadCollectionTextSeparatorDirective,
496
529
  UploadCollectionStatusGroupDirective,
530
+ UploadCollectionStatusItemDirective,
497
531
  UploadCollectionButtonGroupComponent,
498
532
  UploadCollectionFormItemComponent,
499
533
  UploadCollectionTitleContainerDirective
@@ -505,5 +539,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
505
539
  * Generated bundle index. Do not edit.
506
540
  */
507
541
 
508
- export { UploadCollectionButtonGroupComponent, UploadCollectionComponent, UploadCollectionDescriptionDirective, UploadCollectionFormItemComponent, UploadCollectionItemDirective, UploadCollectionModule, UploadCollectionStatusGroupDirective, UploadCollectionTextSeparatorDirective, UploadCollectionThumbnailDirective, UploadCollectionTitleContainerDirective, UploadCollectionTitleDirective };
542
+ export { UploadCollectionButtonGroupComponent, UploadCollectionComponent, UploadCollectionDescriptionDirective, UploadCollectionFormItemComponent, UploadCollectionItemDirective, UploadCollectionModule, UploadCollectionStatusGroupDirective, UploadCollectionStatusItemDirective, UploadCollectionTextSeparatorDirective, UploadCollectionThumbnailDirective, UploadCollectionTitleContainerDirective, UploadCollectionTitleDirective };
509
543
  //# sourceMappingURL=fundamental-ngx-core-upload-collection.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-upload-collection.mjs","sources":["../../../../libs/core/src/lib/upload-collection/upload-collection-simple.directives.ts","../../../../libs/core/src/lib/upload-collection/upload-collection.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-button-group/upload-collection-button-group.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-button-group/upload-collection-button-group.component.html","../../../../libs/core/src/lib/upload-collection/upload-collection-form-item/upload-collection-form-item.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-form-item/upload-collection-form-item.component.html","../../../../libs/core/src/lib/upload-collection/upload-collection-item.directive.ts","../../../../libs/core/src/lib/upload-collection/upload-collection.module.ts","../../../../libs/core/src/lib/upload-collection/fundamental-ngx-core-upload-collection.ts"],"sourcesContent":["import { ContentChildren, Directive, ElementRef, HostBinding, QueryList } from '@angular/core';\nimport { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-thumbnail]',\n host: { class: 'fd-upload-collection__thumbnail' }\n})\nexport class UploadCollectionThumbnailDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-title]',\n host: { class: 'fd-upload-collection__title' }\n})\nexport class UploadCollectionTitleDirective {\n constructor(public elRef: ElementRef) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-description]',\n host: { class: 'fd-upload-collection__description' }\n})\nexport class UploadCollectionDescriptionDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-text-separator], fd-upload-collection-text-separator',\n host: { class: 'fd-upload-collection__text-separator' }\n})\nexport class UploadCollectionTextSeparatorDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-status-group]',\n host: { class: 'fd-upload-collection__status-group' }\n})\nexport class UploadCollectionStatusGroupDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-title-container]'\n})\nexport class UploadCollectionTitleContainerDirective {\n /** @hidden */\n @ContentChildren(ObjectMarkerComponent)\n _objectMarkerComponents: QueryList<ObjectMarkerComponent>;\n\n /** Whether or not this is in edit mode. */\n @HostBinding('class.fd-upload-collection__title-container')\n applyContainerClass = true;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-upload-collection',\n host: { class: 'fd-upload-collection' },\n styleUrls: ['./upload-collection.component.scss'],\n template: `<ul fd-list [byline]=\"true\" [selection]=\"selection\">\n <ng-content></ng-content>\n </ul>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadCollectionComponent {\n /** Whether or not this is the small upload collection. */\n @Input()\n @HostBinding('class.fd-upload-collection--sm')\n small = false;\n\n /** Whether or not this upload collection supports selection. */\n @Input()\n selection = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Component({\n selector: 'fd-upload-collection-button-group',\n host: { class: 'fd-upload-collection__button-group' },\n templateUrl: './upload-collection-button-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadCollectionButtonGroupComponent {\n /** @hidden */\n _editMode = false;\n\n /** Event emitted when the user clicks the edit button. */\n @Output()\n readonly editClicked = new EventEmitter<boolean>();\n\n /** Event emitted when the user clicks the OK button to conform a file name change. */\n @Output()\n readonly okClicked = new EventEmitter<any>();\n\n /** Event emitted when the user clicks the delete button. */\n @Output()\n readonly deleteClicked = new EventEmitter<any>();\n\n /** Whether or not to allow file name editing. Default is true. */\n @Input()\n allowFileNameEdit = true;\n\n /** Whether or not to show the delete button. Default is true. */\n @Input()\n allowFileDeletion = true;\n\n /** Whether or not to disable the file name edit button. Default is false. */\n @Input()\n disableFileNameEdit = false;\n\n /** Whether or not to disable the delete button. Default is false. */\n @Input()\n disableFileDeletion = false;\n\n /** Text for the 'Ok' button. */\n @Input()\n okText = 'Ok';\n\n /** Text for the 'Cancel' button. */\n @Input()\n cancelText = 'Cancel';\n\n /** Text for the 'Edit' aria-label. */\n @Input()\n editAriaLabel = 'Edit';\n\n /** Text for the 'Delete' aria-label. */\n @Input()\n deleteAriaLabel = 'Delete';\n\n /** Text for the 'Ok' aria-label. */\n @Input()\n okAriaLabel = 'Edit';\n\n /** Text for the 'Cancel' aria-label. */\n @Input()\n cancelAriaLabel = 'Cancel';\n\n /** @hidden */\n @ViewChild('okButton')\n _okButton: ButtonComponent;\n\n /** @hidden */\n _editButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.editClicked.emit(true);\n this._editMode = true;\n }\n\n /** @hidden */\n _deleteButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.deleteClicked.emit();\n }\n\n /** @hidden */\n _okButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.okClicked.emit();\n }\n\n /** @hidden */\n _cancelButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.editClicked.emit(false);\n this._editMode = false;\n }\n}\n","<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [attr.aria-label]=\"editAriaLabel\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [attr.aria-label]=\"deleteAriaLabel\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"okAriaLabel\"\n>\n {{ okText }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"cancelAriaLabel\"\n>\n {{ cancelText }}\n</button>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'fd-upload-collection-form-item',\n host: { class: 'fd-upload-collection__form-item' },\n templateUrl: './upload-collection-form-item.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class UploadCollectionFormItemComponent implements ControlValueAccessor {\n /** Value for the input's placeholder. */\n @Input()\n placeholder = 'Filename';\n\n /** @hidden */\n @Input()\n _editMode = false;\n\n /** @hidden */\n _fileNameValue: string;\n\n /** @hidden */\n _extension: string;\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly fileNameChanged = new EventEmitter<string>();\n\n /** Get the value of the text input. */\n get fileName(): string {\n return this._fileNameValue;\n }\n\n /** Set the value of the text input. */\n set fileName(value) {\n this._fileNameValue = value;\n this.onChange(value);\n this.onTouched();\n this.fileNameChanged.emit(value);\n }\n\n /** @hidden */\n onChange: (value: string) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n writeValue(value: string): void {\n this.fileName = value;\n }\n\n /** @hidden */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n style=\"pointer-events: all\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n","import {\n AfterContentInit,\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { Subscription } from 'rxjs';\nimport {\n UploadCollectionTitleContainerDirective,\n UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-item]',\n host: { class: 'fd-upload-collection__item' }\n})\nexport class UploadCollectionItemDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n /** The name of the file, not including the type extension. */\n @Input()\n fileName: string;\n\n /** The file type extension. */\n @Input()\n extension: string;\n\n /** @hidden */\n @ContentChild(UploadCollectionFormItemComponent)\n _formItemComponent: UploadCollectionFormItemComponent;\n\n /** @hidden */\n @ContentChild(UploadCollectionTitleDirective)\n _titleDirective: UploadCollectionTitleDirective;\n\n /** @hidden */\n @ContentChild(UploadCollectionButtonGroupComponent)\n _buttonGroupComponent: UploadCollectionButtonGroupComponent;\n\n /** @hidden */\n @ContentChild(UploadCollectionTitleContainerDirective)\n _titleContainerDirective: UploadCollectionTitleContainerDirective;\n\n /** Event emitted when the user changes a file name. */\n @Output()\n readonly fileNameChanged = new EventEmitter<any>();\n\n /** Event emitted when presses the delete button. */\n @Output()\n readonly deleteClicked = new EventEmitter<any>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n fileNameFull: string;\n\n /** @hidden */\n titleWidth: number;\n\n /** @hidden used to compare to the current width to know whether to collapse or expand title */\n previousContainerWidth: number;\n\n /** @hidden */\n containerWidth: number;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.fileNameFull = this.fileName + '.' + this.extension;\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this._handleDeleteClickedSubscription();\n this._handleOkClickedSubscription();\n this._handleEditClickedSubscription();\n this._handleFormItemInputChangedSubscription();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.onResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('window:resize', [])\n onResize(): void {\n if (!this.elementRef.nativeElement.parentElement) {\n return;\n }\n this.titleWidth = this.getTitleWidth();\n this.containerWidth = this.getContainerWidth();\n\n // if first load and no previous container width, or if container boundary is resized to smaller than before\n if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {\n // and the title extends past the container, 1.05x padding to prevent jaggy resizing.\n if (this.titleWidth * 1.05 >= this.containerWidth) {\n this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);\n }\n } else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {\n // Looks to expand file title if container width is resized to greater than before\n // reset file title to initial\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this.resizeFileTitle(this.fileNameFull);\n }\n\n this.previousContainerWidth = this.containerWidth;\n }\n\n /** @hidden */\n private _handleOkClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.okClicked.subscribe(() => {\n if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {\n this.fileName = this._formItemComponent.fileName;\n this._titleDirective.elRef.nativeElement.style.display = 'inline-block';\n this.fileNameFull = this.fileName + '.' + this.extension;\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this.resizeFileTitle(this.fileNameFull);\n this._formItemComponent._editMode = false;\n this._buttonGroupComponent._editMode = false;\n this.fileNameChanged.emit(this);\n }\n })\n );\n }\n\n /** @hidden */\n private _handleEditClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.editClicked.subscribe((event) => {\n this._formItemComponent._editMode = event;\n if (this._titleContainerDirective) {\n this._titleContainerDirective.applyContainerClass = !event;\n }\n const styles = [];\n styles.push(this._titleDirective.elRef.nativeElement.style);\n this._titleContainerDirective?._objectMarkerComponents?.forEach((objectMarker) => {\n styles.push(objectMarker.elementRef().nativeElement.style);\n });\n event\n ? styles.forEach((style) => (style.display = 'none'))\n : styles.forEach((style) => (style.display = 'inline-block'));\n if (event) {\n this._formItemComponent._extension = this.extension;\n this._formItemComponent.fileName = this.fileName;\n }\n })\n );\n }\n\n /** @hidden */\n private _handleDeleteClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.deleteClicked.subscribe(() => {\n this.deleteClicked.emit(this);\n })\n );\n }\n\n /** @hidden */\n private _handleFormItemInputChangedSubscription(): void {\n this._subscriptions.add(\n this._formItemComponent.fileNameChanged.subscribe((event) => {\n this._buttonGroupComponent._okButton.disabled = event === '';\n this._buttonGroupComponent._okButton.buildComponentCssClass();\n })\n );\n }\n\n /** @hidden */\n private getTitleWidth(): number {\n return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n private getContainerWidth(): number {\n return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;\n }\n\n /**\n * @hidden\n *\n * truncates the string by cutting out excess length in the middle and replacing with '...'\n */\n private truncateTitle(str: string): string {\n const cutLength = Math.floor(str.length * 0.8);\n\n if (str.length > cutLength) {\n const stringLeftIndex = Math.floor(cutLength / 2);\n const stringRightIndex = str.length - stringLeftIndex + 3;\n return str.substring(0, stringLeftIndex) + '... ' + str.substring(stringRightIndex, str.length);\n }\n return str;\n }\n\n /**\n * @hidden\n *\n * determines if file title needs to be truncated given container constraint.\n */\n private resizeFileTitle(titleStr: string): void {\n let curTitle = titleStr;\n this.containerWidth = this.getContainerWidth();\n this.titleWidth = this.getTitleWidth();\n\n // repeatedly truncate the title until it fits inside container\n while (this.titleWidth * 1.05 >= this.containerWidth) {\n const truncatedTitleStr = this.truncateTitle(curTitle);\n this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;\n curTitle = truncatedTitleStr;\n this.titleWidth = this.getTitleWidth();\n this.containerWidth = this.getContainerWidth();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n UploadCollectionDescriptionDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleContainerDirective,\n UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { UploadCollectionComponent } from './upload-collection.component';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { FormsModule } from '@angular/forms';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { UploadCollectionItemDirective } from './upload-collection-item.directive';\n\n@NgModule({\n declarations: [\n UploadCollectionComponent,\n UploadCollectionItemDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleDirective,\n UploadCollectionDescriptionDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionButtonGroupComponent,\n UploadCollectionFormItemComponent,\n UploadCollectionTitleContainerDirective\n ],\n imports: [CommonModule, ListModule, ButtonModule, LinkModule, FormsModule, FormControlModule],\n exports: [\n UploadCollectionComponent,\n UploadCollectionItemDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleDirective,\n UploadCollectionDescriptionDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionButtonGroupComponent,\n UploadCollectionFormItemComponent,\n UploadCollectionTitleContainerDirective\n ]\n})\nexport class UploadCollectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-upload-collection.mjs","sources":["../../../../libs/core/src/lib/upload-collection/upload-collection-simple.directives.ts","../../../../libs/core/src/lib/upload-collection/upload-collection.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-button-group/upload-collection-button-group.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-button-group/upload-collection-button-group.component.html","../../../../libs/core/src/lib/upload-collection/upload-collection-form-item/upload-collection-form-item.component.ts","../../../../libs/core/src/lib/upload-collection/upload-collection-form-item/upload-collection-form-item.component.html","../../../../libs/core/src/lib/upload-collection/upload-collection-item.directive.ts","../../../../libs/core/src/lib/upload-collection/upload-collection.module.ts","../../../../libs/core/src/lib/upload-collection/fundamental-ngx-core-upload-collection.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n HostBinding,\n Inject,\n OnInit,\n Optional,\n QueryList\n} from '@angular/core';\nimport { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-thumbnail]',\n host: { class: 'fd-upload-collection__thumbnail' }\n})\nexport class UploadCollectionThumbnailDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-title]',\n host: { class: 'fd-upload-collection__title' }\n})\nexport class UploadCollectionTitleDirective {\n constructor(public elRef: ElementRef) {}\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-description]',\n host: { class: 'fd-upload-collection__description' }\n})\nexport class UploadCollectionDescriptionDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-text-separator], fd-upload-collection-text-separator',\n host: { class: 'fd-upload-collection__text-separator' }\n})\nexport class UploadCollectionTextSeparatorDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-status-group]',\n host: { class: 'fd-upload-collection__status-group' }\n})\nexport class UploadCollectionStatusGroupDirective {}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-status-item]',\n host: { class: 'fd-upload-collection__status-group-item' }\n})\nexport class UploadCollectionStatusItemDirective implements OnInit {\n constructor(@Optional() @Inject(ObjectStatusComponent) private _objectStatus: ObjectStatusComponent) {}\n\n ngOnInit(): void {\n if (this._objectStatus) {\n this._objectStatus._textClass += ' fd-upload-collection__status-group-item-text';\n }\n }\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-title-container]'\n})\nexport class UploadCollectionTitleContainerDirective {\n /** @hidden */\n @ContentChildren(ObjectMarkerComponent)\n _objectMarkerComponents: QueryList<ObjectMarkerComponent>;\n\n /** Whether or not this is in edit mode. */\n @HostBinding('class.fd-upload-collection__title-container')\n applyContainerClass = true;\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-upload-collection',\n host: { class: 'fd-upload-collection' },\n styleUrls: ['./upload-collection.component.scss'],\n template: `<ul fd-list [byline]=\"true\" [selection]=\"selection\">\n <ng-content></ng-content>\n </ul>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadCollectionComponent {\n /** Whether or not this is the small upload collection. */\n @Input()\n @HostBinding('class.fd-upload-collection--sm')\n small = false;\n\n /** Whether or not this upload collection supports selection. */\n @Input()\n selection = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\n\n@Component({\n selector: 'fd-upload-collection-button-group',\n host: { class: 'fd-upload-collection__button-group' },\n templateUrl: './upload-collection-button-group.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class UploadCollectionButtonGroupComponent {\n /** @hidden */\n _editMode = false;\n\n /** Event emitted when the user clicks the edit button. */\n @Output()\n readonly editClicked = new EventEmitter<boolean>();\n\n /** Event emitted when the user clicks the OK button to conform a file name change. */\n @Output()\n readonly okClicked = new EventEmitter<any>();\n\n /** Event emitted when the user clicks the delete button. */\n @Output()\n readonly deleteClicked = new EventEmitter<any>();\n\n /** Whether or not to allow file name editing. Default is true. */\n @Input()\n allowFileNameEdit = true;\n\n /** Whether or not to show the delete button. Default is true. */\n @Input()\n allowFileDeletion = true;\n\n /** Whether or not to disable the file name edit button. Default is false. */\n @Input()\n disableFileNameEdit = false;\n\n /** Whether or not to disable the delete button. Default is false. */\n @Input()\n disableFileDeletion = false;\n\n /** Text for the 'Ok' button. */\n @Input()\n okText = 'Ok';\n\n /** Text for the 'Cancel' button. */\n @Input()\n cancelText = 'Cancel';\n\n /** Text for the 'Edit' aria-label. */\n @Input()\n editAriaLabel = 'Edit';\n\n /** Text for the 'Delete' aria-label. */\n @Input()\n deleteAriaLabel = 'Delete';\n\n /** Text for the 'Ok' aria-label. */\n @Input()\n okAriaLabel = 'Edit';\n\n /** Text for the 'Cancel' aria-label. */\n @Input()\n cancelAriaLabel = 'Cancel';\n\n /** @hidden */\n @ViewChild('okButton')\n _okButton: ButtonComponent;\n\n /** @hidden */\n _editButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.editClicked.emit(true);\n this._editMode = true;\n }\n\n /** @hidden */\n _deleteButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.deleteClicked.emit();\n }\n\n /** @hidden */\n _okButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.okClicked.emit();\n }\n\n /** @hidden */\n _cancelButtonClicked(event?: MouseEvent): void {\n if (event) {\n event.stopPropagation();\n }\n this.editClicked.emit(false);\n this._editMode = false;\n }\n}\n","<button\n *ngIf=\"!_editMode && allowFileNameEdit\"\n [disabled]=\"disableFileNameEdit\"\n (click)=\"_editButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n [attr.aria-label]=\"editAriaLabel\"\n></button>\n<button\n *ngIf=\"!_editMode && allowFileDeletion\"\n [disabled]=\"disableFileDeletion\"\n (click)=\"_deleteButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [attr.aria-label]=\"deleteAriaLabel\"\n></button>\n<button\n #okButton\n [style.display]=\"_editMode ? 'inline-flex' : 'none'\"\n (click)=\"_okButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"okAriaLabel\"\n>\n {{ okText }}\n</button>\n<button\n *ngIf=\"_editMode\"\n (click)=\"_cancelButtonClicked($event)\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"cancelAriaLabel\"\n>\n {{ cancelText }}\n</button>\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'fd-upload-collection-form-item',\n host: { class: 'fd-upload-collection__form-item' },\n templateUrl: './upload-collection-form-item.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class UploadCollectionFormItemComponent implements ControlValueAccessor {\n /** Value for the input's placeholder. */\n @Input()\n placeholder = 'Filename';\n\n /** @hidden */\n @Input()\n _editMode = false;\n\n /** @hidden */\n _fileNameValue: string;\n\n /** @hidden */\n _extension: string;\n\n /** Event emitted when the dragged file exits the dropzone. */\n @Output()\n readonly fileNameChanged = new EventEmitter<string>();\n\n /** Get the value of the text input. */\n get fileName(): string {\n return this._fileNameValue;\n }\n\n /** Set the value of the text input. */\n set fileName(value) {\n this._fileNameValue = value;\n this.onChange(value);\n this.onTouched();\n this.fileNameChanged.emit(value);\n }\n\n /** @hidden */\n onChange: (value: string) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n writeValue(value: string): void {\n this.fileName = value;\n }\n\n /** @hidden */\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","<input\n *ngIf=\"_editMode\"\n fd-form-control\n required\n style=\"pointer-events: all\"\n class=\"fd-input\"\n type=\"text\"\n [attr.placeholder]=\"placeholder\"\n [(ngModel)]=\"fileName\"\n [state]=\"!fileName ? 'error' : null\"\n (click)=\"$event.stopPropagation()\"\n/>\n<span *ngIf=\"_editMode\" class=\"fd-upload-collection__extension\">.{{ _extension }}</span>\n","import {\n AfterContentInit,\n AfterViewInit,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output\n} from '@angular/core';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { Subscription } from 'rxjs';\nimport {\n UploadCollectionTitleContainerDirective,\n UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-upload-collection-item]',\n host: { class: 'fd-upload-collection__item' }\n})\nexport class UploadCollectionItemDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n /** The name of the file, not including the type extension. */\n @Input()\n fileName: string;\n\n /** The file type extension. */\n @Input()\n extension: string;\n\n /** @hidden */\n @ContentChild(UploadCollectionFormItemComponent)\n _formItemComponent: UploadCollectionFormItemComponent;\n\n /** @hidden */\n @ContentChild(UploadCollectionTitleDirective)\n _titleDirective: UploadCollectionTitleDirective;\n\n /** @hidden */\n @ContentChild(UploadCollectionButtonGroupComponent)\n _buttonGroupComponent: UploadCollectionButtonGroupComponent;\n\n /** @hidden */\n @ContentChild(UploadCollectionTitleContainerDirective)\n _titleContainerDirective: UploadCollectionTitleContainerDirective;\n\n /** Event emitted when the user changes a file name. */\n @Output()\n readonly fileNameChanged = new EventEmitter<any>();\n\n /** Event emitted when presses the delete button. */\n @Output()\n readonly deleteClicked = new EventEmitter<any>();\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n fileNameFull: string;\n\n /** @hidden */\n titleWidth: number;\n\n /** @hidden used to compare to the current width to know whether to collapse or expand title */\n previousContainerWidth: number;\n\n /** @hidden */\n containerWidth: number;\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.fileNameFull = this.fileName + '.' + this.extension;\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this._handleDeleteClickedSubscription();\n this._handleOkClickedSubscription();\n this._handleEditClickedSubscription();\n this._handleFormItemInputChangedSubscription();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n // Process resize after all the children views is initialized\n setTimeout(() => this.onResize());\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n @HostListener('window:resize', [])\n onResize(): void {\n if (!this.elementRef.nativeElement.parentElement) {\n return;\n }\n this.titleWidth = this.getTitleWidth();\n this.containerWidth = this.getContainerWidth();\n\n // if first load and no previous container width, or if container boundary is resized to smaller than before\n if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {\n // and the title extends past the container, 1.05x padding to prevent jaggy resizing.\n if (this.titleWidth * 1.05 >= this.containerWidth) {\n this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);\n }\n } else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {\n // Looks to expand file title if container width is resized to greater than before\n // reset file title to initial\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this.resizeFileTitle(this.fileNameFull);\n }\n\n this.previousContainerWidth = this.containerWidth;\n }\n\n /** @hidden */\n private _handleOkClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.okClicked.subscribe(() => {\n if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {\n this.fileName = this._formItemComponent.fileName;\n this._titleDirective.elRef.nativeElement.style.display = 'inline-block';\n this.fileNameFull = this.fileName + '.' + this.extension;\n this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;\n this.resizeFileTitle(this.fileNameFull);\n this._formItemComponent._editMode = false;\n this._buttonGroupComponent._editMode = false;\n this.fileNameChanged.emit(this);\n }\n })\n );\n }\n\n /** @hidden */\n private _handleEditClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.editClicked.subscribe((event) => {\n this._formItemComponent._editMode = event;\n if (this._titleContainerDirective) {\n this._titleContainerDirective.applyContainerClass = !event;\n }\n const styles = [];\n styles.push(this._titleDirective.elRef.nativeElement.style);\n this._titleContainerDirective?._objectMarkerComponents?.forEach((objectMarker) => {\n styles.push(objectMarker.elementRef().nativeElement.style);\n });\n event\n ? styles.forEach((style) => (style.display = 'none'))\n : styles.forEach((style) => (style.display = 'inline-block'));\n if (event) {\n this._formItemComponent._extension = this.extension;\n this._formItemComponent.fileName = this.fileName;\n }\n })\n );\n }\n\n /** @hidden */\n private _handleDeleteClickedSubscription(): void {\n this._subscriptions.add(\n this._buttonGroupComponent.deleteClicked.subscribe(() => {\n this.deleteClicked.emit(this);\n })\n );\n }\n\n /** @hidden */\n private _handleFormItemInputChangedSubscription(): void {\n this._subscriptions.add(\n this._formItemComponent.fileNameChanged.subscribe((event) => {\n this._buttonGroupComponent._okButton.disabled = event === '';\n this._buttonGroupComponent._okButton.buildComponentCssClass();\n })\n );\n }\n\n /** @hidden */\n private getTitleWidth(): number {\n return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n private getContainerWidth(): number {\n return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;\n }\n\n /**\n * @hidden\n *\n * truncates the string by cutting out excess length in the middle and replacing with '...'\n */\n private truncateTitle(str: string): string {\n const cutLength = Math.floor(str.length * 0.8);\n\n if (str.length > cutLength) {\n const stringLeftIndex = Math.floor(cutLength / 2);\n const stringRightIndex = str.length - stringLeftIndex + 3;\n return str.substring(0, stringLeftIndex) + '...' + str.substring(stringRightIndex, str.length);\n }\n return str;\n }\n\n /**\n * @hidden\n *\n * determines if file title needs to be truncated given container constraint.\n */\n private resizeFileTitle(titleStr: string): void {\n let curTitle = titleStr;\n this.containerWidth = this.getContainerWidth();\n this.titleWidth = this.getTitleWidth();\n\n // repeatedly truncate the title until it fits inside container\n while (this.titleWidth * 1.05 >= this.containerWidth) {\n const truncatedTitleStr = this.truncateTitle(curTitle);\n this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;\n curTitle = truncatedTitleStr;\n this.titleWidth = this.getTitleWidth();\n this.containerWidth = this.getContainerWidth();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n UploadCollectionDescriptionDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionStatusItemDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleContainerDirective,\n UploadCollectionTitleDirective\n} from './upload-collection-simple.directives';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { UploadCollectionComponent } from './upload-collection.component';\nimport { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { FormsModule } from '@angular/forms';\nimport { FormControlModule } from '@fundamental-ngx/core/form';\nimport { UploadCollectionItemDirective } from './upload-collection-item.directive';\n\n@NgModule({\n declarations: [\n UploadCollectionComponent,\n UploadCollectionItemDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleDirective,\n UploadCollectionDescriptionDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionStatusItemDirective,\n UploadCollectionButtonGroupComponent,\n UploadCollectionFormItemComponent,\n UploadCollectionTitleContainerDirective\n ],\n imports: [CommonModule, ListModule, ButtonModule, LinkModule, FormsModule, FormControlModule],\n exports: [\n UploadCollectionComponent,\n UploadCollectionItemDirective,\n UploadCollectionThumbnailDirective,\n UploadCollectionTitleDirective,\n UploadCollectionDescriptionDirective,\n UploadCollectionTextSeparatorDirective,\n UploadCollectionStatusGroupDirective,\n UploadCollectionStatusItemDirective,\n UploadCollectionButtonGroupComponent,\n UploadCollectionFormItemComponent,\n UploadCollectionTitleContainerDirective\n ]\n})\nexport class UploadCollectionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -53,7 +53,8 @@ ObjectStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
53
53
  [ariaLabel]="glyphAriaLabel"
54
54
  >
55
55
  </fd-icon>
56
- <span *ngIf="label" class="fd-object-status__text">{{ label }}</span>
56
+
57
+ <span *ngIf="label" class="fd-object-status__text" [class]="_textClass">{{ label }}</span>
57
58
 
58
59
  <!-- DEPRECATED - Remove in v0.23.0 -->
59
60
  <ng-content></ng-content>
@@ -75,7 +76,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
75
76
  [ariaLabel]="glyphAriaLabel"
76
77
  >
77
78
  </fd-icon>
78
- <span *ngIf="label" class="fd-object-status__text">{{ label }}</span>
79
+
80
+ <span *ngIf="label" class="fd-object-status__text" [class]="_textClass">{{ label }}</span>
79
81
 
80
82
  <!-- DEPRECATED - Remove in v0.23.0 -->
81
83
  <ng-content></ng-content>
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-object-status.mjs","sources":["../../../../libs/core/src/lib/object-status/object-status.component.ts","../../../../libs/core/src/lib/object-status/object-status.module.ts","../../../../libs/core/src/lib/object-status/fundamental-ngx-core-object-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n ViewEncapsulation,\n OnInit\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nexport type ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-object-status]',\n template: `\n <fd-icon\n *ngIf=\"glyph\"\n class=\"fd-object-status__icon\"\n [glyph]=\"glyph\"\n [attr.role]=\"glyphAriaLabel ? 'presentation' : ''\"\n [ariaLabel]=\"glyphAriaLabel\"\n >\n </fd-icon>\n <span *ngIf=\"label\" class=\"fd-object-status__text\">{{ label }}</span>\n\n <!-- DEPRECATED - Remove in v0.23.0 -->\n <ng-content></ng-content>\n `,\n styleUrls: ['./object-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': 'clickable ? 0 : -1'\n }\n})\nexport class ObjectStatusComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * The status represented by the Object Status.\n * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'\n * For default Object Status omit this property\n */\n @Input()\n status: ObjectStatus;\n\n /**\n * Glyph (icon) of the Object Status.\n */\n @Input()\n glyph: string;\n\n /** Define the text content of the Object Status */\n @Input()\n label: string;\n\n /**\n * Label applied to glyph element, should be used when there is no text included\n */\n @Input()\n glyphAriaLabel: string;\n\n /**\n * A number representing the indication color.\n * Option includes numbers from 1 to 8\n */\n @Input()\n indicationColor: number = null;\n\n /** Whether the Object Status is clickable. */\n @Input()\n clickable = false;\n\n /** Whether the Object Status is inverted. */\n @Input()\n inverted = false;\n\n /** Whether the Object Status is in Large Design. */\n @Input()\n large = false;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return buildObjectStatusCssClasses(this);\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nexport const buildObjectStatusCssClasses = ({\n status,\n inverted,\n large,\n indicationColor,\n clickable,\n class: className\n}: Partial<{\n status: ObjectStatus;\n inverted: boolean;\n large: boolean;\n indicationColor: number;\n clickable: boolean;\n class: string;\n}>): string[] => [\n 'fd-object-status',\n inverted ? 'fd-object-status--inverted' : '',\n large ? 'fd-object-status--large' : '',\n status ? `fd-object-status--${status}` : '',\n indicationColor ? `fd-object-status--indication-${indicationColor}` : '',\n clickable ? 'fd-object-status--link' : '',\n className\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from './object-status.component';\n\n@NgModule({\n declarations: [ObjectStatusComponent],\n imports: [CommonModule, IconModule],\n exports: [ObjectStatusComponent]\n})\nexport class ObjectStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAsCa,qBAAqB;;IAiD9B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;;;;QAf3C,oBAAe,GAAW,IAAI,CAAC;;QAI/B,cAAS,GAAG,KAAK,CAAC;;QAIlB,aAAQ,GAAG,KAAK,CAAC;;QAIjB,UAAK,GAAG,KAAK,CAAC;KAGiC;;IAG/C,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC;KAC5C;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;kHAzEQ,qBAAqB;sGAArB,qBAAqB,kWArBpB;;;;;;;;;;;;;KAaT;AA0ED;IALC,aAAa;;;;mEAOb;2FApEQ,qBAAqB;kBAxBjC,SAAS;+BAEI,oBAAoB,YACpB;;;;;;;;;;;;;KAaT,iBAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACF,iBAAiB,EAAE,oBAAoB;qBAC1C;iGAKD,KAAK;sBADJ,KAAK;gBASN,MAAM;sBADL,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAON,cAAc;sBADb,KAAK;gBAQN,eAAe;sBADd,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,QAAQ;sBADP,KAAK;gBAKN,KAAK;sBADJ,KAAK;;;;;;QAqBN,sBAAsB;MAUb,2BAA2B,GAAG,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,eAAe,EACf,SAAS,EACT,KAAK,EAAE,SAAS,EAQlB,KAAe;IACb,kBAAkB;IAClB,QAAQ,GAAG,4BAA4B,GAAG,EAAE;IAC5C,KAAK,GAAG,yBAAyB,GAAG,EAAE;IACtC,MAAM,GAAG,qBAAqB,MAAM,EAAE,GAAG,EAAE;IAC3C,eAAe,GAAG,gCAAgC,eAAe,EAAE,GAAG,EAAE;IACxE,SAAS,GAAG,wBAAwB,GAAG,EAAE;IACzC,SAAS;;;MC7HA,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAJZ,qBAAqB,aAC1B,YAAY,EAAE,UAAU,aACxB,qBAAqB;gHAEtB,kBAAkB,YAHlB,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,kBAAkB;kBAL9B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,qBAAqB,CAAC;iBACnC;;;ACTD;;;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-core-object-status.mjs","sources":["../../../../libs/core/src/lib/object-status/object-status.component.ts","../../../../libs/core/src/lib/object-status/object-status.module.ts","../../../../libs/core/src/lib/object-status/fundamental-ngx-core-object-status.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n ViewEncapsulation,\n OnInit\n} from '@angular/core';\nimport { applyCssClass } from '@fundamental-ngx/core/utils';\nimport { CssClassBuilder } from '@fundamental-ngx/core/utils';\n\nexport type ObjectStatus = 'negative' | 'critical' | 'positive' | 'informative';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-object-status]',\n template: `\n <fd-icon\n *ngIf=\"glyph\"\n class=\"fd-object-status__icon\"\n [glyph]=\"glyph\"\n [attr.role]=\"glyphAriaLabel ? 'presentation' : ''\"\n [ariaLabel]=\"glyphAriaLabel\"\n >\n </fd-icon>\n\n <span *ngIf=\"label\" class=\"fd-object-status__text\" [class]=\"_textClass\">{{ label }}</span>\n\n <!-- DEPRECATED - Remove in v0.23.0 -->\n <ng-content></ng-content>\n `,\n styleUrls: ['./object-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': 'clickable ? 0 : -1'\n }\n})\nexport class ObjectStatusComponent implements OnChanges, OnInit, CssClassBuilder {\n /** User's custom classes */\n @Input()\n class: string;\n\n /**\n * The status represented by the Object Status.\n * Can be one of the following: 'negative' | 'critical' | 'positive' | 'informative'\n * For default Object Status omit this property\n */\n @Input()\n status: ObjectStatus;\n\n /**\n * Glyph (icon) of the Object Status.\n */\n @Input()\n glyph: string;\n\n /** Define the text content of the Object Status */\n @Input()\n label: string;\n\n /**\n * Label applied to glyph element, should be used when there is no text included\n */\n @Input()\n glyphAriaLabel: string;\n\n /**\n * A number representing the indication color.\n * Option includes numbers from 1 to 8\n */\n @Input()\n indicationColor: number = null;\n\n /** Whether the Object Status is clickable. */\n @Input()\n clickable = false;\n\n /** Whether the Object Status is inverted. */\n @Input()\n inverted = false;\n\n /** Whether the Object Status is in Large Design. */\n @Input()\n large = false;\n\n /** @hidden */\n _textClass: string;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n @applyCssClass\n /** CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n buildComponentCssClass(): string[] {\n return buildObjectStatusCssClasses(this);\n }\n\n /** @hidden */\n elementRef(): ElementRef<any> {\n return this._elementRef;\n }\n}\n\nexport const buildObjectStatusCssClasses = ({\n status,\n inverted,\n large,\n indicationColor,\n clickable,\n class: className\n}: Partial<{\n status: ObjectStatus;\n inverted: boolean;\n large: boolean;\n indicationColor: number;\n clickable: boolean;\n class: string;\n}>): string[] => [\n 'fd-object-status',\n inverted ? 'fd-object-status--inverted' : '',\n large ? 'fd-object-status--large' : '',\n status ? `fd-object-status--${status}` : '',\n indicationColor ? `fd-object-status--indication-${indicationColor}` : '',\n clickable ? 'fd-object-status--link' : '',\n className\n];\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from './object-status.component';\n\n@NgModule({\n declarations: [ObjectStatusComponent],\n imports: [CommonModule, IconModule],\n exports: [ObjectStatusComponent]\n})\nexport class ObjectStatusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAuCa,qBAAqB;;IAoD9B,YAAoB,WAAuB;QAAvB,gBAAW,GAAX,WAAW,CAAY;;;;;QAlB3C,oBAAe,GAAW,IAAI,CAAC;;QAI/B,cAAS,GAAG,KAAK,CAAC;;QAIlB,aAAQ,GAAG,KAAK,CAAC;;QAIjB,UAAK,GAAG,KAAK,CAAC;KAMiC;;IAG/C,WAAW;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,QAAQ;QACJ,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;;;;IAOD,sBAAsB;QAClB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC;KAC5C;;IAGD,UAAU;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;kHA5EQ,qBAAqB;sGAArB,qBAAqB,kWAtBpB;;;;;;;;;;;;;;KAcT;AA6ED;IALC,aAAa;;;;mEAOb;2FAvEQ,qBAAqB;kBAzBjC,SAAS;+BAEI,oBAAoB,YACpB;;;;;;;;;;;;;;KAcT,iBAEc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,QACzC;wBACF,iBAAiB,EAAE,oBAAoB;qBAC1C;iGAKD,KAAK;sBADJ,KAAK;gBASN,MAAM;sBADL,KAAK;gBAON,KAAK;sBADJ,KAAK;gBAKN,KAAK;sBADJ,KAAK;gBAON,cAAc;sBADb,KAAK;gBAQN,eAAe;sBADd,KAAK;gBAKN,SAAS;sBADR,KAAK;gBAKN,QAAQ;sBADP,KAAK;gBAKN,KAAK;sBADJ,KAAK;;;;;;QAwBN,sBAAsB;MAUb,2BAA2B,GAAG,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,KAAK,EACL,eAAe,EACf,SAAS,EACT,KAAK,EAAE,SAAS,EAQlB,KAAe;IACb,kBAAkB;IAClB,QAAQ,GAAG,4BAA4B,GAAG,EAAE;IAC5C,KAAK,GAAG,yBAAyB,GAAG,EAAE;IACtC,MAAM,GAAG,qBAAqB,MAAM,EAAE,GAAG,EAAE;IAC3C,eAAe,GAAG,gCAAgC,eAAe,EAAE,GAAG,EAAE;IACxE,SAAS,GAAG,wBAAwB,GAAG,EAAE;IACzC,SAAS;;;MCjIA,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAJZ,qBAAqB,aAC1B,YAAY,EAAE,UAAU,aACxB,qBAAqB;gHAEtB,kBAAkB,YAHlB,CAAC,YAAY,EAAE,UAAU,CAAC;2FAG1B,kBAAkB;kBAL9B,QAAQ;mBAAC;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;oBACnC,OAAO,EAAE,CAAC,qBAAqB,CAAC;iBACnC;;;ACTD;;;;;;"}