@wizco/fenixds-ngx 17.4.2 → 17.4.4

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.
@@ -381,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
381
381
  }], formControlName: [{
382
382
  type: Input
383
383
  }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBaUVYO0lBaEV5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVyQixn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bGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybXNNb2R1bGUsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1zZWxlY3Qtb3B0aW9ucy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Y28tc21hcnQtc2VsZWN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU21hcnRTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNtYXJ0U2VsZWN0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU21hcnRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQENvbnRlbnRDaGlsZHJlbihTbWFydFNlbGVjdE9wdGlvbkNvbXBvbmVudCkgb3B0aW9uczpcbiAgICB8IFF1ZXJ5TGlzdDxTbWFydFNlbGVjdE9wdGlvbkNvbXBvbmVudD5cbiAgICB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55IH0+KCk7XG5cbiAgLyogSWQgZG8gZWxlbWVudG8gKi9cbiAgQElucHV0KClcbiAgaW5wdXRJZCA9ICdzZWxlY3RfJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcblxuICAvKiBBdHRyIG5hbWUgZG8gZWxlbWVudG8gKi9cbiAgQElucHV0KCkgaW5wdXROYW1lPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEljb25NYXRlcmlhbCA9ICdhcnJvd19kcm9wX2Rvd24nO1xuXG4gIC8qIFBsYWNlaG9sZGVyIGRvIHNlbGVjdCAqL1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICdTZWxlY2lvbmUgdW1hIG9ww6fDo28nO1xuXG4gIC8qIExhYmVsIGRvIHNlbGVjdCAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICcgJztcblxuICAvKiBGb3LDp2EgdmlzdWFsaXphw6fDo28gZG8gZXJybyAqL1xuICBASW5wdXQoKSBzaG93RXJyb3IgPSBmYWxzZTtcblxuICAvKiBNb3N0cmFyIGNhbXBvcyBkZSBidXNjYSAqL1xuICBASW5wdXQoKVxuICBzaG93U2VhcmNoID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXJTZWFyY2g6IHN0cmluZyA9ICdCdXNjYXInO1xuXG4gIC8qIFRleHRvIGV4aWJpZG8gcXVhbmRvIG7Do28gaMOhIHJlc3VsdGFkb3MgKi9cbiAgQElucHV0KClcbiAgdGV4dEVtcHR5ID0gJ07Do28gaMOhIHJlc3VsdGFkb3MgcGFyYSBhIGJ1c2NhJztcblxuICAvKiBoYWJpbGl0YXIgb3DDp8OjbyBkZSBtdWx0aXBsYXMgc2VsZcOnw7VlcyAqL1xuICBASW5wdXQoKVxuICBtdWx0aVNlbGVjdCA9IGZhbHNlO1xuXG4gIC8qIExpbWl0YXIgdmlzdWFsaXphw6fDo28gZGUgaXRlbnMgc2VsZWNpb25hZG9zICovXG4gIEBJbnB1dCgpXG4gIHNob3dNYXhTZWxlY3RlZExhYmVsID0gMDtcblxuICAvKiBUaXBvcyBwcsOpIGRlZmluaWRvcyBkZSBjaGVja2JveCwgcmFkaW8gb3UgbnVsbCAqL1xuICBASW5wdXQoKVxuICB0eXBlUHJlZml4OiAnY2hlY2tib3gnIHwgJ3JhZGlvJyB8IG51bGwgPSBudWxsO1xuXG4gIC8qIENvbmZpcm1hw6fDo28gZGUgbyBjYW1wbyDDqSBvYnJpZ2F0w7NyaW8gKi9cbiAgQElucHV0KClcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWU6IGFueSB8IHVuZGVmaW5lZDtcblxuICBpc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2ODtcblxuICBmb3JtVmFsdWU6IGFueTtcbiAgaXNGb2N1c2VkID0gZmFsc2U7XG4gIHByZXZlbnRFc2NhcGVGb2N1cyA9IGZhbHNlO1xuICBhdXRvY29tcGxldGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcblxuICBzaG93TGlzdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgfTtcblxuICAvLy8gZXN0YWRvcyBkbyBjb250cm9sXG5cbiAgbmdPbkluaXQoKSB7fVxuXG5cbiAgLy8gQ2FycmVnYSBvcyB2YWxvcmVzIGRvIGZvcm1Db250cm9sIHBhcmEgbyBjb21wb25lbnRlIGUgcmVuZGVyaXphIGFzIG9ww6fDtWVzXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVDb250cm9sLnZhbHVlID09PSB0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvcm1WYWx1ZSA9IG9iajtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuc2V0VmFsdWUob2JqKTtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wgPSBfY29udHJvbCB8fCBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICByZXR1cm4gX2NvbnRyb2wudmFsaWRhdG9yO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3VwZGF0ZVZhbHVlJykge1xuICAgICAgICBmbihldmVudC52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIGdldCBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3JcbiAgICAgID8gdGhpcy5zaG93RXJyb3JcbiAgICAgIDogdGhpcy5hdXRvY29tcGxldGVDb250cm9sLmludmFsaWQgJiZcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wudG91Y2hlZCAmJlxuICAgICAgICAgICF0aGlzLnNob3dMaXN0O1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8vIEFiZXJ0dXJhIGUgZmVjaGFtZW50byBkYSBsaXN0YVxuICBvbkZvY3VzSW4oZm9jdXMgPSBmYWxzZSkge1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZvY3VzO1xuICAgIHRoaXMuc2hvd0xpc3QgPSBmb2N1cztcbiAgICB0aGlzLnBvc2l0aW9uQm94KCk7XG4gIH1cblxuICAvLy8gaGVyZSBmdW5jdGlvbiB0byBwb3NpdGlvbiBib3ggZWxlbWVudCB0b3Agb3IgYm90dG9tXG4gIHBvc2l0aW9uQm94KCkge1xuICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50Qm94ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29tcG9uZW50Qm94KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudEJveFBvc2l0aW9uID0gY29tcG9uZW50Qm94LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGlucHV0SWQgPSBjb21wb25lbnRCb3gucXVlcnlTZWxlY3RvcignLmZvcm0tZmllbGQnKTtcbiAgICBjb25zdCBib3ggPSBjb21wb25lbnRCb3gucXVlcnlTZWxlY3RvcignLndjby1zbWFydFNlbGVjdC0tYm94Jyk7XG4gICAgY29uc3QgaW5wdXRJZFBvc2l0aW9uID0gaW5wdXRJZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgY29uc3QgcGFnZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBpZiAoYm94ICYmIGNvbXBvbmVudEJveFBvc2l0aW9uLnkgKyAzMjAgPj0gcGFnZUhlaWdodCkge1xuICAgICAgYm94LnN0eWxlLmJvdHRvbSA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuaGVpZ2h0ID0gYHZhcigtLXdjby1zbWFydC1zZWxlY3QtYm94LW1heC1oZWlnaHQpYDtcbiAgICAgIGJveC5zdHlsZS50b3AgPSAnaW5pdGlhbCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJveC5zdHlsZS50b3AgPSBpbnB1dElkUG9zaXRpb24gKyAncHgnO1xuICAgICAgYm94LnN0eWxlLmJvdHRvbSA9ICdpbml0aWFsJztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgYXV0b2A7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Qob3B0aW9uPzogYW55KSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCB8fCBvcHRpb24udmlld09ubHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuZm9ybVZhbHVlO1xuXG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jb21wYXJlTXVsdGlWYWx1ZXNBcnJheShvcHRpb24pO1xuICAgICAgICBjb25zdCBoYXNWYWx1ZU9wdGlvbiA9IGxpc3Quc29tZSgoaXRlbTogYW55KSA9PiBpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgaWYgKGhhc1ZhbHVlT3B0aW9uKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBsaXN0XG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+ICFpdGVtLnNlbGVjdGVkKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtLml0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlID0gWy4uLih0aGlzLmZvcm1WYWx1ZSB8fCBbXSksIG9wdGlvbi52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mb3JtVmFsdWU/LmluZGV4T2Yob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlPy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbHVlID0gWy4uLih0aGlzLmZvcm1WYWx1ZSB8fCBbXSksIG9wdGlvbi52YWx1ZV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1WYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybVZhbHVlID0gb3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKG9sZFZhbHVlICE9PSB0aGlzLmZvcm1WYWx1ZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgdHlwZTogJ3VwZGF0ZVZhbHVlJywgdmFsdWU6IHRoaXMuZm9ybVZhbHVlIH0pO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICB9XG5cbiAgLy8gU2hvdyBsYWJlbCBzcGFuXG4gIGdldCBzZWxlY3RlZExhYmVsKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zPy5maW5kKFxuICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyhvcHRpb24udmFsdWUpKSA9PT1cbiAgICAgICAgdGhpcy5ub3JtYWxpemVUZXh0KFN0cmluZyh0aGlzLmZvcm1WYWx1ZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8ICcgJztcbiAgfVxuXG4gIC8vIHNob3cgbGFiZWwgbXVsdGkgc2VsZWN0XG4gIGdldCBzZWxlY3RlZExhYmVsTXVsdGkoKTogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5vcHRpb25zPy5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVWYWx1ZUFycmF5KG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwgJiZcbiAgICAgIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiB0aGlzLnNob3dNYXhTZWxlY3RlZExhYmVsXG4gICAgKSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zLnNsaWNlKDAsIHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlVG9BcnJheShvcHRpb25zOiBhbnkpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3B0aW9ucyk7XG4gICAgY29uc3QgdmFsdWU6IGFueVtdID0gW107XG4gICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgb3B0aW9uc1trZXldICYmXG4gICAgICAgIG9wdGlvbnNba2V5XSAhPT0gJycgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIG9wdGlvbnNba2V5XSAhPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9uc1trZXldICE9PSAnYm9vbGVhbidcbiAgICAgICkge1xuICAgICAgICB2YWx1ZS5wdXNoKG9wdGlvbnNba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlVmFsdWVBcnJheShvcHRpb246IGFueSwgdmFsdWUgPSB0aGlzLmZvcm1WYWx1ZSk6IGFueVtdIHtcbiAgICBpZiAob3B0aW9uICYmIG9wdGlvbi52YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWVzSXRlbXMgPSB0aGlzLnZhbHVlVG9BcnJheShvcHRpb24udmFsdWUpO1xuICAgICAgcmV0dXJuIHZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtQXJyYXkgPSB0aGlzLnZhbHVlVG9BcnJheShpdGVtKTtcbiAgICAgICAgcmV0dXJuIGl0ZW1BcnJheS5ldmVyeSgoaXRlbVZhbHVlOiBhbnkpID0+XG4gICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGFyZU11bHRpVmFsdWVzQXJyYXkob3B0aW9uOiBhbnksIHZhbHVlID0gdGhpcy5mb3JtVmFsdWUpOiBhbnlbXSB7XG4gICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0l0ZW1zID0gdGhpcy52YWx1ZVRvQXJyYXkob3B0aW9uLnZhbHVlKTtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZUFycmF5ID0gdmFsdWUubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgICBzZWxlY3RlZDogaXRlbUFycmF5LnNvbWUoKGl0ZW1WYWx1ZTogYW55KSA9PlxuICAgICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgaXRlbXNcbiAgICAgIGNvbnN0IHVuaXF1ZUZvcm1WYWx1ZUFycmF5ID0gQXJyYXkuZnJvbShcbiAgICAgICAgbmV3IFNldChmb3JtVmFsdWVBcnJheS5tYXAoKGl0ZW06IGFueSkgPT4gSlNPTi5zdHJpbmdpZnkoaXRlbSkpKVxuICAgICAgKS5tYXAoKGl0ZW06IGFueSkgPT4gSlNPTi5wYXJzZShpdGVtKSk7XG5cbiAgICAgIHJldHVybiB1bmlxdWVGb3JtVmFsdWVBcnJheTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkTGFiZWxNdWx0aUNvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2hvdyA9IHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwgfHwgMDtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSlcbiAgICApO1xuICAgIGlmICghc2VsZWN0ZWRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGlmIChzaG93ID4gMCAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gc2hvdykge1xuICAgICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggLSBzaG93O1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShvcHRpb246IGFueSkge1xuICAgIHRoaXMub25TZWxlY3Qob3B0aW9uKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgb25LZXlQcmVzcyhldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgfVxuXG4gIG9uRmlsdGVyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlbmRlckJveE9wdGlvbnModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIG9uRm9jdXNPdXQoKSB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRFc2NhcGVGb2N1cyAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjbG9zZUxpc3QoKSB7XG4gICAgdGhpcy5wcmV2ZW50RXNjYXBlRm9jdXMgPSB0cnVlO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICB9XG5cbiAgc2VsZWN0ZWRWYWx1ZShvcHRpb246IHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZzsgc2FmZUh0bWxDb250ZW50OiBhbnkgfSkge1xuICAgIGlmICh0aGlzLm11bHRpU2VsZWN0KSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbi52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXNJdGVtcyA9IHRoaXMudmFsdWVUb0FycmF5KG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlLnNvbWUoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy52YWx1ZVRvQXJyYXkoaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbUFycmF5LmV2ZXJ5KChpdGVtVmFsdWU6IGFueSkgPT5cbiAgICAgICAgICAgICAgdmFsdWVzSXRlbXMuaW5jbHVkZXMoaXRlbVZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb24udmFsdWUgPT09IHRoaXMuZm9ybVZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJCb3hPcHRpb25zKGZpbHRlclZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zIHx8ICF0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zXG4gICAgICA/Lm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICBpY29uUHJlZml4OiBvcHRpb24uaWNvblByZWZpeCxcbiAgICAgICAgICBodG1sTGFiZWw6IG9wdGlvbi5zYWZlSHRtbENvbnRlbnQgfHwgb3B0aW9uLmxhYmVsLFxuICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgdmlld09ubHk6IG9wdGlvbi52aWV3T25seSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKCFmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWx0ZXIgPSB0aGlzLm5vcm1hbGl6ZVRleHQoZmlsdGVyVmFsdWUpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSB0aGlzLm5vcm1hbGl6ZVRleHQoXG4gICAgICAgICAgb3B0aW9uLmh0bWxMYWJlbD8udG9TdHJpbmcoKSB8fCAnJ1xuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplZExhYmVsLmluY2x1ZGVzKG5vcm1hbGl6ZWRGaWx0ZXIpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGV4dFxuICAgICAgLnJlcGxhY2UoL1tcXFdfXSsvZywgJycpIC8vIFJlbW92ZSBjYXJhY3RlcmVzIGVzcGVjaWFpcyBlIHN1YmxpbmhhZG9zXG4gICAgICAudG9Mb3dlckNhc2UoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIndjby1zbWFydFNlbGVjdFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnd2NvLXNtYXJ0U2VsZWN0LS1vcGVuJzogc2hvd0xpc3QsXG4gICAgJ3djby1zbWFydFNlbGVjdC0taXNNb2JpbGUnOiBpc01vYmlsZSxcbn1cIlxuICAocmVzaXplKT1cIm9uUmVzaXplKClcIlxuICAobW91c2VsZWF2ZSk9XCJvbkZvY3VzT3V0KClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiIFtuZ0NsYXNzXT1cInsnZm9ybS0tZXJyb3InOiBoYXNFcnJvcn1cIj5cbiAgICA8aW5wdXRcbiAgICAgICpuZ0lmPVwiIW11bHRpU2VsZWN0XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1maWVsZF9faW5wdXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWRcIlxuICAgICAgaWQ9XCJ7eyBpbnB1dElkID8gaW5wdXRJZCA6ICcnIH19XCJcbiAgICAgIG5hbWU9XCJ7eyBpbnB1dE5hbWUgPyBpbnB1dE5hbWUgOiAnJyB9fVwiXG4gICAgICAoY2xpY2spPVwib25Gb2N1c0luKHRydWUpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25Gb2N1c091dCgpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbdmFsdWVdPVwic2VsZWN0ZWRMYWJlbFwiXG4gICAgICBhcmlhLWxhYmVsPVwiU2VsZWNpb25lIHVtYSBvcMOnw6NvXCJcbiAgICAvPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwibXVsdGlTZWxlY3RcIlxuICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dCByZWFkb25seSBtdWx0aVNlbGVjdFwiXG4gICAgICBbbmdDbGFzc109XCJ7J2Zvcm0tZmllbGQtLWVycm9yJzogaGFzRXJyb3IsICdmb3JtLWZpZWxkLS1kaXNhYmxlZCc6IGF1dG9jb21wbGV0ZUNvbnRyb2wuZGlzYWJsZWQgfVwiXG4gICAgICBbY2xhc3MucmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgKGNsaWNrKT1cIm9uRm9jdXNJbih0cnVlKVwiXG4gICAgICAoZm9jdXNpbik9XCJvbkZvY3VzSW4oKVwiXG4gICAgICAoa2V5dXAuZXNjYXBlKT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRMYWJlbE11bHRpLmxlbmd0aFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfHwgJ1NlbGVjaW9uZSB1bWEgb3DDp8OjbycgfX08L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkTGFiZWxNdWx0aS5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBvcHRpb25TZWxlY3RlZCBvZiBzZWxlY3RlZExhYmVsTXVsdGlcIiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgICAgICB7e29wdGlvblNlbGVjdGVkLmxhYmVsfX0gXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1yZW1vdmVcIiAoY2xpY2spPVwicmVtb3ZlSXRlbShvcHRpb25TZWxlY3RlZClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+Y2xvc2U8L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWl0ZW1cIiAgKm5nSWY9XCJzZWxlY3RlZExhYmVsTXVsdGlDb3VudCA+PSAxXCI+XG4gICAgICAgICAgICAgICAgK3t7c2VsZWN0ZWRMYWJlbE11bHRpQ291bnR9fSBcbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICAgIDxsYWJlbD57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgd2NvLXNtYXJ0LXNlbGVjdC0tYXJyb3dcIj57eyBJY29uTWF0ZXJpYWwgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnRTZWxlY3QtLWJveFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnd2NvLXNtYXJ0U2VsZWN0LS1ib3gtLW9wZW4nOiBzaG93TGlzdCAmJiAhYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlZFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndjby1zbWFydFNlbGVjdC0taXNNb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VMaXN0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5IGJ0bi1vdXRsaW5lIG1iLW5hbm9cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIGZlY2hhclxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaVxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdGVkLWZpbHRlclwiXG4gICAgICAgICAgICAqbmdJZj1cInNob3dMaXN0ICYmIHNob3dTZWFyY2hcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJTZWFyY2hcIlxuICAgICAgICAgICAgICAoa2V5dXApPVwib25GaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWFyY2ggdGhyb3VnaCBzaXRlIGNvbnRlbnRcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwiaSArIDFcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd3Y28tc21hcnQtc2VsZWN0ZWQnOiBzZWxlY3RlZFZhbHVlKG9wdGlvbiksXG4gICAgICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC1kaXNhYmxlZC1vcHRpb24nOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ3djLXNtYXJ0LXNlbGVjdC12aWV3LW9ubHktb3B0aW9uJzogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3Qob3B0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsLXByZWZpeFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZVByZWZpeCA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUob3B0aW9uKSA/IFwiY2hlY2tfYm94XCIgOiBcImNoZWNrX2JveF9vdXRsaW5lX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGVQcmVmaXggPT09ICdyYWRpbydcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlKG9wdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICA/IFwicmFkaW9fYnV0dG9uX2NoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJyYWRpb19idXR0b25fdW5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAhIW9wdGlvbi5pY29uUHJlZml4ICYmXG4gICAgICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAncmFkaW8nICYmXG4gICAgICAgICAgICAgICAgICB0eXBlUHJlZml4ICE9PSAnY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5pY29uUHJlZml4IH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1sYWJlbFwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9uLmh0bWxMYWJlbFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZGlzcGxheS1ib2R5XCI+e3sgdGV4dEVtcHR5IH19PC9wPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICAiXX0=
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb25lbnRzL3NyYy9saWIvc21hcnQtc2VsZWN0L3NtYXJ0LXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3NtYXJ0LXNlbGVjdC9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBc0I5RSxNQUFNLE9BQU8sb0JBQW9CO0lBaUVYO0lBaEV5QixPQUFPLENBRXRDO0lBRUosUUFBUSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO0lBRXRFLG9CQUFvQjtJQUVwQixPQUFPLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTlELDJCQUEyQjtJQUNsQixTQUFTLENBQVU7SUFFbkIsWUFBWSxHQUFHLGlCQUFpQixDQUFDO0lBRTFDLDJCQUEyQjtJQUUzQixXQUFXLEdBQUcscUJBQXFCLENBQUM7SUFFcEMscUJBQXFCO0lBQ1osS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVyQixn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bGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU21hcnRTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXNlbGVjdC1vcHRpb25zLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3djby1zbWFydC1zZWxlY3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbWFydFNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU21hcnRTZWxlY3RDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTbWFydFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBAQ29udGVudENoaWxkcmVuKFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50KSBvcHRpb25zOlxuICAgIHwgUXVlcnlMaXN0PFNtYXJ0U2VsZWN0T3B0aW9uQ29tcG9uZW50PlxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0eXBlOiBzdHJpbmc7IHZhbHVlOiBhbnkgfT4oKTtcblxuICAvKiBJZCBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKVxuICBpbnB1dElkID0gJ3NlbGVjdF8nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIpO1xuXG4gIC8qIEF0dHIgbmFtZSBkbyBlbGVtZW50byAqL1xuICBASW5wdXQoKSBpbnB1dE5hbWU/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgSWNvbk1hdGVyaWFsID0gJ2Fycm93X2Ryb3BfZG93bic7XG5cbiAgLyogUGxhY2Vob2xkZXIgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyID0gJ1NlbGVjaW9uZSB1bWEgb3DDp8Ojbyc7XG5cbiAgLyogTGFiZWwgZG8gc2VsZWN0ICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyAnO1xuXG4gIC8qIEZvcsOnYSB2aXN1YWxpemHDp8OjbyBkbyBlcnJvICovXG4gIEBJbnB1dCgpIHNob3dFcnJvciA9IGZhbHNlO1xuXG4gIC8qIE1vc3RyYXIgY2FtcG9zIGRlIGJ1c2NhICovXG4gIEBJbnB1dCgpXG4gIHNob3dTZWFyY2ggPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlclNlYXJjaDogc3RyaW5nID0gJ0J1c2Nhcic7XG5cbiAgLyogVGV4dG8gZXhpYmlkbyBxdWFuZG8gbsOjbyBow6EgcmVzdWx0YWRvcyAqL1xuICBASW5wdXQoKVxuICB0ZXh0RW1wdHkgPSAnTsOjbyBow6EgcmVzdWx0YWRvcyBwYXJhIGEgYnVzY2EnO1xuXG4gIC8qIGhhYmlsaXRhciBvcMOnw6NvIGRlIG11bHRpcGxhcyBzZWxlw6fDtWVzICovXG4gIEBJbnB1dCgpXG4gIG11bHRpU2VsZWN0ID0gZmFsc2U7XG5cbiAgLyogTGltaXRhciB2aXN1YWxpemHDp8OjbyBkZSBpdGVucyBzZWxlY2lvbmFkb3MgKi9cbiAgQElucHV0KClcbiAgc2hvd01heFNlbGVjdGVkTGFiZWwgPSAwO1xuXG4gIC8qIFRpcG9zIHByw6kgZGVmaW5pZG9zIGRlIGNoZWNrYm94LCByYWRpbyBvdSBudWxsICovXG4gIEBJbnB1dCgpXG4gIHR5cGVQcmVmaXg6ICdjaGVja2JveCcgfCAncmFkaW8nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyogQ29uZmlybWHDp8OjbyBkZSBvIGNhbXBvIMOpIG9icmlnYXTDs3JpbyAqL1xuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogYW55IHwgdW5kZWZpbmVkO1xuXG4gIGlzTW9iaWxlID0gd2luZG93LmlubmVyV2lkdGggPD0gNzY4O1xuXG4gIGZvcm1WYWx1ZTogYW55O1xuICBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgcHJldmVudEVzY2FwZUZvY3VzID0gZmFsc2U7XG4gIGF1dG9jb21wbGV0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gIHNob3dMaXN0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBvblRvdWNoZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICB9O1xuXG4gIC8vLyBlc3RhZG9zIGRvIGNvbnRyb2xcblxuICBuZ09uSW5pdCgpIHt9XG5cblxuICAvLyBDYXJyZWdhIG9zIHZhbG9yZXMgZG8gZm9ybUNvbnRyb2wgcGFyYSBvIGNvbXBvbmVudGUgZSByZW5kZXJpemEgYXMgb3DDp8O1ZXNcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wudmFsdWUgPT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZm9ybVZhbHVlID0gb2JqO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5zZXRWYWx1ZShvYmopO1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICB9XG5cbiAgdmFsaWRhdGUoX2NvbnRyb2w6IEZvcm1Db250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbCA9IF9jb250cm9sIHx8IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHJldHVybiBfY29udHJvbC52YWxpZGF0b3I7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC50eXBlID09PSAndXBkYXRlVmFsdWUnKSB7XG4gICAgICAgIGZuKGV2ZW50LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dFcnJvclxuICAgICAgPyB0aGlzLnNob3dFcnJvclxuICAgICAgOiB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuaW52YWxpZCAmJlxuICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC50b3VjaGVkICYmXG4gICAgICAgICAgIXRoaXMuc2hvd0xpc3Q7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29udHJvbC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvLy8gQWJlcnR1cmEgZSBmZWNoYW1lbnRvIGRhIGxpc3RhXG4gIG9uRm9jdXNJbihmb2N1cyA9IGZhbHNlKSB7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNGb2N1c2VkID0gZm9jdXM7XG4gICAgdGhpcy5zaG93TGlzdCA9IGZvY3VzO1xuICAgIHRoaXMucG9zaXRpb25Cb3goKTtcbiAgfVxuXG4gIC8vLyBoZXJlIGZ1bmN0aW9uIHRvIHBvc2l0aW9uIGJveCBlbGVtZW50IHRvcCBvciBib3R0b21cbiAgcG9zaXRpb25Cb3goKSB7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb21wb25lbnRCb3gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50Qm94UG9zaXRpb24gPSBjb21wb25lbnRCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaW5wdXRJZCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1maWVsZCcpO1xuICAgIGNvbnN0IGJveCA9IGNvbXBvbmVudEJveC5xdWVyeVNlbGVjdG9yKCcud2NvLXNtYXJ0U2VsZWN0LS1ib3gnKTtcbiAgICBjb25zdCBpbnB1dElkUG9zaXRpb24gPSBpbnB1dElkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICBjb25zdCBwYWdlSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGlmIChib3ggJiYgY29tcG9uZW50Qm94UG9zaXRpb24ueSArIDMyMCA+PSBwYWdlSGVpZ2h0KSB7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gaW5wdXRJZFBvc2l0aW9uICsgJ3B4JztcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgdmFyKC0td2NvLXNtYXJ0LXNlbGVjdC1ib3gtbWF4LWhlaWdodClgO1xuICAgICAgYm94LnN0eWxlLnRvcCA9ICdpbml0aWFsJztcbiAgICB9IGVsc2Uge1xuICAgICAgYm94LnN0eWxlLnRvcCA9IGlucHV0SWRQb3NpdGlvbiArICdweCc7XG4gICAgICBib3guc3R5bGUuYm90dG9tID0gJ2luaXRpYWwnO1xuICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGBhdXRvYDtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdChvcHRpb24/OiBhbnkpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi52aWV3T25seSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5mb3JtVmFsdWU7XG5cbiAgICBpZiAodGhpcy5tdWx0aVNlbGVjdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb24udmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmNvbXBhcmVNdWx0aVZhbHVlc0FycmF5KG9wdGlvbik7XG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlT3B0aW9uID0gbGlzdC5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICBpZiAoaGFzVmFsdWVPcHRpb24pIHtcbiAgICAgICAgICB0aGlzLmZvcm1WYWx1ZSA9IGxpc3RcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIWl0ZW0uc2VsZWN0ZWQpXG4gICAgICAgICAgICAubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvcm1WYWx1ZT8uaW5kZXhPZihvcHRpb24udmFsdWUpO1xuICAgICAgICBpZiAoaW5kZXggIT09IHVuZGVmaW5lZCAmJiBpbmRleCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWU/LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsdWUgPSBbLi4uKHRoaXMuZm9ybVZhbHVlIHx8IFtdKSwgb3B0aW9uLnZhbHVlXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5hdXRvY29tcGxldGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtVmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnRyb2wuc2V0VmFsdWUob3B0aW9uLnZhbHVlKTtcbiAgICAgIHRoaXMuc2hvd0xpc3QgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAob2xkVmFsdWUgIT09IHRoaXMuZm9ybVZhbHVlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyB0eXBlOiAndXBkYXRlVmFsdWUnLCB2YWx1ZTogdGhpcy5mb3JtVmFsdWUgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gIH1cblxuICAvLyBTaG93IGxhYmVsIHNwYW5cbiAgZ2V0IHNlbGVjdGVkTGFiZWwoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnM/LmZpbmQoXG4gICAgICAob3B0aW9uKSA9PlxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKG9wdGlvbi52YWx1ZSkpID09PVxuICAgICAgICB0aGlzLm5vcm1hbGl6ZVRleHQoU3RyaW5nKHRoaXMuZm9ybVZhbHVlKSlcbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbj8ubGFiZWwgfHwgJyAnO1xuICB9XG5cbiAgLy8gc2hvdyBsYWJlbCBtdWx0aSBzZWxlY3RcbiAgZ2V0IHNlbGVjdGVkTGFiZWxNdWx0aSgpOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LmZpbHRlcigob3B0aW9uKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbi52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZVZhbHVlQXJyYXkob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghc2VsZWN0ZWRPcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWwpIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCAmJlxuICAgICAgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IHRoaXMuc2hvd01heFNlbGVjdGVkTGFiZWxcbiAgICApIHtcbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnMuc2xpY2UoMCwgdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlbGVjdGVkT3B0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVUb0FycmF5KG9wdGlvbnM6IGFueSkge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvcHRpb25zKTtcbiAgICBjb25zdCB2YWx1ZTogYW55W10gPSBbXTtcbiAgICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBvcHRpb25zW2tleV0gJiZcbiAgICAgICAgb3B0aW9uc1trZXldICE9PSAnJyAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9uc1trZXldICE9PSAnb2JqZWN0JyAmJlxuICAgICAgICB0eXBlb2Ygb3B0aW9uc1trZXldICE9PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBvcHRpb25zW2tleV0gIT09ICdib29sZWFuJ1xuICAgICAgKSB7XG4gICAgICAgIHZhbHVlLnB1c2gob3B0aW9uc1trZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmVWYWx1ZUFycmF5KG9wdGlvbjogYW55LCB2YWx1ZSA9IHRoaXMuZm9ybVZhbHVlKTogYW55W10ge1xuICAgIGlmIChvcHRpb24gJiYgb3B0aW9uLnZhbHVlKSB7XG4gICAgICBjb25zdCB2YWx1ZXNJdGVtcyA9IHRoaXMudmFsdWVUb0FycmF5KG9wdGlvbi52YWx1ZSk7XG4gICAgICByZXR1cm4gdmFsdWUuc29tZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1BcnJheSA9IHRoaXMudmFsdWVUb0FycmF5KGl0ZW0pO1xuICAgICAgICByZXR1cm4gaXRlbUFycmF5LmV2ZXJ5KChpdGVtVmFsdWU6IGFueSkgPT5cbiAgICAgICAgICB2YWx1ZXNJdGVtcy5pbmNsdWRlcyhpdGVtVmFsdWUpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlTXVsdGlWYWx1ZXNBcnJheShvcHRpb246IGFueSwgdmFsdWUgPSB0aGlzLmZvcm1WYWx1ZSk6IGFueVtdIHtcbiAgICBpZiAob3B0aW9uICYmIG9wdGlvbi52YWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWVzSXRlbXMgPSB0aGlzLnZhbHVlVG9BcnJheShvcHRpb24udmFsdWUpO1xuICAgICAgY29uc3QgZm9ybVZhbHVlQXJyYXkgPSB2YWx1ZS5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBpdGVtQXJyYXkgPSB0aGlzLnZhbHVlVG9BcnJheShpdGVtKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbmRleCxcbiAgICAgICAgICBpdGVtLFxuICAgICAgICAgIHNlbGVjdGVkOiBpdGVtQXJyYXkuc29tZSgoaXRlbVZhbHVlOiBhbnkpID0+XG4gICAgICAgICAgICB2YWx1ZXNJdGVtcy5pbmNsdWRlcyhpdGVtVmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZSBpdGVtc1xuICAgICAgY29uc3QgdW5pcXVlRm9ybVZhbHVlQXJyYXkgPSBBcnJheS5mcm9tKFxuICAgICAgICBuZXcgU2V0KGZvcm1WYWx1ZUFycmF5Lm1hcCgoaXRlbTogYW55KSA9PiBKU09OLnN0cmluZ2lmeShpdGVtKSkpXG4gICAgICApLm1hcCgoaXRlbTogYW55KSA9PiBKU09OLnBhcnNlKGl0ZW0pKTtcblxuICAgICAgcmV0dXJuIHVuaXF1ZUZvcm1WYWx1ZUFycmF5O1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRMYWJlbE11bHRpQ291bnQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBzaG93ID0gdGhpcy5zaG93TWF4U2VsZWN0ZWRMYWJlbCB8fCAwO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucz8uZmlsdGVyKChvcHRpb24pID0+XG4gICAgICB0aGlzLmZvcm1WYWx1ZT8uaW5jbHVkZXMob3B0aW9uLnZhbHVlKVxuICAgICk7XG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgaWYgKHNob3cgPiAwICYmIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiBzaG93KSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAtIHNob3c7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZW1vdmVJdGVtKG9wdGlvbjogYW55KSB7XG4gICAgdGhpcy5vblNlbGVjdChvcHRpb24pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBvbktleVByZXNzKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICB9XG5cbiAgb25GaWx0ZXIoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVuZGVyQm94T3B0aW9ucyh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgb25SZXNpemUoKSB7XG4gICAgdGhpcy5yZW5kZXJCb3hPcHRpb25zKCk7XG4gICAgdGhpcy5wb3NpdGlvbkJveCgpO1xuICB9XG5cbiAgb25Gb2N1c091dCgpIHtcbiAgICBpZiAoIXRoaXMucHJldmVudEVzY2FwZUZvY3VzICYmICF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93TGlzdCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTGlzdCgpIHtcbiAgICB0aGlzLnByZXZlbnRFc2NhcGVGb2N1cyA9IHRydWU7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dMaXN0ID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3RlZFZhbHVlKG9wdGlvbjogeyB2YWx1ZTogYW55OyBsYWJlbDogc3RyaW5nOyBzYWZlSHRtbENvbnRlbnQ6IGFueSB9KSB7XG4gICAgaWYgKHRoaXMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uLnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAob3B0aW9uICYmIG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlc0l0ZW1zID0gdGhpcy52YWx1ZVRvQXJyYXkob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWUuc29tZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtQXJyYXkgPSB0aGlzLnZhbHVlVG9BcnJheShpdGVtKTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtQXJyYXkuZXZlcnkoKGl0ZW1WYWx1ZTogYW55KSA9PlxuICAgICAgICAgICAgICB2YWx1ZXNJdGVtcy5pbmNsdWRlcyhpdGVtVmFsdWUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWU/LmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5mb3JtVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckJveE9wdGlvbnMoZmlsdGVyVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMgfHwgIXRoaXMub3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcbiAgICAgID8ubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgIGljb25QcmVmaXg6IG9wdGlvbi5pY29uUHJlZml4LFxuICAgICAgICAgIGh0bWxMYWJlbDogb3B0aW9uLnNhZmVIdG1sQ29udGVudCB8fCBvcHRpb24ubGFiZWwsXG4gICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICB2aWV3T25seTogb3B0aW9uLnZpZXdPbmx5LFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAoIWZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEZpbHRlciA9IHRoaXMubm9ybWFsaXplVGV4dChmaWx0ZXJWYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRMYWJlbCA9IHRoaXMubm9ybWFsaXplVGV4dChcbiAgICAgICAgICBvcHRpb24uaHRtbExhYmVsPy50b1N0cmluZygpIHx8ICcnXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkTGFiZWwuaW5jbHVkZXMobm9ybWFsaXplZEZpbHRlcik7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplVGV4dCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvW1xcV19dKy9nLCAnJykgLy8gUmVtb3ZlIGNhcmFjdGVyZXMgZXNwZWNpYWlzIGUgc3VibGluaGFkb3NcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwid2NvLXNtYXJ0U2VsZWN0XCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd3Y28tc21hcnRTZWxlY3QtLW9wZW4nOiBzaG93TGlzdCxcbiAgICAnd2NvLXNtYXJ0U2VsZWN0LS1pc01vYmlsZSc6IGlzTW9iaWxlLFxufVwiXG4gIChyZXNpemUpPVwib25SZXNpemUoKVwiXG4gIChtb3VzZWxlYXZlKT1cIm9uRm9jdXNPdXQoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCIgW25nQ2xhc3NdPVwieydmb3JtLS1lcnJvcic6IGhhc0Vycm9yfVwiPlxuICAgIDxpbnB1dFxuICAgICAgKm5nSWY9XCIhbXVsdGlTZWxlY3RcIlxuICAgICAgY2xhc3M9XCJmb3JtLWZpZWxkX19pbnB1dFwiXG4gICAgICBbZGlzYWJsZWRdPVwiYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlZFwiXG4gICAgICBpZD1cInt7IGlucHV0SWQgPyBpbnB1dElkIDogJycgfX1cIlxuICAgICAgbmFtZT1cInt7IGlucHV0TmFtZSA/IGlucHV0TmFtZSA6ICcnIH19XCJcbiAgICAgIChjbGljayk9XCJvbkZvY3VzSW4odHJ1ZSlcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGtleXVwLmVzY2FwZSk9XCJvbkZvY3VzT3V0KClcIlxuICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZExhYmVsXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY2lvbmUgdW1hIG9ww6fDo29cIlxuICAgIC8+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJtdWx0aVNlbGVjdFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGRfX2lucHV0IHJlYWRvbmx5IG11bHRpU2VsZWN0XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnZm9ybS1maWVsZC0tZXJyb3InOiBoYXNFcnJvciwgJ2Zvcm0tZmllbGQtLWRpc2FibGVkJzogYXV0b2NvbXBsZXRlQ29udHJvbC5kaXNhYmxlZCB9XCJcbiAgICAgIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAoY2xpY2spPVwib25Gb2N1c0luKHRydWUpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChrZXl1cC5lc2NhcGUpPVwib25Gb2N1c091dCgpXCJcbiAgICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZExhYmVsTXVsdGkubGVuZ3RoXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB8fCAnU2VsZWNpb25lIHVtYSBvcMOnw6NvJyB9fTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRMYWJlbE11bHRpLmxlbmd0aFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IG9wdGlvblNlbGVjdGVkIG9mIHNlbGVjdGVkTGFiZWxNdWx0aVwiIGNsYXNzPVwid2NvLXNtYXJ0LXNlbGVjdC1pdGVtXCI+XG4gICAgICAgICAgICAgIHt7b3B0aW9uU2VsZWN0ZWQubGFiZWx9fSBcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LXJlbW92ZVwiIChjbGljayk9XCJyZW1vdmVJdGVtKG9wdGlvblNlbGVjdGVkKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5jbG9zZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtaXRlbVwiICAqbmdJZj1cInNlbGVjdGVkTGFiZWxNdWx0aUNvdW50ID49IDFcIj5cbiAgICAgICAgICAgICAgICAre3tzZWxlY3RlZExhYmVsTXVsdGlDb3VudH19IFxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgICAgPGxhYmVsPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucyB3Y28tc21hcnQtc2VsZWN0LS1hcnJvd1wiPnt7IEljb25NYXRlcmlhbCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIndjby1zbWFydFNlbGVjdC0tYm94XCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICd3Y28tc21hcnRTZWxlY3QtLWJveC0tb3Blbic6IHNob3dMaXN0ICYmICFhdXRvY29tcGxldGVDb250cm9sLmRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2NvLXNtYXJ0U2VsZWN0LS1pc01vYmlsZS1jbG9zZVwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZUxpc3QoKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnkgYnRuLW91dGxpbmUgbWItbmFub1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgZmVjaGFyXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0ZWQtZmlsdGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0xpc3QgJiYgc2hvd1NlYXJjaFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclNlYXJjaFwiXG4gICAgICAgICAgICAgIChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaCB0aHJvdWdoIHNpdGUgY29udGVudFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCJpICsgMVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3djby1zbWFydC1zZWxlY3RlZCc6IHNlbGVjdGVkVmFsdWUob3B0aW9uKSxcbiAgICAgICAgICAgICAgICAnd2Mtc21hcnQtc2VsZWN0LWRpc2FibGVkLW9wdGlvbic6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnd2Mtc21hcnQtc2VsZWN0LXZpZXctb25seS1vcHRpb24nOiBvcHRpb24udmlld09ubHksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChvcHRpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndjby1zbWFydC1zZWxlY3QtbGFiZWwtcHJlZml4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlUHJlZml4ID09PSAnY2hlY2tib3gnXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZShvcHRpb24pID8gXCJjaGVja19ib3hcIiA6IFwiY2hlY2tfYm94X291dGxpbmVfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZVByZWZpeCA9PT0gJ3JhZGlvJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJyYWRpb19idXR0b25fY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcInJhZGlvX2J1dHRvbl91bmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICEhb3B0aW9uLmljb25QcmVmaXggJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdyYWRpbycgJiZcbiAgICAgICAgICAgICAgICAgIHR5cGVQcmVmaXggIT09ICdjaGVja2JveCdcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmljb25QcmVmaXggfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ3Y28tc21hcnQtc2VsZWN0LWxhYmVsXCJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb24uaHRtbExhYmVsXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJkaXNwbGF5LWJvZHlcIj57eyB0ZXh0RW1wdHkgfX08L3A+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgICJdfQ==
@@ -12,11 +12,11 @@ export class TableComponent {
12
12
  return this.templates[templateName];
13
13
  }
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
19
+ args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
20
20
  }], ctorParameters: () => [], propDecorators: { data: [{
21
21
  type: Input
22
22
  }], headers: [{
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
26
26
  }], templates: [{
27
27
  type: Input
28
28
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLElBQUksR0FBVSxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFhLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQXdDLEVBQUUsQ0FBQztJQUU3RCxnQkFBZSxDQUFDO0lBRWhCLFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQzt1R0FWVSxjQUFjOzJGQUFkLGNBQWMsK0pDWDNCLHMxREE0REEsNGdGRG5EWSxZQUFZOzsyRkFFWCxjQUFjO2tCQVAxQixTQUFTOytCQUNFLFdBQVcsY0FHVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7d0RBR2QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlciB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyczogVGFibGVIZWFkZXJbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZW1wbGF0ZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldFRlbXBsYXRlKHRlbXBsYXRlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzW3RlbXBsYXRlTmFtZV07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Y28tdGFibGUtYXJlYVwiPlxuICA8dGFibGUgY2xhc3M9XCJ3Y28tdGFibGVcIiByb2xlPVwidGFibGVcIj5cbiAgICA8dGhlYWQgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgc2NvcGU9XCJjb2xcIj57eyBoZWFkZXIubGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtpZF09XCJyb3dbJ2lkJ10gPyAncm93LScgKyByb3dbJ2lkJ10gOiBpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCJcbiAgICAgICAgICAgIHJvbGU9XCJjZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiaGVhZGVyLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoaGVhZGVyLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbaGVhZGVyLmtleV0sIHJvdzogcm93LCBpbmRleDogaSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkZXIudGVtcGxhdGVcIj57e1xuICAgICAgICAgICAgICByb3dbaGVhZGVyLmtleV1cbiAgICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgWzEsIDIsIDMsIDQsIDVdXCI+XG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaGVhZGVyc1wiIHJvbGU9XCJjZWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2NvLXNrZWxldG9uIG10LTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgcC14eHNcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGF0YS5sZW5ndGhcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwid2NvLXRhYmxlX19yb3ctLWVtcHR5XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImhlYWRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXRhYmxlX19jZWxsLS1lbXB0eVwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmVtcHR5XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvbmVudHMvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9uZW50cy9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxjQUFjO0lBQ2hCLElBQUksR0FBVSxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDNUIsT0FBTyxHQUFhLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQXdDLEVBQUUsQ0FBQztJQUU3RCxnQkFBZSxDQUFDO0lBRWhCLFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQzt1R0FWVSxjQUFjOzJGQUFkLGNBQWMsK0pDWDNCLHMxREE0REEsOGdGRG5EWSxZQUFZOzsyRkFFWCxjQUFjO2tCQVAxQixTQUFTOytCQUNFLFdBQVcsY0FHVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7d0RBR2QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUhlYWRlciB9IGZyb20gJy4vdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2NvLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyczogVGFibGVIZWFkZXJbXSA9IFtdO1xuICBASW5wdXQoKSBsb2FkaW5nPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0ZW1wbGF0ZXM6IHsgW2tleTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldFRlbXBsYXRlKHRlbXBsYXRlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzW3RlbXBsYXRlTmFtZV07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3Y28tdGFibGUtYXJlYVwiPlxuICA8dGFibGUgY2xhc3M9XCJ3Y28tdGFibGVcIiByb2xlPVwidGFibGVcIj5cbiAgICA8dGhlYWQgKm5nSWY9XCJkYXRhICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCIgc2NvcGU9XCJjb2xcIj57eyBoZWFkZXIubGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8dHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcm93IG9mIGRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtpZF09XCJyb3dbJ2lkJ10gPyAncm93LScgKyByb3dbJ2lkJ10gOiBpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhlYWRlciBvZiBoZWFkZXJzXCJcbiAgICAgICAgICAgIHJvbGU9XCJjZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtbGFiZWxdPVwiaGVhZGVyLmxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyLnRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUoaGVhZGVyLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3dbaGVhZGVyLmtleV0sIHJvdzogcm93LCBpbmRleDogaSB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoZWFkZXIudGVtcGxhdGVcIj57e1xuICAgICAgICAgICAgICByb3dbaGVhZGVyLmtleV1cbiAgICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgWzEsIDIsIDMsIDQsIDVdXCI+XG4gICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaGVhZGVyc1wiIHJvbGU9XCJjZWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2NvLXNrZWxldG9uIG10LTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmxvY2sgcC14eHNcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGF0YS5sZW5ndGhcIj5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyIGNsYXNzPVwid2NvLXRhYmxlX19yb3ctLWVtcHR5XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cImhlYWRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2NvLXRhYmxlX19jZWxsLS1lbXB0eVwiXG4gICAgICAgICAgICByb2xlPVwiY2VsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmVtcHR5XCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
@@ -1749,11 +1749,11 @@ class TableComponent {
1749
1749
  return this.templates[templateName];
1750
1750
  }
1751
1751
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1752
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1752
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableComponent, isStandalone: true, selector: "wco-table", inputs: { data: "data", headers: "headers", loading: "loading", templates: "templates" }, ngImport: i0, template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
1753
1753
  }
1754
1754
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableComponent, decorators: [{
1755
1755
  type: Component,
1756
- args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
1756
+ args: [{ selector: 'wco-table', standalone: true, imports: [CommonModule], template: "<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n", styles: [".wco-table-area{--wco-table-margin: var(--wco-spacing-xxs);--wco-table-padding: var(--wco-spacing-xxxs);--wco-table-color-header-label: var(--wco-color-neutral-900);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-header-line: var(--wco-color-neutral-500);--wco-table-color-bg-cell: var(--wco-color-neutral-50);--wco-table-font-size-header: var(--wco-font-size-xs);--wco-table-font-size-cell: var(--wco-font-size-xxs);display:block;width:100%;max-width:var(--wco-table-max-size, 100%);overflow-x:auto;-webkit-overflow-scrolling:touch}.wco-table-area table.wco-table{width:100%;border-spacing:0}@media (min-width: 800px) and (max-width: 1400px){.wco-table-area table.wco-table{min-width:900px}}@media (min-width: 800px){.wco-table-area table.wco-table ::ng-deep tr:not(.wco-table__row--empty):hover{--wco-table-color-header-line: var(--wco-color-primary-500);--wco-table-color-header-cell: var(--wco-color-neutral-700);--wco-table-color-bg-cell: var(--wco-color-neutral-100)}}.wco-table-area table.wco-table ::ng-deep td{text-align:left;padding:var(--wco-table-padding);font-size:var(--wco-table-font-size-cell);line-height:var(--wco-font-lineheight-500);color:var(--wco-table-color-header-cell);border-bottom:1px solid var(--wco-table-color-header-line);background-color:var(--wco-table-color-bg-cell)}.wco-table-area table.wco-table ::ng-deep td.wco-table__cell--empty{--wco-table-color-header-line: transparent}.wco-table-area table.wco-table ::ng-deep thead tr{margin-bottom:var(--wco-table-margin)}.wco-table-area table.wco-table ::ng-deep thead tr th{text-align:left;font-size:var(--wco-table-font-size-header, 16px);color:var(--wco-table-color-header-label, var(--wco-color-neutral-900));padding:var(--wco-table-padding);font-weight:600}@media (max-width: 800px){.wco-table-area{--wco-table-padding: var(--wco-spacing-xxxs)}.wco-table-area table{background-color:transparent}.wco-table-area table th{display:none}.wco-table-area table tr{display:block;margin-bottom:12px;height:fit-content;border:1px solid var(--wco-color-bg)}.wco-table-area table tr>td{display:block;width:100%;border:1px solid var(--wco-color-neutral-100)}.wco-table-area table tr>td:first-child{background-color:var(--wco-color-bg)}.wco-table-area table tr>td:last-child{border:none}.wco-table-area table tr>td:not([data-label=\"\"]):before{content:attr(data-label) \": \";font-weight:700;margin-right:.5em;color:var(--wco-color-neutral-700)}.wco-table-area table tr>td:not([data-label]):before{content:\"\"}}\n"] }]
1757
1757
  }], ctorParameters: () => [], propDecorators: { data: [{
1758
1758
  type: Input
1759
1759
  }], headers: [{
@@ -1 +1 @@
1
- {"version":3,"file":"wizco-fenixds-ngx.mjs","sources":["../../../projects/ngx-components/src/lib/step/step.component.ts","../../../projects/ngx-components/src/lib/step/step.component.html","../../../projects/ngx-components/src/lib/stepper/stepper.component.ts","../../../projects/ngx-components/src/lib/stepper/stepper.component.html","../../../projects/ngx-components/src/lib/upload/upload.component.ts","../../../projects/ngx-components/src/lib/upload/upload.component.html","../../../projects/ngx-components/src/lib/msg-box-feedback/msg-box-feedback.component.ts","../../../projects/ngx-components/src/lib/msg-box-feedback/msg-box-feedback.component.html","../../../projects/ngx-components/src/lib/tabs/tabs.component.ts","../../../projects/ngx-components/src/lib/tabs/tabs.component.html","../../../projects/ngx-components/src/lib/pagination/pagination.component.ts","../../../projects/ngx-components/src/lib/pagination/pagination.component.html","../../../projects/ngx-components/src/lib/user-avatar/user-avatar.component.ts","../../../projects/ngx-components/src/lib/user-avatar/user-avatar.component.html","../../../projects/ngx-components/src/lib/smart-select/smart-select-options.component.ts","../../../projects/ngx-components/src/lib/smart-select/smart-select.component.ts","../../../projects/ngx-components/src/lib/smart-select/smart-select.component.html","../../../projects/ngx-components/src/lib/timeline/timeline.component.ts","../../../projects/ngx-components/src/lib/timeline/timeline.component.html","../../../projects/ngx-components/src/lib/preview-file/preview-file.component.ts","../../../projects/ngx-components/src/lib/preview-file/preview-file.component.html","../../../projects/ngx-components/src/lib/modal-alert/modal-alert.component.ts","../../../projects/ngx-components/src/lib/modal-alert/modal-alert.component.html","../../../projects/ngx-components/src/lib/table/table.component.ts","../../../projects/ngx-components/src/lib/table/table.component.html","../../../projects/ngx-components/src/public-api.ts","../../../projects/ngx-components/src/wizco-fenixds-ngx.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wco-step',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class StepComponent {\n\n /**\n * Se o step está ativo\n * @param {boolean} active\n */\n @Input() active: boolean = false;\n\n /**\n * Texto do label do step\n */\n @Input() label: string = '';\n\n /**\n * Ícone do step (opcional) - deve ser um ícone do material icon\n */\n @Input() iconName: string | undefined = undefined;\n\n /**\n * Texto do bulletValue do step (opcional) - deve ser um texto de 1 a 2 caracteres\n */\n @Input() bulletValue: string | undefined = undefined;\n\n /**\n * Sentido do stepper (horizontal ou vertical)\n */\n @Input() isVertical: boolean = true;\n\n\n /**\n * Desabilitar linha inicial\n */\n @Input() lineStart: boolean = true;\n\n /**\n * Desabilitar linha final\n */\n @Input() lineEnd: boolean = true;\n\n /**\n * Classe do step\n *\n * finalized - step finalizado\n * current - step atual\n * waiting - step aguardando\n * error - step com erro\n *\n * @param {string} status\n */\n @Input() status: 'finalized' | 'current' | 'waiting' | 'error' | string = 'current';\n\n /**\n * size do step\n * @param {string} size\n */\n @Input() size: 'small' | 'medium' | 'large' | string = 'small';\n\n\n /**\n * Se o step é clicável\n * @param {boolean} clickable\n */\n @Input() hasClick: boolean = false;\n\n /**\n * Função que retorna o valor do ícone ou bullet\n */\n @Output() clicked = new EventEmitter<number>()\n\n\n\n\n\n constructor() {}\n\n /**\n * se o item do stepper estive com o evento de clicked true, ele retorna qual elemento é selecionado para o componente pai\n * */\n clickedItem() {\n if(this.hasClick) {\n return\n }\n this.clicked.emit()\n }\n\n}\n","<div class=\"step\"\n [class]=\"'step-status--' + status + ' step-size--' + size\"\n [ngClass]=\"{\n 'step--vertical': isVertical,\n 'step--horizontal': !isVertical,\n 'step--disabled-linestart': !lineStart,\n 'step--disabled-lineend': !lineEnd,\n 'step--clicked': hasClick,\n 'step--active': active\n }\"\n\n>\n <div class=\"step__line step__line--start\"></div>\n <div class=\"step__bullet\" (click)=\"clickedItem()\">\n <div>\n <span *ngIf=\"iconName && !bulletValue\" class=\"material-icons\">{{iconName}}</span>\n <span *ngIf=\"!iconName && bulletValue\">{{bulletValue}}</span>\n <ng-content select=\"[step-bullet-content]\"></ng-content>\n </div>\n </div>\n <div class=\"step__line step__line--end\"></div>\n <div class=\"step__content\">\n <div class=\"step__title\" (click)=\"clickedItem()\">\n <span *ngIf=\"label\">{{label}}</span>\n <ng-content select=\"[step-title]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport interface StepperClass {\n label?: string;\n className?: 'finalized' | 'current' | 'waiting' | 'error';\n showLineStart: boolean;\n showLineEnd: boolean;\n type?: 'icon' | 'text';\n valueIcon?: string;\n valueBullet?: string;\n clicked?: boolean;\n}\n\n@Component({\n selector: \"wco-stepper\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./stepper.component.html\",\n styleUrls: [\"./stepper.component.scss\"],\n})\nexport class StepperComponent {\n /**\n * Sentido do stepper (horizontal ou vertical)\n */\n @Input() isVertical: boolean = false;\n\n /**\n * Array de itens do stepper StepperClass\n * @param {StepperClass} stepper\n */\n @Input() stepperArray: Array<StepperClass> = [];\n\n /**\n * Função que retorna o valor do ícone ou bullet\n */\n @Output() stepperSelected = new EventEmitter<number>()\n\n constructor() {}\n\n /**\n * se o item do stepper estive com o evento de clicked true, ele retorna qual elemento é selecionado para o componente pai\n * */\n clickedItem(item: StepperClass, index: number) {\n if(!item.clicked) {\n return\n }\n this.stepperSelected.emit(index)\n }\n}\n","<div\n class=\"stepper-vertical\"\n [ngClass]=\"isVertical === true ? 'stepper-vertical' : 'stepper-horizontal'\"\n *ngIf=\"stepperArray\"\n>\n <div class=\"stepper-component\" *ngFor=\"let items of stepperArray; let $i = index\">\n <div class=\"stepper-component__main\">\n <div class=\"stepper-item\" [ngClass]=\"{'stepper-item__clicked': items.clicked}\" (click)=\"clickedItem(items,$i)\">\n <span\n [ngClass]=\"\n items.showLineStart === true\n ? 'stepper-item__line'\n : 'stepper-item__without-line'\n \"\n ></span>\n <span class=\"stepper-item__circle\" [ngClass]=\"items.className\"\n ><span *ngIf=\"items.type === 'icon'\" class=\"icon material-icons\">{{\n items.valueIcon\n }}</span>\n <span *ngIf=\"items.type === 'text'\" class=\"icon\">{{\n items.valueBullet\n }}</span></span\n >\n <span\n [ngClass]=\"\n items.showLineEnd === true\n ? 'stepper-item__line'\n : 'stepper-item__without-line'\n \"\n ></span>\n </div>\n <div class=\"stepper-label\">\n <span\n class=\"stepper-label__text\"\n [ngClass]=\"items.className === 'current' ? 'dark-text' : 'light-text'\"\n >{{ items.label }}</span\n >\n </div>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SkipSelf,\n} from '@angular/core';\n\nimport {\n HttpClient,\n HttpClientModule,\n HttpEventType,\n HttpHeaders,\n HttpParams,\n} from '@angular/common/http';\n\nimport { CommonModule } from '@angular/common';\nimport {\n AngularFileUploaderConfig,\n ReplaceTexts,\n UploadInfoTypes,\n} from './upload.types';\n\n@Component({\n selector: 'wco-file-upload',\n standalone: true,\n imports: [CommonModule, HttpClientModule],\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n})\nexport class UploadComponent implements OnChanges {\n /* Texto de descrição do arquivo */\n @Input() description: string =\n '(XX MB de tamanho máximo e é permitido qualquer tipo de arquivos)';\n /* config <AngularFileUploaderConfig> configuração do componente principais parâmetros */\n @Input() config: AngularFileUploaderConfig = {\n uploadAPI: {\n url: '',\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain;charset=UTF-8',\n },\n responseType: 'json',\n withCredentials: false,\n },\n };\n\n /*\n * Opção de resetar o componente\n */\n @Input() resetUpload = false;\n\n /*\n * Evento Resposta da requisição sendo sucesso ou erro\n */\n @Output('apiResponse') ApiResponse = new EventEmitter();\n /*\n * Evento javascript puro para retorno do arquivo\n */\n @Output() fileSelected: EventEmitter<UploadInfoTypes[]> = new EventEmitter<\n UploadInfoTypes[]\n >();\n\n /**\n * @ignore\n */\n theme: string = '';\n /**\n * @ignore\n */\n id: number = 0;\n /**\n * @ignore\n */\n hideProgressBar: boolean = false;\n /**\n * @ignore\n */\n maxSize: number = 20 * 1024000; // mb to bytes.\n /**\n * @ignore\n */\n uploadAPI: string = '';\n /**\n * @ignore\n */\n method: string = 'POST';\n /**\n * @ignore\n */\n formatsAllowed: string = '*';\n /**\n * @ignore\n */\n formatsAllowedText: string = '';\n /**\n * @ignore\n */\n multiple: boolean = false;\n /**\n * @ignore\n */\n headers: HttpHeaders | { [header: string]: string | string[] } = {};\n /**\n * @ignore\n */\n params: HttpParams | { [param: string]: string | string[] } = {};\n /**\n * @ignore\n */\n responseType: 'json' | 'arraybuffer' | 'blob' | 'text' = 'blob';\n /**\n * @ignore\n */\n hideResetBtn: boolean = false;\n /**\n * @ignore\n */\n hideSelectBtn: boolean = false;\n /**\n * @ignore\n */\n allowedFiles: File[] = [];\n /**\n * @ignore\n */\n notAllowedFiles: {\n fileName: string;\n fileSize: string;\n errorMsg: string;\n }[] = [];\n /**\n * @ignore\n */\n Caption: string[] = [];\n /**\n * @ignore\n */\n isAllowedFileSingle = true;\n /**\n * @ignore\n */\n progressBarShow = false;\n /**\n * @ignore\n */\n enableUploadBtn = false;\n /**\n * @ignore\n */\n uploadMsg = false;\n /**\n * @ignore\n */\n afterUpload = false;\n /**\n * @ignore\n */\n uploadStarted = false;\n /**\n * @ignore\n */\n uploadMsgText: string = '';\n /**\n * @ignore\n */\n uploadMsgClass: string = 'text-success';\n /**\n * @ignore\n */\n uploadPercent: number = 0;\n /**\n * @ignore\n */\n replaceTexts: ReplaceTexts = {\n selectFileBtn: 'Selecionar Arquivo',\n resetBtn: 'Resetar',\n uploadBtn: 'Enviar',\n dragNDropBox: 'Arraste e solte',\n attachPinBtn: 'Anexar Arquivo...',\n afterUploadMsg_success: 'Enviado com sucesso !',\n afterUploadMsg_error: 'Falha no envio !',\n sizeLimit: 'Tamanho máximo',\n };\n /**\n * @ignore\n */\n currentUploads: any[] = [];\n /**\n * @ignore\n */\n fileNameIndex = true;\n /**\n * @ignore\n */\n withCredentials = false;\n /**\n * @ignore\n */\n autoUpload = true;\n /**\n * @ignore\n */\n private idDate: number = +new Date();\n\n constructor(@SkipSelf() private http: HttpClient) {}\n\n /**\n * @ignore\n */\n ngOnChanges(changes: any) {\n // Track changes in Configuration and see if user has even provided Configuration.\n if (changes.config && this.config) {\n // Assign User Configurations to Library Properties.\n this.theme = this.config.theme || '';\n this.id =\n this.config.id ||\n parseInt((this.idDate / 10000).toString().split('.')[1], 10) +\n Math.floor(Math.random() * 20) * 10000;\n this.hideProgressBar = this.config.hideProgressBar || false;\n this.hideResetBtn = this.config.hideResetBtn || false;\n this.hideSelectBtn = this.config.hideSelectBtn || false;\n this.maxSize = (this.config.maxSize || 20) * 1024000; // mb to bytes.\n if (this.config.uploadAPI) {\n this.uploadAPI = this.config.uploadAPI.url;\n this.method = this.config.uploadAPI.method || 'POST';\n this.formatsAllowed = this.config.formatsAllowed || '*';\n this.multiple = this.config.multiple || false;\n this.headers = this.config.uploadAPI.headers || {};\n this.params = this.config.uploadAPI.params || {};\n this.responseType = this.config.uploadAPI.responseType || 'json';\n this.withCredentials = this.config.uploadAPI.withCredentials || false;\n }\n this.formatsAllowedText =\n this.formatsAllowed === '*' ? '' : '(' + this.formatsAllowed + ')';\n this.fileNameIndex = this.config.fileNameIndex === false ? false : true;\n this.autoUpload = this.config.autoUpload || false;\n if (this.config.replaceTexts) {\n this.replaceTexts = {\n ...this.replaceTexts,\n ...this.config.replaceTexts,\n };\n }\n }\n\n // Reset when resetUpload value changes from false to true.\n if (changes.resetUpload) {\n if (changes.resetUpload.currentValue === true) {\n this.resetFileUpload();\n }\n }\n }\n\n /* Função resetar componente */\n resetFileUpload() {\n this.allowedFiles = [];\n this.Caption = [];\n this.notAllowedFiles = [];\n this.uploadMsg = false;\n this.enableUploadBtn = false;\n }\n\n /* Detectar mudança */\n onChange(event: any) {\n this.fileSelected.emit(event);\n this.notAllowedFiles = [];\n const fileExtRegExp: RegExp = /(?:\\.([^.]+))?$/;\n let fileList: FileList;\n\n if (this.afterUpload || !this.multiple) {\n this.allowedFiles = [];\n this.Caption = [];\n this.afterUpload = false;\n }\n\n if (event.type === 'drop') {\n fileList = event.dataTransfer.files;\n } else {\n fileList = event.target.files || event.srcElement.files;\n }\n\n // 'forEach' does not exist on 'filelist' that's why this good old 'for' is used.\n // tslint:disable-next-line: for-of\n for (let i = 0; i < fileList.length; i++) {\n const _currentFileExt: any = fileExtRegExp.exec(fileList[i].name);\n const currentFileExt =\n typeof _currentFileExt[1] === 'string'\n ? _currentFileExt[1].toLowerCase()\n : '';\n const isFormatValid = this.formatsAllowed.includes('*')\n ? true\n : this.formatsAllowed.includes(currentFileExt);\n\n const isSizeValid = fileList[i].size <= this.maxSize;\n\n // Check whether current file format and size is correct as specified in the configurations.\n if (isFormatValid && isSizeValid) {\n this.allowedFiles.push(fileList[i]);\n } else {\n this.notAllowedFiles.push({\n fileName: fileList[i].name,\n fileSize: this.convertSize(fileList[i].size),\n errorMsg: !isFormatValid ? 'Invalid format' : 'Invalid size',\n });\n }\n }\n\n // If there's any allowedFiles.\n if (this.allowedFiles.length > 0) {\n this.enableUploadBtn = true;\n // Upload the files directly if theme is attach pin (as upload btn is not there for this theme) or autoUpload is true.\n if (this.theme === 'attachPin' || this.autoUpload) {\n this.uploadFiles();\n }\n } else {\n this.enableUploadBtn = false;\n }\n\n this.uploadMsg = false;\n this.uploadStarted = false;\n this.uploadPercent = 0;\n event.target.value = null;\n }\n\n /* Função para enviar arquivo para servidor */\n uploadFiles() {\n this.progressBarShow = true;\n this.uploadStarted = true;\n this.notAllowedFiles = [];\n let isError = false;\n this.isAllowedFileSingle = this.allowedFiles.length <= 1;\n const formData = new FormData();\n\n // Add data to be sent in this request\n this.allowedFiles.forEach((file, i) => {\n formData.append(\n this.Caption[i] || 'file' + (this.fileNameIndex ? i : ''),\n this.allowedFiles[i]\n );\n });\n\n this.http\n .request(this.method.toUpperCase(), this.uploadAPI, {\n body: formData,\n reportProgress: true,\n observe: 'events',\n headers: this.headers,\n params: this.params,\n responseType: this.responseType,\n withCredentials: this.withCredentials,\n })\n .subscribe(\n (event) => {\n // Upload Progress\n if (event.type === HttpEventType.UploadProgress) {\n this.enableUploadBtn = false; // button should be disabled if process uploading\n const currentDone = event.loaded / event.total;\n this.uploadPercent = Math.round((event.loaded / event.total) * 100);\n } else if (event.type === HttpEventType.Response) {\n if (event.status === 200 || event.status === 201) {\n // Success\n this.progressBarShow = false;\n this.enableUploadBtn = false;\n this.uploadMsg = true;\n this.afterUpload = true;\n if (!isError) {\n this.uploadMsgText =\n this.replaceTexts.afterUploadMsg_success ||\n 'Successfully Uploaded !';\n this.uploadMsgClass = 'text-success lead';\n }\n } else {\n // Failure\n isError = true;\n this.handleErrors();\n }\n this.ApiResponse.emit(event);\n } else {\n //console.log('Event Other: ', event);\n }\n },\n (error) => {\n // Failure\n isError = true;\n this.handleErrors();\n this.ApiResponse.emit(error);\n }\n );\n }\n\n handleErrors() {\n this.progressBarShow = false;\n this.enableUploadBtn = false;\n this.uploadMsg = true;\n this.afterUpload = true;\n this.uploadMsgText =\n this.replaceTexts.afterUploadMsg_error || 'Error in uploading files';\n this.uploadMsgClass = 'text-danger lead';\n }\n\n removeFile(i: any, sf_na: any) {\n if (sf_na === 'sf') {\n this.allowedFiles.splice(i, 1);\n this.Caption.splice(i, 1);\n } else {\n this.notAllowedFiles.splice(i, 1);\n }\n\n if (this.allowedFiles.length === 0) {\n this.enableUploadBtn = false;\n }\n }\n\n convertSize(fileSize: number): string {\n return fileSize < 1024000\n ? (fileSize / 1024).toFixed(2) + ' KB'\n : (fileSize / 1024000).toFixed(2) + ' MB';\n }\n\n attachpinOnclick() {\n const element = document.getElementById('sel' + this.id);\n if (element !== null) {\n element.click();\n }\n }\n\n drop(event: any) {\n event.stopPropagation();\n event.preventDefault();\n this.onChange(event);\n }\n\n allowDrop(event: any) {\n event.stopPropagation();\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n }\n}\n","<label for=\"sel{{id}}\" class=\"wco-form-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"wco-form-upload__info\">\n <span>Arraste-os aqui ou</span>\n <span>\n <span class=\"material-icons-outlined\">\nupload_file\n</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </span>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MsgBoxFeedbackTypes } from './msg-box-feeback.types';\nimport { animate, style, transition, trigger } from '@angular/animations';\n@Component({\n selector: 'wco-msg-box-feedback',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './msg-box-feedback.component.html',\n styleUrls: ['./msg-box-feedback.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('fadeSlideInOut', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(10px)' }),\n animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),\n ]),\n ]),\n ],\n})\nexport class MsgBoxFeedbackComponent {\n /*\n * Sombra do componente\n * @param {boolean} shadow\n * @default true\n * @example true | false\n */\n @Input() shadow = false;\n\n /*\n * Modo do componente\n * @param {MsgBoxFeedbackTypes['mode']} mode\n * @default 'fit'\n * @example 'fit' | 'full'\n */\n @Input() mode: MsgBoxFeedbackTypes['mode'] = 'fit';\n /*\n * Título do componente\n * @param {MsgBoxFeedbackTypes['title']} title\n */\n @Input() title!: MsgBoxFeedbackTypes['title'];\n /*\n * Mensagem do componente\n * @param {MsgBoxFeedbackTypes['message']} message\n */\n @Input() message!: MsgBoxFeedbackTypes['message'];\n /*\n * Tipo do componente\n * @param {MsgBoxFeedbackTypes['type']} type\n */\n @Input() type: MsgBoxFeedbackTypes['type'] = 'error';\n\n /*\n * Remover botão de fechar\n * @param {boolean} hideClose\n */\n @Input() hideClose = false;\n\n /*\n * Evento emitido ao fechar o componente\n * @param {EventEmitter<any>}\n */\n @Output() onClose = new EventEmitter<any>();\n\n constructor() {}\n\n close(): void {\n this.onClose.emit(true);\n }\n}\n","<div \n [ngClass]=\"'box-feedback box-feedback-' + type + ' mode-' + mode\"\n [className]=\"shadow ? 'mode-shadow' : ''\"\n @fadeSlideInOut>\n <div class=\"box-feedback--icon\" *ngIf=\"type !== 'loading'\">\n <span *ngIf=\"type === 'error'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">error</span>\n <span *ngIf=\"type === 'warning'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">warning</span>\n <span *ngIf=\"type === 'info'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">info</span>\n <span *ngIf=\"type === 'success'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">check_circle</span>\n </div>\n <svg *ngIf=\"type === 'loading'\" class=\"spinner\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle class=\"loading-icon\" fill=\"none\" stroke=\"var(--box-feedback-icon-color)\" stroke-width=\"6\"\n stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </svg>\n <div class=\"box-feedback--content\">\n <div class=\"box-feedback--header\"> \n <h6 class=\"display-6 bold\">\n {{ title }}\n </h6>\n <a class=\"btn-close\" (click)=\"close()\" *ngIf=\"!hideClose\" >\n <svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.25 0.758431C10.925 0.433431 10.4 0.433431 10.075 0.758431L5.99998 4.8251L1.92498 0.750098C1.59998 0.425098 1.07498 0.425098 0.749976 0.750098C0.424976 1.0751 0.424976 1.6001 0.749976 1.9251L4.82498 6.0001L0.749976 10.0751C0.424976 10.4001 0.424976 10.9251 0.749976 11.2501C1.07498 11.5751 1.59998 11.5751 1.92498 11.2501L5.99998 7.1751L10.075 11.2501C10.4 11.5751 10.925 11.5751 11.25 11.2501C11.575 10.9251 11.575 10.4001 11.25 10.0751L7.17497 6.0001L11.25 1.9251C11.5666 1.60843 11.5666 1.0751 11.25 0.758431Z\" />\n </svg>\n </a>\n </div>\n <p class=\"display-p\">{{ message }}</p>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, NavigationEnd, RouterModule } from '@angular/router';\nimport { NavTabsOptions } from './tabs.types';\n\n@Component({\n selector: 'wco-navtabs',\n standalone: true,\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabsComponent implements OnChanges, AfterViewInit{\n /**\n * @ignore\n */\n @ViewChild('navTabs')\n public navTabs!: ElementRef;\n\n /**\n * Variável para definir o tipo de navegação\n * @param {string} type\n */\n @Input()\n public type: 'header' | 'nav' = 'header';\n\n /**\n * Elementos divididos igualmente ocupando toda largura\n * @param {boolean} full\n */\n @Input()\n public full: boolean = false;\n\n /**\n * Variável para definir o item ativo e monitorar a mudança\n * @param {string} selected\n */\n @Input()\n public selected = ''\n\n /** habilitar reponsivo\n * @param {Boolean} enabledResponsive\n */\n @Input('enabled-responsive')\n public enabledResponsive: Boolean = true;\n\n /**\n * Opções de navegação por rotas\n * @param {NavTabsOptions[]} links\n */\n @Input('listOptions')\n public set setListOptions(links: NavTabsOptions[]) {\n if (links.length) {\n this.links = links.map((item: NavTabsOptions) => {\n return {\n ...item,\n type: item.type || 'link',\n options: { exact: item.path === '/' ? true : false },\n };\n });\n }\n }\n \n\n /**\n * Variável para definir se o componente terá borda ou não\n * @param {boolean} noBorder\n */\n @Input('no-border')\n public noBorder: boolean = false;\n\n @Input('autoScroll') autoScroll: boolean = true;\n\n\n /**\n * Evento de click no botão ou link do componente\n * @param {EventEmitter<void>} handleClick\n * @returns {void}\n */\n @Output()\n public handleClick: EventEmitter<void> = new EventEmitter();\n\n /**\n * @ignore\n */\n public links: NavTabsOptions[] = [];\n\n\n /**\n * Variavel se é mobile ou não\n */\n public isMobile = false;\n\n constructor(\n private readonly router: Router,\n private el: ElementRef\n ) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.handleActive(100, false);\n }\n });\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges) {\n if(changes['selected']) { \n console.log('selected', this.selected)\n this.handleActive(100, false);\n }\n }\n\n /**\n * @ignore\n */\n public ngAfterViewInit(): void {\n this.handleActive(1000, false);\n }\n\n /**\n * @ignore\n */\n public eventSubmit(link: any = ''): void {\n this.handleClick.emit(link);\n }\n\n /**\n * @ignore\n */\n public handleActive(timer = 100, buttonClick = true): void {\n setTimeout(() => {\n const _elementRef = this.el.nativeElement;\n const _element: HTMLElement = this.navTabs.nativeElement;\n\n\n if(_elementRef && _element ) {\n this.isMobile = _elementRef.clientWidth >= _element.clientWidth\n }\n\n const allActives = _element.querySelectorAll('button.active');\n\n const _elementChildActive = allActives[allActives.length - 1];\n\n if (!_elementChildActive) {\n return;\n }\n\n const left =\n _elementChildActive.getBoundingClientRect().left - _element.getBoundingClientRect().left;\n const widthbutton = _elementChildActive.getBoundingClientRect().width;\n _element.style.setProperty('--leftActive', left + 'px');\n _element.style.setProperty('--widthActive', widthbutton + 'px');\n if(this.autoScroll) {\n _elementChildActive.scrollIntoView({ block: 'end', behavior: 'smooth' });\n }\n if (buttonClick) {\n this.handleClick.emit();\n }\n if (this.enabledResponsive && this.autoScroll) {\n _elementChildActive.scrollIntoView({\n block: 'end',\n behavior: 'smooth',\n });\n }\n }, timer);\n }\n}","\n <nav \n class=\"wco-navtabs\" \n #navTabs role=\"navigation\"\n [class.no-border]=\"noBorder\" \n [class.navTabs-full]=\"full\"\n [class.navTabs-mobile]=\"!isMobile\"\n>\n <ng-container *ngFor=\"let link of links\">\n <ng-container *ngIf=\"link.type === 'link'\">\n <button \n (click)=\"eventSubmit()\" \n [class.color-to-nav]=\"type === 'nav'\"\n [routerLink]=\"link.path\" routerLinkActive=\"active\" [attr.id]=\"'page-' + link.path\"\n >\n {{ link.name }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"link.type === 'button'\">\n <button \n (click)=\"eventSubmit(link.path)\" \n [class.color-to-nav]=\"type === 'nav'\"\n [class.active]=\"link.path === selected\"\n [attr.id]=\"'page-' + link.path\"\n >\n {{ link.name }}\n </button>\n </ng-container>\n </ng-container>\n <ng-content></ng-content>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'wco-pagination',\n templateUrl: './pagination.component.html',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaginationComponent implements AfterContentInit {\n /**\n * Evento que se emite quando se clica em um item da paginação\n */\n @Output()\n public changePage = new EventEmitter();\n\n /**\n * Total de páginas\n * @default 0\n * @type number\n */\n @Input()\n public totalPage = 0;\n\n\n /**\n * Página atual\n * @default 1\n * @type number\n * */\n @Input()\n public currenPage = 1;\n\n /**\n * Modo de exibição da paginação\n * @default default\n * @type string\n */\n @Input()\n public mode: 'default' | 'simple' = 'default';\n\n \n\n /**\n * Verifica tamanho da tela para exibir modo simples\n */\n ngAfterContentInit() {\n if (window.innerWidth < 768) {\n this.mode = 'simple';\n }\n }\n\n\n /**\n * Retorna um array com os números das páginas e os pontos de suspensão\n */\n public pagination() {\n const current = this.currenPage;\n const last = this.totalPage;\n const delta = current >= 2 ? current >= 4 ? 1 : 2 : 3;\n const left = current - delta;\n const right = current + delta + 1;\n const range = [];\n const rangeWithDots = [];\n let l;\n\n for (let i = 1; i <= last; i++) {\n if (i === 1 || i === last || (i >= left && i < right)) {\n range.push(i);\n }\n }\n\n for (const i of range) {\n if (l) {\n if (i - l === 2) {\n rangeWithDots.push(l + 1);\n } else if (i - l !== 1) {\n rangeWithDots.push('...');\n } else {\n // empty\n }\n }\n rangeWithDots.push(i);\n l = i;\n }\n\n return rangeWithDots;\n }\n\n /**\n * Seguir para a próxima página\n */\n public nextPage() {\n if (this.currenPage < this.totalPage) {\n this.currenPage += 1;\n this.changePage.emit(this.currenPage);\n }\n }\n\n /**\n * Voltar para a página anterior\n */\n public previousPage() {\n if (this.currenPage >= 2) {\n this.currenPage -= 1;\n this.changePage.emit(this.currenPage);\n }\n }\n\n /**\n * Ir para a página selecionada\n * @param i\n * @returns void\n */\n public out(i: number | string) {\n this.currenPage = parseInt(`${i}`, 10);\n console.log(i, this.currenPage);\n this.changePage.emit(i);\n }\n}\n","<div class=\"pagination\"\n *ngIf=\"!!totalPage && totalPage >= 2\"\n ngClass=\"pagination-{{mode}}\"\n>\n\n <ng-container *ngIf=\"mode === 'simple'\">\n <button (click)=\"previousPage()\" [ngClass]=\"{ disable: currenPage === 1 }\" title=\"Página anterior\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n <button class=\"active\">{{currenPage}}</button>\n <span>/</span>\n <button>{{totalPage}}</button>\n <button (click)=\"nextPage()\" class=\"last-button\" [ngClass]=\"{ disable: currenPage === totalPage }\"\n title=\"Proxima Página\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"mode === 'default'\">\n <button (click)=\"previousPage()\" [ngClass]=\"{ disable: currenPage === 1 }\" title=\"Página anterior\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n <button *ngFor=\"let i of pagination()\" [ngClass]=\"{ \n active: currenPage === i,\n disable: i === '...'\n }\" (click)=\"out(i)\">\n {{ i }}\n </button>\n <button (click)=\"nextPage()\" class=\"last-button\" [ngClass]=\"{ disable: currenPage === totalPage }\"\n title=\"Proxima Página\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n </ng-container>\n\n\n\n</div>\n\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wco-avatar',\r\n standalone: true,\r\n templateUrl: './user-avatar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [CommonModule],\r\n styleUrls: ['./user-avatar.component.scss']\r\n})\r\nexport class UserAvatarComponent implements OnChanges {\r\n\r\n /** Nome do usuário */\r\n @Input('name') userName: string = \"\";\r\n /** Url da imagem opcional */\r\n @Input('image') userAvatar: string = \"\";\r\n /** Tamanho do componente */\r\n @Input('size') size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n /** Theme mudança de cores do componente */\r\n @Input('theme') theme: 'primary' | 'secondary' | 'light' | 'dark' = 'secondary';\r\n\r\n /** solid tipo com bg predominant */\r\n @Input('solid') solid: boolean = false;\r\n\r\n /**\r\n * @ignore\r\n */\r\n public userNameLetters: string = \"\";\r\n\r\n constructor() { }\r\n\r\n\r\n /** Mudança de parâmetros dinâmicos */\r\n ngOnChanges() {\r\n this._prepareNameLetters();\r\n }\r\n\r\n /** Retorne o nome abreviado */\r\n private _prepareNameLetters(): void {\r\n let capitalizeLetters: string = \"\";\r\n if( this.userName ) {\r\n capitalizeLetters = this.userName.charAt(0);\r\n let _arrUserName: string[] = this.userName.split(' ');\r\n if (_arrUserName.length > 1) {\r\n capitalizeLetters += _arrUserName[_arrUserName.length -1].charAt(0);\r\n }\r\n }\r\n this.userNameLetters = capitalizeLetters.toUpperCase();\r\n }\r\n\r\n}\r\n","<div\r\n [class]=\"\r\n 'wco-user-avatar wco-user-avatar__size--' + size + ' wco-user-avatar__theme--' + theme + ' ' + (solid ? 'wco-user-solid' : '') \"\r\n [title]=\"userName\" >\r\n <span>{{userNameLetters}}</span>\r\n <img *ngIf=\"userAvatar\" [src]=\"userAvatar\" [alt]=\"userName\" />\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-smart-select-option',\n standalone: true,\n imports: [CommonModule],\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class SmartSelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @Input() label!: string;\n @Input() iconPrefix!: string;\n @Input() disabled = false;\n @Input() viewOnly = false;\n safeHtmlContent: SafeHtml | undefined;\n\n constructor(private el: ElementRef, private sanitizer: DomSanitizer) {}\n\n ngAfterViewInit() {\n const rawHtmlContent = this.el.nativeElement.innerHTML.trim();\n this.safeHtmlContent =\n rawHtmlContent.length > 0\n ? this.sanitizer.bypassSecurityTrustHtml(rawHtmlContent)\n : undefined;\n }\n}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SmartSelectOptionComponent } from './smart-select-options.component';\n\n@Component({\n selector: 'wco-smart-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n templateUrl: './smart-select.component.html',\n styleUrls: ['./smart-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SmartSelectComponent,\n multi: true,\n },\n ],\n})\nexport class SmartSelectComponent implements ControlValueAccessor, Validator {\n @ContentChildren(SmartSelectOptionComponent) options:\n | QueryList<SmartSelectOptionComponent>\n | undefined;\n\n @Output() onChange = new EventEmitter<{ type: string; value: any }>();\n\n /* Id do elemento */\n @Input()\n inputId = 'select_' + Math.random().toString(36).substring(2);\n\n /* Attr name do elemento */\n @Input() inputName?: string;\n\n @Input() IconMaterial = 'arrow_drop_down';\n\n /* Placeholder do select */\n @Input()\n placeholder = 'Selecione uma opção';\n\n /* Label do select */\n @Input() label = ' ';\n\n /* Força visualização do erro */\n @Input() showError = false;\n\n /* Mostrar campos de busca */\n @Input()\n showSearch = false;\n\n @Input()\n placeholderSearch: string = 'Buscar';\n\n /* Texto exibido quando não há resultados */\n @Input()\n textEmpty = 'Não há resultados para a busca';\n\n /* habilitar opção de multiplas seleções */\n @Input()\n multiSelect = false;\n\n /* Limitar visualização de itens selecionados */\n @Input()\n showMaxSelectedLabel = 0;\n\n /* Tipos pré definidos de checkbox, radio ou null */\n @Input()\n typePrefix: 'checkbox' | 'radio' | null = null;\n\n /* Confirmação de o campo é obrigatório */\n @Input()\n required: boolean = false;\n\n @Input() formControlName: any | undefined;\n\n isMobile = window.innerWidth <= 768;\n\n formValue: any;\n isFocused = false;\n preventEscapeFocus = false;\n autocompleteControl = new FormControl();\n filteredOptions: any[] = [];\n\n showList = false;\n\n constructor(private el: ElementRef) {}\n\n onTouched = () => {\n this.isFocused = true;\n };\n\n /// estados do control\n\n ngOnInit() {}\n\n\n // Carrega os valores do formControl para o componente e renderiza as opções\n writeValue(obj: any): void {\n if (this.autocompleteControl.value === this.formValue) {\n return;\n }\n this.formValue = obj;\n this.autocompleteControl.setValue(obj);\n this.renderBoxOptions();\n }\n\n validate(_control: FormControl): ValidationErrors | null {\n this.autocompleteControl = _control || new FormControl();\n return _control.validator;\n }\n\n registerOnChange(fn: any): void {\n this.onChange.subscribe((event) => {\n if (event.type === 'updateValue') {\n fn(event.value);\n }\n });\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n get hasError(): boolean {\n return this.showError\n ? this.showError\n : this.autocompleteControl.invalid &&\n this.autocompleteControl.touched &&\n !this.showList;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.autocompleteControl.disable();\n } else {\n this.autocompleteControl.enable();\n }\n }\n\n /// Abertura e fechamento da lista\n onFocusIn(focus = false) {\n this.renderBoxOptions();\n this.autocompleteControl.markAsTouched();\n this.onTouched();\n this.isFocused = focus;\n this.showList = focus;\n this.positionBox();\n }\n\n /// here function to position box element top or bottom\n positionBox() {\n if (this.isMobile) {\n return;\n }\n\n const componentBox = this.el.nativeElement;\n if (!componentBox) {\n return;\n }\n const componentBoxPosition = componentBox.getBoundingClientRect();\n const inputId = componentBox.querySelector('.form-field');\n const box = componentBox.querySelector('.wco-smartSelect--box');\n const inputIdPosition = inputId.getBoundingClientRect().height;\n const pageHeight = window.innerHeight;\n if (box && componentBoxPosition.y + 320 >= pageHeight) {\n box.style.bottom = inputIdPosition + 'px';\n box.style.height = `var(--wco-smart-select-box-max-height)`;\n box.style.top = 'initial';\n } else {\n box.style.top = inputIdPosition + 'px';\n box.style.bottom = 'initial';\n box.style.height = `auto`;\n }\n }\n\n onSelect(option?: any) {\n if (option.disabled || option.viewOnly) {\n return;\n }\n\n const oldValue = this.formValue;\n\n if (this.multiSelect) {\n if (typeof option.value === 'object') {\n const list = this.compareMultiValuesArray(option);\n const hasValueOption = list.some((item: any) => item.selected);\n if (hasValueOption) {\n this.formValue = list\n .filter((item: any) => !item.selected)\n .map((item: any) => item.item);\n } else {\n this.formValue = [...(this.formValue || []), option.value];\n }\n } else {\n const index = this.formValue?.indexOf(option.value);\n if (index !== undefined && index > -1) {\n this.formValue?.splice(index, 1);\n } else {\n this.formValue = [...(this.formValue || []), option.value];\n }\n }\n this.autocompleteControl.setValue(this.formValue);\n } else {\n this.formValue = option.value;\n this.autocompleteControl.setValue(option.value);\n this.showList = false;\n }\n\n if (oldValue !== this.formValue) {\n this.onChange.emit({ type: 'updateValue', value: this.formValue });\n }\n\n this.renderBoxOptions();\n }\n\n // Show label span\n get selectedLabel() {\n const selectedOption = this.options?.find(\n (option) =>\n this.normalizeText(String(option.value)) ===\n this.normalizeText(String(this.formValue))\n );\n return selectedOption?.label || ' ';\n }\n\n // show label multi select\n get selectedLabelMulti(): { value: string; label: string }[] {\n const selectedOptions = this.options?.filter((option) => {\n if (typeof option.value === 'object') {\n return this.compareValueArray(option);\n } else {\n return this.formValue?.includes(option.value);\n }\n });\n\n if (!selectedOptions?.length) {\n return [];\n }\n\n if (!this.showMaxSelectedLabel) {\n return selectedOptions;\n }\n\n if (\n this.showMaxSelectedLabel &&\n selectedOptions.length > this.showMaxSelectedLabel\n ) {\n return selectedOptions.slice(0, this.showMaxSelectedLabel);\n }\n\n return selectedOptions;\n }\n\n private valueToArray(options: any) {\n const keys = Object.keys(options);\n const value: any[] = [];\n keys.forEach((key) => {\n if (\n options[key] &&\n options[key] !== '' &&\n typeof options[key] !== 'object' &&\n typeof options[key] !== 'function' &&\n typeof options[key] !== 'boolean'\n ) {\n value.push(options[key]);\n }\n });\n return value;\n }\n\n private compareValueArray(option: any, value = this.formValue): any[] {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n return value.some((item: any) => {\n const itemArray = this.valueToArray(item);\n return itemArray.every((itemValue: any) =>\n valuesItems.includes(itemValue)\n );\n });\n }\n return [];\n }\n\n private compareMultiValuesArray(option: any, value = this.formValue): any[] {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n const formValueArray = value.map((item: any, index: number) => {\n const itemArray = this.valueToArray(item);\n return {\n index,\n item,\n selected: itemArray.some((itemValue: any) =>\n valuesItems.includes(itemValue)\n ),\n };\n });\n // Remove duplicate items\n const uniqueFormValueArray = Array.from(\n new Set(formValueArray.map((item: any) => JSON.stringify(item)))\n ).map((item: any) => JSON.parse(item));\n\n return uniqueFormValueArray;\n }\n return [];\n }\n\n get selectedLabelMultiCount(): number {\n const show = this.showMaxSelectedLabel || 0;\n const selectedOptions = this.options?.filter((option) =>\n this.formValue?.includes(option.value)\n );\n if (!selectedOptions?.length) {\n return 0;\n }\n\n if (show > 0 && selectedOptions.length > show) {\n return selectedOptions.length - show;\n }\n\n return 0;\n }\n\n removeItem(option: any) {\n this.onSelect(option);\n setTimeout(() => {\n this.showList = false;\n }, 100);\n }\n\n onKeyPress(event: any) {\n event.preventDefault();\n this.renderBoxOptions();\n }\n\n onFilter(event: any) {\n const value = event.target.value;\n if (!value) {\n this.renderBoxOptions();\n return;\n }\n\n if (this.filteredOptions.length) {\n this.renderBoxOptions(value);\n }\n }\n\n onResize() {\n this.renderBoxOptions();\n this.positionBox();\n }\n\n onFocusOut() {\n if (!this.preventEscapeFocus && !this.isMobile) {\n this.isFocused = false;\n this.showList = false;\n }\n }\n\n closeList() {\n this.preventEscapeFocus = true;\n this.isFocused = false;\n this.showList = false;\n }\n\n selectedValue(option: { value: any; label: string; safeHtmlContent: any }) {\n if (this.multiSelect) {\n if (typeof option.value === 'object') {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n return this.formValue.some((item: any) => {\n const itemArray = this.valueToArray(item);\n return itemArray.every((itemValue: any) =>\n valuesItems.includes(itemValue)\n );\n });\n }\n } else {\n return this.formValue?.includes(option.value);\n }\n }\n\n return option.value === this.formValue;\n }\n\n private renderBoxOptions(filterValue: string | null = null) {\n if (!this.options || !this.options.length) {\n return;\n }\n this.filteredOptions = this.options\n ?.map((option) => {\n return {\n value: option.value,\n iconPrefix: option.iconPrefix,\n htmlLabel: option.safeHtmlContent || option.label,\n disabled: option.disabled,\n viewOnly: option.viewOnly,\n };\n })\n .filter((option) => {\n if (!filterValue) {\n return true;\n }\n const normalizedFilter = this.normalizeText(filterValue);\n const normalizedLabel = this.normalizeText(\n option.htmlLabel?.toString() || ''\n );\n return normalizedLabel.includes(normalizedFilter);\n });\n }\n\n private normalizeText(text: string): string {\n return text\n .replace(/[\\W_]+/g, '') // Remove caracteres especiais e sublinhados\n .toLowerCase();\n }\n}\n","<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma opção\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma opção' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons wco-smart-select--arrow\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n [placeholder]=\"placeholderSearch\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n </div>\n ","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type TimelineItem = {\n title: string;\n description: string;\n descriptionPre?: {\n text: string;\n customClass: string;\n };\n descriptionPos?: {\n text: string;\n customClass: string;\n };\n date: string;\n status: 'finalized' | 'current' | 'waiting' | 'error';\n action?: {\n handler: () => void;\n label: string;\n };\n};\n\n@Component({\n selector: 'wco-timeline',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimelineComponent {\n @Input() timelineItems: TimelineItem[] = [];\n\n statusToIcon = {\n finalized: 'check',\n current: '',\n waiting: '',\n error: 'priority_high',\n };\n}\n","<div class=\"wco-timeline\">\n <div class=\"wco-timeline-item\" *ngFor=\"let item of timelineItems; let i = index\">\n <div class=\"wco-timeline-item-dot-container\">\n <div class=\"wco-timeline-item-dot-container-inner\">\n <span class=\"wco-timeline-item-dot-number\">\n {{ timelineItems.length - i }}\n </span>\n <div class=\"wco-timeline-item-dot-line-container\">\n <div [className]=\"'wco-timeline-item-dot wco-timeline-item-dot-' + item.status\">\n <span [className]=\"'material-icons wco-timeline-item-dot-icon wco-timeline-item-dot-icon-' + item.status\"> {{ statusToIcon[item.status] }} </span>\n </div>\n <hr class=\"wco-timeline-item-dot-line\" />\n </div>\n </div>\n </div>\n <div class=\"wco-timeline-item-content-container\">\n <div class=\"wco-timeline-item-content\">\n <h4 [className]=\"'wco-timeline-item-content-title wco-timeline-item-content-title-' + item.status\"> {{ item.title }} </h4>\n <p *ngIf=\"item.descriptionPre?.text\" [className]=\"item.descriptionPre?.customClass\"> {{ item.descriptionPre?.text }} </p>\n <p [className]=\"'wco-timeline-item-content-description wco-timeline-item-content-description-' + item.status\"> {{ item.description }} </p>\n <p *ngIf=\"item.descriptionPos?.text\" [className]=\"item.descriptionPos?.customClass\"> {{ item.descriptionPos?.text }} </p>\n <button class=\"wco-btn btn-primary btn-link\" *ngIf=\"item.action\" (click)=\"item.action.handler()\" [disabled]=\"item.status === 'waiting'\"> {{item.action.label}} </button>\n </div>\n <span [className]=\"'wco-timeline-item-content-date wco-timeline-item-content-date-' + item.status\"> {{ item.date }} </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n PreviewFileActionsTypes,\n PreviewFileStatusTypes,\n} from './preview-file.types';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-preview-file',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './preview-file.component.html',\n styleUrls: ['./preview-file.component.scss'],\n})\nexport class PreviewFileComponent implements AfterViewChecked {\n @ViewChild('previewFileElement', { static: false })\n previewFileElement!: ElementRef<HTMLDivElement>;\n\n /* Nome do arquivo (optioncal) */\n @Input() filename = '';\n /* Formato do arquivo (optional) */\n @Input() format = '';\n /* Mostrar previsualização do arquivo (optional) */\n @Input() preview = true;\n /* Ações disponíveis para o arquivo (optional) */\n @Input() actions!: PreviewFileActionsTypes[];\n /* Status do arquivo (optional) */\n @Input() status!: PreviewFileStatusTypes;\n /* URL do arquivo (optional) */\n @Input() url = '';\n /* Conteúdo customizado (optional) */\n @Input() customContent = false;\n /* Tipo de visualização do arquivo (optional) */\n @Input() type: 'mini' | 'box' = 'box';\n /* Título do arquivo (optional) */\n @Input() title = '';\n\n /* Arquivo para visualização nativo do input file */\n @Input() set setfile(file: File | null | undefined) {\n if (!file) return;\n this.transformFiles(file);\n }\n\n /* Evento de clique nas ações do arquivo */\n @Output() clickEvent = new EventEmitter<{\n action: PreviewFileActionsTypes;\n data: any;\n }>();\n\n\n get name() {\n if(!!this.filename) {\n return this.filename\n }\n\n if(!!this.url) {\n const url = new URL(this.url);\n const name = url.pathname.split('/').pop();\n const total = name ? name?.length >= 30 ? 15 : 0 : 0;\n return name?.substring(total, name.length);\n }\n return 'Nome não informado';\n }\n\n get _format() { \n\n if (!!this.format) {\n return this.format;\n }\n\n if (this.url) {\n const url = new URL(this.url);\n const format = url.pathname.split('.').pop();\n return format;\n }\n\n return 'file';\n }\n \n idRandom = 'preview-' + Math.random().toString(36).substring(7);\n id = 'modal-' + this.idRandom;\n\n y = signal<string | null>('100px');\n x = signal<string | null>('100px');\n\n constructor(private sanitizer: DomSanitizer, private ngZone: NgZone) {}\n\n ngAfterViewChecked() {\n this.positionThumbnail();\n }\n\n\n private transformFiles(file: File) {\n if (file) {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n this.filename = file.name;\n this.format = file.type || 'file';\n this.url = e.target.result;\n };\n reader.readAsDataURL(file);\n }\n }\n\n transformPDFSecurity(url: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n private positionThumbnail() {\n const previewFileElement = this.previewFileElement.nativeElement;\n const cardPosition = previewFileElement.getElementsByClassName(\n 'wco-previewFile--thumbl'\n )[0] as HTMLElement;\n\n if (cardPosition) {\n const { x, y } = cardPosition.getBoundingClientRect();\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.y.set(y + 'px');\n this.x.set(x + 'px');\n }, 1000);\n });\n }\n }\n\n public actionEvent(action: PreviewFileActionsTypes) {\n this.clickEvent.emit({\n action,\n data: {\n filename: this.filename,\n format: this.format,\n url: this.url,\n file: this.url,\n },\n });\n }\n\n ////////////////////\n // Eventos de modal\n ////////////////////\n modalPreview() {\n if (!!!this.url || this.typeFileFormat() === 'file') {\n return;\n }\n this.positionThumbnail();\n const modal: any = document.getElementById(this.id);\n modal?.showModal();\n }\n\n closeDialog() {\n const modal: any = document.getElementById(this.id);\n modal?.close();\n }\n\n ///////////////////////////////////\n /// Formatos e posições de ícones\n ///////////////////////////////////\n getIconMaterial(type: string): string {\n const iconMap: { [key: string]: string } = {\n 'pdf': 'picture_as_pdf',\n 'application/pdf': 'picture_as_pdf',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n 'description',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n 'table_chart',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n 'slideshow',\n 'image/jpeg': 'image',\n 'image/png': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/webp': 'image',\n png: 'image',\n jpeg: 'image',\n gif: 'image',\n bmp: 'image',\n webp: 'image',\n 'video/mp4': 'ondemand_video',\n 'mp4': 'ondemand_video',\n 'video/quicktime': 'ondemand_video',\n 'video/x-msvideo': 'ondemand_video',\n 'video/x-ms-wmv': 'ondemand_video',\n 'audio/mpeg': 'audiotrack',\n 'audio/ogg': 'audiotrack',\n 'audio/wav': 'audiotrack',\n 'audio/webm': 'audiotrack',\n };\n\n return iconMap[type] || 'insert_drive_file';\n }\n\n typeFileFormat(): 'pdf' | 'image' | 'video' | 'file' {\n const format = this._format || 'file'\n const typeMap: { [key: string]: 'pdf' | 'image' | 'video' | 'file' } = {\n pdf: 'pdf',\n 'application/pdf': 'pdf',\n 'image/jpeg': 'image',\n 'image/png': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/webp': 'image',\n png: 'image',\n jpeg: 'image',\n jpg: 'image',\n gif: 'image',\n bmp: 'image',\n webp: 'image',\n mp4: 'video',\n mov: 'video',\n 'video/mp4': 'video',\n 'video/quicktime': 'video'\n };\n\n return typeMap[format] || 'file';\n }\n}\n","<div [class]=\"'wco-previewFile wco-previewFile-type' + type\" #previewFileElement>\n <h4 *ngIf=\"title\" class=\"display-body bold\">{{ title }}</h4>\n\n <div [class]=\"'wco-previewFile--thumbl type-file-' + typeFileFormat()\" [id]=\"idRandom\">\n <span class=\"wco-previewFile-preview\" (click)=\"preview ? modalPreview() : null\" role=\"button\" tabindex=\"0\">\n <ng-container *ngIf=\"typeFileFormat() === 'image' && !!url\">\n <img [src]=\"url\" alt=\"Imagem do documento\" loading=\"lazy\" role=\"img\">\n </ng-container>\n <ng-container *ngIf=\"typeFileFormat() !== 'image' || !url\">\n <span class=\"material-icons\" role=\"presentation\">{{ getIconMaterial(format) }}</span>\n </ng-container>\n </span>\n <h5 (click)=\"preview ? modalPreview() : null\" role=\"heading\" aria-level=\"2\">\n {{ name }}</h5>\n </div>\n\n <div class=\"wco-previewFile__action\">\n <div class=\"wco-previewFile__action--status\" *ngIf=\"!customContent\">\n <ng-container *ngIf=\"status && status.type && status.text\">\n <span [class]=\"'wco-tag tag-' + status.type\" role=\"status\">\n <span *ngIf=\"status.iconMaterial\" class=\"material-icons\" role=\"presentation\">{{ status.iconMaterial }}</span>\n {{ status.text }}\n </span>\n <div>\n <h6 *ngIf=\"status.prefixDescription\">\n <strong>{{ status.prefixDescription }}</strong>\n </h6>\n <p *ngIf=\"status.description\">{{ status.description }}</p>\n </div>\n </ng-container>\n </div>\n <div class=\"wco-previewFile__action--buttons\" *ngIf=\"!customContent\">\n <ng-container *ngIf=\"!customContent && !!actions?.length\">\n <ng-container>\n <button *ngIf=\"actions.includes('refresh')\" (click)=\"actionEvent('refresh')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n <span class=\"material-icons\" role=\"presentation\">cached</span>\n Reenviar\n </button>\n <button *ngIf=\"actions.includes('aproved')\" (click)=\"actionEvent('aproved')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n Aprovar\n <span class=\"material-icons\" role=\"presentation\">done</span>\n </button>\n <button *ngIf=\"actions.includes('reproved')\" (click)=\"actionEvent('reproved')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n Recusar\n <span class=\"material-icons\" role=\"presentation\">close</span>\n </button>\n <div *ngIf=\"actions.includes('download') || actions.includes('delete') \" class=\"wco-previewFile__action--buttonsIcon\">\n <button *ngIf=\"actions.includes('download')\" (click)=\"actionEvent('download')\" class=\"wco-previewFile--buttonIcon\"\n role=\"button\" tabindex=\"0\">\n <span class=\"material-icons-outlined\" role=\"presentation\">file_download</span>\n </button>\n <button *ngIf=\"actions.includes('delete')\" (click)=\"actionEvent('delete')\"\n class=\"wco-previewFile__action--buttonIcon\" role=\"button\" tabindex=\"0\">\n <span class=\"material-icons-outlined\" role=\"presentation\">delete</span>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"customContent\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"preview && x() && y()\">\n <dialog [id]=\"id\" [ngStyle]=\"{'--dialog-x': x(), '--dialog-y': y()}\" role=\"dialog\" aria-modal=\"true\">\n <div>\n <div class=\"dialog-content\">\n <img *ngIf=\"typeFileFormat() === 'image'\" [src]=\"url\" alt=\"Imagem do documento\" loading=\"lazy\" role=\"img\">\n <video *ngIf=\"typeFileFormat() === 'video'\" [src]=\"url\" controls role=\"video\"></video>\n <iframe *ngIf=\"typeFileFormat() === 'pdf'\" [src]=\"transformPDFSecurity(url)\" role=\"document\"></iframe>\n </div>\n <div class=\"w-full flex justify-center my-xxs\">\n <button (click)=\"closeDialog()\" class=\"wco-btn btn-primary btn-sm\" role=\"button\" tabindex=\"0\">Fechar</button>\n </div>\n </div>\n </dialog>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { WcoModalAlertConfigActionsTypes, WcoModalAlertConfigTypes } from './modal-alert.types';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-modal-alert',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './modal-alert.component.html',\n styleUrls: ['./modal-alert.component.scss'],\n})\nexport class WcoModalAlertComponent implements OnChanges {\n private DEFAULT_VALUES = {\n show: false,\n showIcon: true,\n title: '',\n message: '',\n actions: [],\n hideClose: false,\n };\n\n @Input() set show(value: boolean) {\n this.changeValues(value, 'show');\n }\n @Input() set showIcon(value: boolean) {\n this.changeValues(value, 'showIcon');\n }\n @Input() set title(value: string) {\n this.changeValues(value, 'title');\n }\n @Input() set message(value: string) {\n this.changeValues(value, 'message');\n }\n\n @Input() set materialIcon(value: string) {\n this.changeValues(value, 'materialIcon');\n }\n\n @Input() set type(\n value: 'error' | 'warning' | 'success' | 'info' | 'loading'\n ) {\n this.changeValues(value, 'type');\n }\n\n @Input() set hideClose(value: boolean) {\n this.changeValues(value, 'hideClose');\n }\n\n @Input() set actions(value: WcoModalAlertConfigActionsTypes[]) {\n this.changeValues(value, 'actions');\n }\n\n @Input({ alias: 'setId' }) id =\n 'wco-modal-alert-' + Math.random().toString(36).substring(7);\n\n @Input() config: WcoModalAlertConfigTypes = {\n show: false,\n showIcon: true,\n title: '',\n message: '',\n actions: [],\n hideClose: false,\n };\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnChanges(event: SimpleChanges): void {\n if (event['config']?.currentValue['show'] !== undefined) {\n this.eventModal();\n }\n }\n\n get title(): any {\n return this.sanitizer.bypassSecurityTrustHtml(this.config.title || '');\n }\n\n get message(): any {\n return this.sanitizer.bypassSecurityTrustHtml(this.config.message || '');\n }\n\n getButtonClass(action: WcoModalAlertConfigActionsTypes) {\n const classeColor =\n action.color === 'primary'\n ? 'btn-primary'\n : action.color === 'secondary'\n ? 'btn-secondary'\n : 'btn-neutral';\n const classeOutline = action.outline ? 'btn-outline' : '';\n const extraClasse = action.extraClasse ? action.extraClasse : '';\n return `wco-btn btn-full ${classeColor} ${classeOutline} ${extraClasse}`;\n }\n\n get iconMaterial() {\n const { type = 'info' } = this.config;\n switch (type) {\n case 'error':\n return { icon: 'error_outline', color: 'error' };\n case 'warning':\n return { icon: 'warning_amber', color: 'warning' };\n case 'success':\n return { icon: 'check_circle_outline', color: 'success' };\n case 'loading':\n return { icon: 'spinner', color: 'loading' };\n default:\n return { icon: 'info', color: 'info' };\n }\n }\n\n changeValues(valueUpdate: any, name: string) {\n this.config = {\n ...this.DEFAULT_VALUES,\n ...this.config,\n [name]: valueUpdate,\n };\n this.eventModal();\n }\n\n modalClose() {\n const element: any = document.getElementById(this.id);\n if (element) {\n element.close();\n }\n }\n\n eventModal() {\n const show = this.config.show;\n const element: any = document.getElementById(this.id);\n if (show && element) {\n if (this.config.hideClose) {\n element.addEventListener('keydown', (event: any) => {\n const key = event.key;\n if (key === 'Escape') {\n event.preventDefault();\n }\n });\n }\n element.showModal();\n this.config.show = false;\n } else {\n this.modalClose();\n }\n }\n}\n","<dialog class=\"wco-modal\" [id]=\"id\" role=\"dialog\" aria-modal=\"true\">\n <main>\n <ng-container *ngIf=\"!config.hideClose\">\n <button class=\"wco-modal--close\" (click)=\"modalClose()\">\n <span class=\"material-icons\">close</span>\n </button>\n </ng-container>\n <div [class]=\"'wco-modalConfirm ' + iconMaterial.color\">\n <ng-container *ngIf=\"config.showIcon\">\n <span class=\"wco-modalConfirm--icon\">\n <ng-container *ngIf=\"config.type !== 'loading'\">\n <span class=\"material-icons-round\">\n <ng-container *ngIf=\"config.materialIcon; else iconTemplate\">\n {{config.materialIcon}}\n </ng-container>\n <ng-template #iconTemplate>\n {{ iconMaterial.icon}}\n </ng-template>\n </span>\n </ng-container>\n <ng-container *ngIf=\"config.type === 'loading'\">\n <svg class=\"spinner\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle class=\"loading-icon\" fill=\"none\" stroke=\"var(--wco-modal-color-type)\" stroke-width=\"6\"\n stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </svg>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"config.title\">\n <h3 class=\"wco-modalConfirm--title\" [innerHTML]=\"title\"></h3>\n </ng-container>\n <ng-container *ngIf=\"config.message\"> \n <p class=\"wco-modalConfirm--message\" [innerHTML]=\"message\"></p>\n </ng-container>\n <div class=\"wco-modalConfirm--actions\" [class.modalConfirm--actions-size]=\"config.actions.length === 1\"\n *ngIf=\"config.actions && config.actions.length > 0\">\n <button type=\"button\" [class]=\"getButtonClass(action)\" (click)=\"action.action()\"\n *ngFor=\"let action of config.actions; let index = index\">\n <span class=\"material-icons-round\" *ngIf=\"action.materialIconLeft\">{{action.materialIconLeft}}</span>\n {{action.text}}\n <span class=\"material-icons-round\" *ngIf=\"action.materialIconRight\">{{action.materialIconRight}}</span>\n </button>\n </div>\n </div>\n </main>\n</dialog>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { TableHeader } from './table.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wco-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class TableComponent {\n @Input() data: any[] = [];\n @Input() headers: TableHeader[] = [];\n @Input() loading?: boolean = false;\n @Input() templates: { [key: string]: TemplateRef<any> } = {};\n\n constructor() {}\n\n getTemplate(templateName: string) {\n return this.templates[templateName];\n }\n}\n","<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n","/*\n * Public API Surface of ngx-fenixds\n */\n\nexport * from './lib/step/step.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/upload/upload.component';\nexport * from './lib/upload/upload.types';\n\n// msg box feedback\nexport * from './lib/msg-box-feedback/msg-box-feedback.component';\nexport * from './lib/msg-box-feedback/msg-box-feeback.types';\n\n//msg navtabs\nexport * from './lib/tabs/tabs.component';\nexport * from './lib/tabs/tabs.types';\n\n//Pagination\nexport * from './lib/pagination/pagination.component';\n\n// Avatar\nexport * from './lib/user-avatar/user-avatar.component';\n\n// Smart Select\nexport * from './lib/smart-select/smart-select.component';\nexport * from './lib/smart-select/smart-select-options.component';\n\n// Timeline\nexport * from './lib/timeline/timeline.component';\n\n// Preview File\nexport * from './lib/preview-file/preview-file.component';\nexport * from './lib/preview-file/preview-file.types';\n\n// Modal\nexport * from './lib/modal-alert/modal-alert.component';\nexport * from './lib/modal-alert/modal-alert.types';\n\n// Table\nexport * from './lib/table/table.component';\nexport * from './lib/table/table.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"wizco-fenixds-ngx.mjs","sources":["../../../projects/ngx-components/src/lib/step/step.component.ts","../../../projects/ngx-components/src/lib/step/step.component.html","../../../projects/ngx-components/src/lib/stepper/stepper.component.ts","../../../projects/ngx-components/src/lib/stepper/stepper.component.html","../../../projects/ngx-components/src/lib/upload/upload.component.ts","../../../projects/ngx-components/src/lib/upload/upload.component.html","../../../projects/ngx-components/src/lib/msg-box-feedback/msg-box-feedback.component.ts","../../../projects/ngx-components/src/lib/msg-box-feedback/msg-box-feedback.component.html","../../../projects/ngx-components/src/lib/tabs/tabs.component.ts","../../../projects/ngx-components/src/lib/tabs/tabs.component.html","../../../projects/ngx-components/src/lib/pagination/pagination.component.ts","../../../projects/ngx-components/src/lib/pagination/pagination.component.html","../../../projects/ngx-components/src/lib/user-avatar/user-avatar.component.ts","../../../projects/ngx-components/src/lib/user-avatar/user-avatar.component.html","../../../projects/ngx-components/src/lib/smart-select/smart-select-options.component.ts","../../../projects/ngx-components/src/lib/smart-select/smart-select.component.ts","../../../projects/ngx-components/src/lib/smart-select/smart-select.component.html","../../../projects/ngx-components/src/lib/timeline/timeline.component.ts","../../../projects/ngx-components/src/lib/timeline/timeline.component.html","../../../projects/ngx-components/src/lib/preview-file/preview-file.component.ts","../../../projects/ngx-components/src/lib/preview-file/preview-file.component.html","../../../projects/ngx-components/src/lib/modal-alert/modal-alert.component.ts","../../../projects/ngx-components/src/lib/modal-alert/modal-alert.component.html","../../../projects/ngx-components/src/lib/table/table.component.ts","../../../projects/ngx-components/src/lib/table/table.component.html","../../../projects/ngx-components/src/public-api.ts","../../../projects/ngx-components/src/wizco-fenixds-ngx.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wco-step',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './step.component.html',\n styleUrls: ['./step.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class StepComponent {\n\n /**\n * Se o step está ativo\n * @param {boolean} active\n */\n @Input() active: boolean = false;\n\n /**\n * Texto do label do step\n */\n @Input() label: string = '';\n\n /**\n * Ícone do step (opcional) - deve ser um ícone do material icon\n */\n @Input() iconName: string | undefined = undefined;\n\n /**\n * Texto do bulletValue do step (opcional) - deve ser um texto de 1 a 2 caracteres\n */\n @Input() bulletValue: string | undefined = undefined;\n\n /**\n * Sentido do stepper (horizontal ou vertical)\n */\n @Input() isVertical: boolean = true;\n\n\n /**\n * Desabilitar linha inicial\n */\n @Input() lineStart: boolean = true;\n\n /**\n * Desabilitar linha final\n */\n @Input() lineEnd: boolean = true;\n\n /**\n * Classe do step\n *\n * finalized - step finalizado\n * current - step atual\n * waiting - step aguardando\n * error - step com erro\n *\n * @param {string} status\n */\n @Input() status: 'finalized' | 'current' | 'waiting' | 'error' | string = 'current';\n\n /**\n * size do step\n * @param {string} size\n */\n @Input() size: 'small' | 'medium' | 'large' | string = 'small';\n\n\n /**\n * Se o step é clicável\n * @param {boolean} clickable\n */\n @Input() hasClick: boolean = false;\n\n /**\n * Função que retorna o valor do ícone ou bullet\n */\n @Output() clicked = new EventEmitter<number>()\n\n\n\n\n\n constructor() {}\n\n /**\n * se o item do stepper estive com o evento de clicked true, ele retorna qual elemento é selecionado para o componente pai\n * */\n clickedItem() {\n if(this.hasClick) {\n return\n }\n this.clicked.emit()\n }\n\n}\n","<div class=\"step\"\n [class]=\"'step-status--' + status + ' step-size--' + size\"\n [ngClass]=\"{\n 'step--vertical': isVertical,\n 'step--horizontal': !isVertical,\n 'step--disabled-linestart': !lineStart,\n 'step--disabled-lineend': !lineEnd,\n 'step--clicked': hasClick,\n 'step--active': active\n }\"\n\n>\n <div class=\"step__line step__line--start\"></div>\n <div class=\"step__bullet\" (click)=\"clickedItem()\">\n <div>\n <span *ngIf=\"iconName && !bulletValue\" class=\"material-icons\">{{iconName}}</span>\n <span *ngIf=\"!iconName && bulletValue\">{{bulletValue}}</span>\n <ng-content select=\"[step-bullet-content]\"></ng-content>\n </div>\n </div>\n <div class=\"step__line step__line--end\"></div>\n <div class=\"step__content\">\n <div class=\"step__title\" (click)=\"clickedItem()\">\n <span *ngIf=\"label\">{{label}}</span>\n <ng-content select=\"[step-title]\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport interface StepperClass {\n label?: string;\n className?: 'finalized' | 'current' | 'waiting' | 'error';\n showLineStart: boolean;\n showLineEnd: boolean;\n type?: 'icon' | 'text';\n valueIcon?: string;\n valueBullet?: string;\n clicked?: boolean;\n}\n\n@Component({\n selector: \"wco-stepper\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./stepper.component.html\",\n styleUrls: [\"./stepper.component.scss\"],\n})\nexport class StepperComponent {\n /**\n * Sentido do stepper (horizontal ou vertical)\n */\n @Input() isVertical: boolean = false;\n\n /**\n * Array de itens do stepper StepperClass\n * @param {StepperClass} stepper\n */\n @Input() stepperArray: Array<StepperClass> = [];\n\n /**\n * Função que retorna o valor do ícone ou bullet\n */\n @Output() stepperSelected = new EventEmitter<number>()\n\n constructor() {}\n\n /**\n * se o item do stepper estive com o evento de clicked true, ele retorna qual elemento é selecionado para o componente pai\n * */\n clickedItem(item: StepperClass, index: number) {\n if(!item.clicked) {\n return\n }\n this.stepperSelected.emit(index)\n }\n}\n","<div\n class=\"stepper-vertical\"\n [ngClass]=\"isVertical === true ? 'stepper-vertical' : 'stepper-horizontal'\"\n *ngIf=\"stepperArray\"\n>\n <div class=\"stepper-component\" *ngFor=\"let items of stepperArray; let $i = index\">\n <div class=\"stepper-component__main\">\n <div class=\"stepper-item\" [ngClass]=\"{'stepper-item__clicked': items.clicked}\" (click)=\"clickedItem(items,$i)\">\n <span\n [ngClass]=\"\n items.showLineStart === true\n ? 'stepper-item__line'\n : 'stepper-item__without-line'\n \"\n ></span>\n <span class=\"stepper-item__circle\" [ngClass]=\"items.className\"\n ><span *ngIf=\"items.type === 'icon'\" class=\"icon material-icons\">{{\n items.valueIcon\n }}</span>\n <span *ngIf=\"items.type === 'text'\" class=\"icon\">{{\n items.valueBullet\n }}</span></span\n >\n <span\n [ngClass]=\"\n items.showLineEnd === true\n ? 'stepper-item__line'\n : 'stepper-item__without-line'\n \"\n ></span>\n </div>\n <div class=\"stepper-label\">\n <span\n class=\"stepper-label__text\"\n [ngClass]=\"items.className === 'current' ? 'dark-text' : 'light-text'\"\n >{{ items.label }}</span\n >\n </div>\n </div>\n </div>\n</div>\n","import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SkipSelf,\n} from '@angular/core';\n\nimport {\n HttpClient,\n HttpClientModule,\n HttpEventType,\n HttpHeaders,\n HttpParams,\n} from '@angular/common/http';\n\nimport { CommonModule } from '@angular/common';\nimport {\n AngularFileUploaderConfig,\n ReplaceTexts,\n UploadInfoTypes,\n} from './upload.types';\n\n@Component({\n selector: 'wco-file-upload',\n standalone: true,\n imports: [CommonModule, HttpClientModule],\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.scss'],\n})\nexport class UploadComponent implements OnChanges {\n /* Texto de descrição do arquivo */\n @Input() description: string =\n '(XX MB de tamanho máximo e é permitido qualquer tipo de arquivos)';\n /* config <AngularFileUploaderConfig> configuração do componente principais parâmetros */\n @Input() config: AngularFileUploaderConfig = {\n uploadAPI: {\n url: '',\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain;charset=UTF-8',\n },\n responseType: 'json',\n withCredentials: false,\n },\n };\n\n /*\n * Opção de resetar o componente\n */\n @Input() resetUpload = false;\n\n /*\n * Evento Resposta da requisição sendo sucesso ou erro\n */\n @Output('apiResponse') ApiResponse = new EventEmitter();\n /*\n * Evento javascript puro para retorno do arquivo\n */\n @Output() fileSelected: EventEmitter<UploadInfoTypes[]> = new EventEmitter<\n UploadInfoTypes[]\n >();\n\n /**\n * @ignore\n */\n theme: string = '';\n /**\n * @ignore\n */\n id: number = 0;\n /**\n * @ignore\n */\n hideProgressBar: boolean = false;\n /**\n * @ignore\n */\n maxSize: number = 20 * 1024000; // mb to bytes.\n /**\n * @ignore\n */\n uploadAPI: string = '';\n /**\n * @ignore\n */\n method: string = 'POST';\n /**\n * @ignore\n */\n formatsAllowed: string = '*';\n /**\n * @ignore\n */\n formatsAllowedText: string = '';\n /**\n * @ignore\n */\n multiple: boolean = false;\n /**\n * @ignore\n */\n headers: HttpHeaders | { [header: string]: string | string[] } = {};\n /**\n * @ignore\n */\n params: HttpParams | { [param: string]: string | string[] } = {};\n /**\n * @ignore\n */\n responseType: 'json' | 'arraybuffer' | 'blob' | 'text' = 'blob';\n /**\n * @ignore\n */\n hideResetBtn: boolean = false;\n /**\n * @ignore\n */\n hideSelectBtn: boolean = false;\n /**\n * @ignore\n */\n allowedFiles: File[] = [];\n /**\n * @ignore\n */\n notAllowedFiles: {\n fileName: string;\n fileSize: string;\n errorMsg: string;\n }[] = [];\n /**\n * @ignore\n */\n Caption: string[] = [];\n /**\n * @ignore\n */\n isAllowedFileSingle = true;\n /**\n * @ignore\n */\n progressBarShow = false;\n /**\n * @ignore\n */\n enableUploadBtn = false;\n /**\n * @ignore\n */\n uploadMsg = false;\n /**\n * @ignore\n */\n afterUpload = false;\n /**\n * @ignore\n */\n uploadStarted = false;\n /**\n * @ignore\n */\n uploadMsgText: string = '';\n /**\n * @ignore\n */\n uploadMsgClass: string = 'text-success';\n /**\n * @ignore\n */\n uploadPercent: number = 0;\n /**\n * @ignore\n */\n replaceTexts: ReplaceTexts = {\n selectFileBtn: 'Selecionar Arquivo',\n resetBtn: 'Resetar',\n uploadBtn: 'Enviar',\n dragNDropBox: 'Arraste e solte',\n attachPinBtn: 'Anexar Arquivo...',\n afterUploadMsg_success: 'Enviado com sucesso !',\n afterUploadMsg_error: 'Falha no envio !',\n sizeLimit: 'Tamanho máximo',\n };\n /**\n * @ignore\n */\n currentUploads: any[] = [];\n /**\n * @ignore\n */\n fileNameIndex = true;\n /**\n * @ignore\n */\n withCredentials = false;\n /**\n * @ignore\n */\n autoUpload = true;\n /**\n * @ignore\n */\n private idDate: number = +new Date();\n\n constructor(@SkipSelf() private http: HttpClient) {}\n\n /**\n * @ignore\n */\n ngOnChanges(changes: any) {\n // Track changes in Configuration and see if user has even provided Configuration.\n if (changes.config && this.config) {\n // Assign User Configurations to Library Properties.\n this.theme = this.config.theme || '';\n this.id =\n this.config.id ||\n parseInt((this.idDate / 10000).toString().split('.')[1], 10) +\n Math.floor(Math.random() * 20) * 10000;\n this.hideProgressBar = this.config.hideProgressBar || false;\n this.hideResetBtn = this.config.hideResetBtn || false;\n this.hideSelectBtn = this.config.hideSelectBtn || false;\n this.maxSize = (this.config.maxSize || 20) * 1024000; // mb to bytes.\n if (this.config.uploadAPI) {\n this.uploadAPI = this.config.uploadAPI.url;\n this.method = this.config.uploadAPI.method || 'POST';\n this.formatsAllowed = this.config.formatsAllowed || '*';\n this.multiple = this.config.multiple || false;\n this.headers = this.config.uploadAPI.headers || {};\n this.params = this.config.uploadAPI.params || {};\n this.responseType = this.config.uploadAPI.responseType || 'json';\n this.withCredentials = this.config.uploadAPI.withCredentials || false;\n }\n this.formatsAllowedText =\n this.formatsAllowed === '*' ? '' : '(' + this.formatsAllowed + ')';\n this.fileNameIndex = this.config.fileNameIndex === false ? false : true;\n this.autoUpload = this.config.autoUpload || false;\n if (this.config.replaceTexts) {\n this.replaceTexts = {\n ...this.replaceTexts,\n ...this.config.replaceTexts,\n };\n }\n }\n\n // Reset when resetUpload value changes from false to true.\n if (changes.resetUpload) {\n if (changes.resetUpload.currentValue === true) {\n this.resetFileUpload();\n }\n }\n }\n\n /* Função resetar componente */\n resetFileUpload() {\n this.allowedFiles = [];\n this.Caption = [];\n this.notAllowedFiles = [];\n this.uploadMsg = false;\n this.enableUploadBtn = false;\n }\n\n /* Detectar mudança */\n onChange(event: any) {\n this.fileSelected.emit(event);\n this.notAllowedFiles = [];\n const fileExtRegExp: RegExp = /(?:\\.([^.]+))?$/;\n let fileList: FileList;\n\n if (this.afterUpload || !this.multiple) {\n this.allowedFiles = [];\n this.Caption = [];\n this.afterUpload = false;\n }\n\n if (event.type === 'drop') {\n fileList = event.dataTransfer.files;\n } else {\n fileList = event.target.files || event.srcElement.files;\n }\n\n // 'forEach' does not exist on 'filelist' that's why this good old 'for' is used.\n // tslint:disable-next-line: for-of\n for (let i = 0; i < fileList.length; i++) {\n const _currentFileExt: any = fileExtRegExp.exec(fileList[i].name);\n const currentFileExt =\n typeof _currentFileExt[1] === 'string'\n ? _currentFileExt[1].toLowerCase()\n : '';\n const isFormatValid = this.formatsAllowed.includes('*')\n ? true\n : this.formatsAllowed.includes(currentFileExt);\n\n const isSizeValid = fileList[i].size <= this.maxSize;\n\n // Check whether current file format and size is correct as specified in the configurations.\n if (isFormatValid && isSizeValid) {\n this.allowedFiles.push(fileList[i]);\n } else {\n this.notAllowedFiles.push({\n fileName: fileList[i].name,\n fileSize: this.convertSize(fileList[i].size),\n errorMsg: !isFormatValid ? 'Invalid format' : 'Invalid size',\n });\n }\n }\n\n // If there's any allowedFiles.\n if (this.allowedFiles.length > 0) {\n this.enableUploadBtn = true;\n // Upload the files directly if theme is attach pin (as upload btn is not there for this theme) or autoUpload is true.\n if (this.theme === 'attachPin' || this.autoUpload) {\n this.uploadFiles();\n }\n } else {\n this.enableUploadBtn = false;\n }\n\n this.uploadMsg = false;\n this.uploadStarted = false;\n this.uploadPercent = 0;\n event.target.value = null;\n }\n\n /* Função para enviar arquivo para servidor */\n uploadFiles() {\n this.progressBarShow = true;\n this.uploadStarted = true;\n this.notAllowedFiles = [];\n let isError = false;\n this.isAllowedFileSingle = this.allowedFiles.length <= 1;\n const formData = new FormData();\n\n // Add data to be sent in this request\n this.allowedFiles.forEach((file, i) => {\n formData.append(\n this.Caption[i] || 'file' + (this.fileNameIndex ? i : ''),\n this.allowedFiles[i]\n );\n });\n\n this.http\n .request(this.method.toUpperCase(), this.uploadAPI, {\n body: formData,\n reportProgress: true,\n observe: 'events',\n headers: this.headers,\n params: this.params,\n responseType: this.responseType,\n withCredentials: this.withCredentials,\n })\n .subscribe(\n (event) => {\n // Upload Progress\n if (event.type === HttpEventType.UploadProgress) {\n this.enableUploadBtn = false; // button should be disabled if process uploading\n const currentDone = event.loaded / event.total;\n this.uploadPercent = Math.round((event.loaded / event.total) * 100);\n } else if (event.type === HttpEventType.Response) {\n if (event.status === 200 || event.status === 201) {\n // Success\n this.progressBarShow = false;\n this.enableUploadBtn = false;\n this.uploadMsg = true;\n this.afterUpload = true;\n if (!isError) {\n this.uploadMsgText =\n this.replaceTexts.afterUploadMsg_success ||\n 'Successfully Uploaded !';\n this.uploadMsgClass = 'text-success lead';\n }\n } else {\n // Failure\n isError = true;\n this.handleErrors();\n }\n this.ApiResponse.emit(event);\n } else {\n //console.log('Event Other: ', event);\n }\n },\n (error) => {\n // Failure\n isError = true;\n this.handleErrors();\n this.ApiResponse.emit(error);\n }\n );\n }\n\n handleErrors() {\n this.progressBarShow = false;\n this.enableUploadBtn = false;\n this.uploadMsg = true;\n this.afterUpload = true;\n this.uploadMsgText =\n this.replaceTexts.afterUploadMsg_error || 'Error in uploading files';\n this.uploadMsgClass = 'text-danger lead';\n }\n\n removeFile(i: any, sf_na: any) {\n if (sf_na === 'sf') {\n this.allowedFiles.splice(i, 1);\n this.Caption.splice(i, 1);\n } else {\n this.notAllowedFiles.splice(i, 1);\n }\n\n if (this.allowedFiles.length === 0) {\n this.enableUploadBtn = false;\n }\n }\n\n convertSize(fileSize: number): string {\n return fileSize < 1024000\n ? (fileSize / 1024).toFixed(2) + ' KB'\n : (fileSize / 1024000).toFixed(2) + ' MB';\n }\n\n attachpinOnclick() {\n const element = document.getElementById('sel' + this.id);\n if (element !== null) {\n element.click();\n }\n }\n\n drop(event: any) {\n event.stopPropagation();\n event.preventDefault();\n this.onChange(event);\n }\n\n allowDrop(event: any) {\n event.stopPropagation();\n event.preventDefault();\n event.dataTransfer.dropEffect = 'copy';\n }\n}\n","<label for=\"sel{{id}}\" class=\"wco-form-upload\" (drop)=\"drop($event)\" (dragover)=\"allowDrop($event)\">\n <div class=\"wco-form-upload__info\">\n <span>Arraste-os aqui ou</span>\n <span>\n <span class=\"material-icons-outlined\">\nupload_file\n</span>\n <span>{{replaceTexts.selectFileBtn}}</span>\n </span>\n </div>\n <span class=\"upload__info\" *ngIf=\"!allowedFiles.length\" >{{description}}</span>\n <ng-container *ngIf=\"allowedFiles.length\">\n <span class=\"upload__info\" *ngFor=\"let sf of allowedFiles;let i=index\">\n {{sf.name}} <small>({{convertSize(sf.size)}})</small>\n </span>\n </ng-container>\n <input type=\"file\" id=\"sel{{id}}\" (change)=\"onChange($event)\" style=\"display: none\" title=\"Select file\"\n name=\"files[]\" [accept]=\"formatsAllowed\" [attr.multiple]=\"multiple ? '' : null\" />\n</label>","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MsgBoxFeedbackTypes } from './msg-box-feeback.types';\nimport { animate, style, transition, trigger } from '@angular/animations';\n@Component({\n selector: 'wco-msg-box-feedback',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './msg-box-feedback.component.html',\n styleUrls: ['./msg-box-feedback.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('fadeSlideInOut', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateY(10px)' }),\n animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n ]),\n transition(':leave', [\n animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),\n ]),\n ]),\n ],\n})\nexport class MsgBoxFeedbackComponent {\n /*\n * Sombra do componente\n * @param {boolean} shadow\n * @default true\n * @example true | false\n */\n @Input() shadow = false;\n\n /*\n * Modo do componente\n * @param {MsgBoxFeedbackTypes['mode']} mode\n * @default 'fit'\n * @example 'fit' | 'full'\n */\n @Input() mode: MsgBoxFeedbackTypes['mode'] = 'fit';\n /*\n * Título do componente\n * @param {MsgBoxFeedbackTypes['title']} title\n */\n @Input() title!: MsgBoxFeedbackTypes['title'];\n /*\n * Mensagem do componente\n * @param {MsgBoxFeedbackTypes['message']} message\n */\n @Input() message!: MsgBoxFeedbackTypes['message'];\n /*\n * Tipo do componente\n * @param {MsgBoxFeedbackTypes['type']} type\n */\n @Input() type: MsgBoxFeedbackTypes['type'] = 'error';\n\n /*\n * Remover botão de fechar\n * @param {boolean} hideClose\n */\n @Input() hideClose = false;\n\n /*\n * Evento emitido ao fechar o componente\n * @param {EventEmitter<any>}\n */\n @Output() onClose = new EventEmitter<any>();\n\n constructor() {}\n\n close(): void {\n this.onClose.emit(true);\n }\n}\n","<div \n [ngClass]=\"'box-feedback box-feedback-' + type + ' mode-' + mode\"\n [className]=\"shadow ? 'mode-shadow' : ''\"\n @fadeSlideInOut>\n <div class=\"box-feedback--icon\" *ngIf=\"type !== 'loading'\">\n <span *ngIf=\"type === 'error'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">error</span>\n <span *ngIf=\"type === 'warning'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">warning</span>\n <span *ngIf=\"type === 'info'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">info</span>\n <span *ngIf=\"type === 'success'\" class=\"material-icons\" style=\"color: var(--box-feedback-icon-color);\">check_circle</span>\n </div>\n <svg *ngIf=\"type === 'loading'\" class=\"spinner\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle class=\"loading-icon\" fill=\"none\" stroke=\"var(--box-feedback-icon-color)\" stroke-width=\"6\"\n stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </svg>\n <div class=\"box-feedback--content\">\n <div class=\"box-feedback--header\"> \n <h6 class=\"display-6 bold\">\n {{ title }}\n </h6>\n <a class=\"btn-close\" (click)=\"close()\" *ngIf=\"!hideClose\" >\n <svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.25 0.758431C10.925 0.433431 10.4 0.433431 10.075 0.758431L5.99998 4.8251L1.92498 0.750098C1.59998 0.425098 1.07498 0.425098 0.749976 0.750098C0.424976 1.0751 0.424976 1.6001 0.749976 1.9251L4.82498 6.0001L0.749976 10.0751C0.424976 10.4001 0.424976 10.9251 0.749976 11.2501C1.07498 11.5751 1.59998 11.5751 1.92498 11.2501L5.99998 7.1751L10.075 11.2501C10.4 11.5751 10.925 11.5751 11.25 11.2501C11.575 10.9251 11.575 10.4001 11.25 10.0751L7.17497 6.0001L11.25 1.9251C11.5666 1.60843 11.5666 1.0751 11.25 0.758431Z\" />\n </svg>\n </a>\n </div>\n <p class=\"display-p\">{{ message }}</p>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, NavigationEnd, RouterModule } from '@angular/router';\nimport { NavTabsOptions } from './tabs.types';\n\n@Component({\n selector: 'wco-navtabs',\n standalone: true,\n imports: [\n CommonModule,\n RouterModule\n ],\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class TabsComponent implements OnChanges, AfterViewInit{\n /**\n * @ignore\n */\n @ViewChild('navTabs')\n public navTabs!: ElementRef;\n\n /**\n * Variável para definir o tipo de navegação\n * @param {string} type\n */\n @Input()\n public type: 'header' | 'nav' = 'header';\n\n /**\n * Elementos divididos igualmente ocupando toda largura\n * @param {boolean} full\n */\n @Input()\n public full: boolean = false;\n\n /**\n * Variável para definir o item ativo e monitorar a mudança\n * @param {string} selected\n */\n @Input()\n public selected = ''\n\n /** habilitar reponsivo\n * @param {Boolean} enabledResponsive\n */\n @Input('enabled-responsive')\n public enabledResponsive: Boolean = true;\n\n /**\n * Opções de navegação por rotas\n * @param {NavTabsOptions[]} links\n */\n @Input('listOptions')\n public set setListOptions(links: NavTabsOptions[]) {\n if (links.length) {\n this.links = links.map((item: NavTabsOptions) => {\n return {\n ...item,\n type: item.type || 'link',\n options: { exact: item.path === '/' ? true : false },\n };\n });\n }\n }\n \n\n /**\n * Variável para definir se o componente terá borda ou não\n * @param {boolean} noBorder\n */\n @Input('no-border')\n public noBorder: boolean = false;\n\n @Input('autoScroll') autoScroll: boolean = true;\n\n\n /**\n * Evento de click no botão ou link do componente\n * @param {EventEmitter<void>} handleClick\n * @returns {void}\n */\n @Output()\n public handleClick: EventEmitter<void> = new EventEmitter();\n\n /**\n * @ignore\n */\n public links: NavTabsOptions[] = [];\n\n\n /**\n * Variavel se é mobile ou não\n */\n public isMobile = false;\n\n constructor(\n private readonly router: Router,\n private el: ElementRef\n ) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.handleActive(100, false);\n }\n });\n }\n\n /**\n * @ignore\n */\n ngOnChanges(changes: SimpleChanges) {\n if(changes['selected']) { \n console.log('selected', this.selected)\n this.handleActive(100, false);\n }\n }\n\n /**\n * @ignore\n */\n public ngAfterViewInit(): void {\n this.handleActive(1000, false);\n }\n\n /**\n * @ignore\n */\n public eventSubmit(link: any = ''): void {\n this.handleClick.emit(link);\n }\n\n /**\n * @ignore\n */\n public handleActive(timer = 100, buttonClick = true): void {\n setTimeout(() => {\n const _elementRef = this.el.nativeElement;\n const _element: HTMLElement = this.navTabs.nativeElement;\n\n\n if(_elementRef && _element ) {\n this.isMobile = _elementRef.clientWidth >= _element.clientWidth\n }\n\n const allActives = _element.querySelectorAll('button.active');\n\n const _elementChildActive = allActives[allActives.length - 1];\n\n if (!_elementChildActive) {\n return;\n }\n\n const left =\n _elementChildActive.getBoundingClientRect().left - _element.getBoundingClientRect().left;\n const widthbutton = _elementChildActive.getBoundingClientRect().width;\n _element.style.setProperty('--leftActive', left + 'px');\n _element.style.setProperty('--widthActive', widthbutton + 'px');\n if(this.autoScroll) {\n _elementChildActive.scrollIntoView({ block: 'end', behavior: 'smooth' });\n }\n if (buttonClick) {\n this.handleClick.emit();\n }\n if (this.enabledResponsive && this.autoScroll) {\n _elementChildActive.scrollIntoView({\n block: 'end',\n behavior: 'smooth',\n });\n }\n }, timer);\n }\n}","\n <nav \n class=\"wco-navtabs\" \n #navTabs role=\"navigation\"\n [class.no-border]=\"noBorder\" \n [class.navTabs-full]=\"full\"\n [class.navTabs-mobile]=\"!isMobile\"\n>\n <ng-container *ngFor=\"let link of links\">\n <ng-container *ngIf=\"link.type === 'link'\">\n <button \n (click)=\"eventSubmit()\" \n [class.color-to-nav]=\"type === 'nav'\"\n [routerLink]=\"link.path\" routerLinkActive=\"active\" [attr.id]=\"'page-' + link.path\"\n >\n {{ link.name }}\n </button>\n </ng-container>\n <ng-container *ngIf=\"link.type === 'button'\">\n <button \n (click)=\"eventSubmit(link.path)\" \n [class.color-to-nav]=\"type === 'nav'\"\n [class.active]=\"link.path === selected\"\n [attr.id]=\"'page-' + link.path\"\n >\n {{ link.name }}\n </button>\n </ng-container>\n </ng-container>\n <ng-content></ng-content>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'wco-pagination',\n templateUrl: './pagination.component.html',\n standalone: true,\n imports: [CommonModule],\n styleUrls: ['./pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaginationComponent implements AfterContentInit {\n /**\n * Evento que se emite quando se clica em um item da paginação\n */\n @Output()\n public changePage = new EventEmitter();\n\n /**\n * Total de páginas\n * @default 0\n * @type number\n */\n @Input()\n public totalPage = 0;\n\n\n /**\n * Página atual\n * @default 1\n * @type number\n * */\n @Input()\n public currenPage = 1;\n\n /**\n * Modo de exibição da paginação\n * @default default\n * @type string\n */\n @Input()\n public mode: 'default' | 'simple' = 'default';\n\n \n\n /**\n * Verifica tamanho da tela para exibir modo simples\n */\n ngAfterContentInit() {\n if (window.innerWidth < 768) {\n this.mode = 'simple';\n }\n }\n\n\n /**\n * Retorna um array com os números das páginas e os pontos de suspensão\n */\n public pagination() {\n const current = this.currenPage;\n const last = this.totalPage;\n const delta = current >= 2 ? current >= 4 ? 1 : 2 : 3;\n const left = current - delta;\n const right = current + delta + 1;\n const range = [];\n const rangeWithDots = [];\n let l;\n\n for (let i = 1; i <= last; i++) {\n if (i === 1 || i === last || (i >= left && i < right)) {\n range.push(i);\n }\n }\n\n for (const i of range) {\n if (l) {\n if (i - l === 2) {\n rangeWithDots.push(l + 1);\n } else if (i - l !== 1) {\n rangeWithDots.push('...');\n } else {\n // empty\n }\n }\n rangeWithDots.push(i);\n l = i;\n }\n\n return rangeWithDots;\n }\n\n /**\n * Seguir para a próxima página\n */\n public nextPage() {\n if (this.currenPage < this.totalPage) {\n this.currenPage += 1;\n this.changePage.emit(this.currenPage);\n }\n }\n\n /**\n * Voltar para a página anterior\n */\n public previousPage() {\n if (this.currenPage >= 2) {\n this.currenPage -= 1;\n this.changePage.emit(this.currenPage);\n }\n }\n\n /**\n * Ir para a página selecionada\n * @param i\n * @returns void\n */\n public out(i: number | string) {\n this.currenPage = parseInt(`${i}`, 10);\n console.log(i, this.currenPage);\n this.changePage.emit(i);\n }\n}\n","<div class=\"pagination\"\n *ngIf=\"!!totalPage && totalPage >= 2\"\n ngClass=\"pagination-{{mode}}\"\n>\n\n <ng-container *ngIf=\"mode === 'simple'\">\n <button (click)=\"previousPage()\" [ngClass]=\"{ disable: currenPage === 1 }\" title=\"Página anterior\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n <button class=\"active\">{{currenPage}}</button>\n <span>/</span>\n <button>{{totalPage}}</button>\n <button (click)=\"nextPage()\" class=\"last-button\" [ngClass]=\"{ disable: currenPage === totalPage }\"\n title=\"Proxima Página\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"mode === 'default'\">\n <button (click)=\"previousPage()\" [ngClass]=\"{ disable: currenPage === 1 }\" title=\"Página anterior\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n <button *ngFor=\"let i of pagination()\" [ngClass]=\"{ \n active: currenPage === i,\n disable: i === '...'\n }\" (click)=\"out(i)\">\n {{ i }}\n </button>\n <button (click)=\"nextPage()\" class=\"last-button\" [ngClass]=\"{ disable: currenPage === totalPage }\"\n title=\"Proxima Página\">\n <svg width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.00002 9.87498L3.12002 5.99498L7.00002 2.11498C7.39002 1.72498 7.39002 1.09498 7.00002 0.704976C6.61002 0.314976 5.98002 0.314976 5.59002 0.704976L1.00002 5.29498C0.61002 5.68498 0.61002 6.31498 1.00002 6.70498L5.59002 11.295C5.98002 11.685 6.61002 11.685 7.00002 11.295C7.38002 10.905 7.39002 10.265 7.00002 9.87498Z\"\n fill=\"var(--wco-color-primary-600)\" />\n </svg>\n </button>\n </ng-container>\n\n\n\n</div>\n\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wco-avatar',\r\n standalone: true,\r\n templateUrl: './user-avatar.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [CommonModule],\r\n styleUrls: ['./user-avatar.component.scss']\r\n})\r\nexport class UserAvatarComponent implements OnChanges {\r\n\r\n /** Nome do usuário */\r\n @Input('name') userName: string = \"\";\r\n /** Url da imagem opcional */\r\n @Input('image') userAvatar: string = \"\";\r\n /** Tamanho do componente */\r\n @Input('size') size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n /** Theme mudança de cores do componente */\r\n @Input('theme') theme: 'primary' | 'secondary' | 'light' | 'dark' = 'secondary';\r\n\r\n /** solid tipo com bg predominant */\r\n @Input('solid') solid: boolean = false;\r\n\r\n /**\r\n * @ignore\r\n */\r\n public userNameLetters: string = \"\";\r\n\r\n constructor() { }\r\n\r\n\r\n /** Mudança de parâmetros dinâmicos */\r\n ngOnChanges() {\r\n this._prepareNameLetters();\r\n }\r\n\r\n /** Retorne o nome abreviado */\r\n private _prepareNameLetters(): void {\r\n let capitalizeLetters: string = \"\";\r\n if( this.userName ) {\r\n capitalizeLetters = this.userName.charAt(0);\r\n let _arrUserName: string[] = this.userName.split(' ');\r\n if (_arrUserName.length > 1) {\r\n capitalizeLetters += _arrUserName[_arrUserName.length -1].charAt(0);\r\n }\r\n }\r\n this.userNameLetters = capitalizeLetters.toUpperCase();\r\n }\r\n\r\n}\r\n","<div\r\n [class]=\"\r\n 'wco-user-avatar wco-user-avatar__size--' + size + ' wco-user-avatar__theme--' + theme + ' ' + (solid ? 'wco-user-solid' : '') \"\r\n [title]=\"userName\" >\r\n <span>{{userNameLetters}}</span>\r\n <img *ngIf=\"userAvatar\" [src]=\"userAvatar\" [alt]=\"userName\" />\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-smart-select-option',\n standalone: true,\n imports: [CommonModule],\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class SmartSelectOptionComponent implements AfterViewInit {\n @Input() value: any;\n @Input() label!: string;\n @Input() iconPrefix!: string;\n @Input() disabled = false;\n @Input() viewOnly = false;\n safeHtmlContent: SafeHtml | undefined;\n\n constructor(private el: ElementRef, private sanitizer: DomSanitizer) {}\n\n ngAfterViewInit() {\n const rawHtmlContent = this.el.nativeElement.innerHTML.trim();\n this.safeHtmlContent =\n rawHtmlContent.length > 0\n ? this.sanitizer.bypassSecurityTrustHtml(rawHtmlContent)\n : undefined;\n }\n}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SmartSelectOptionComponent } from './smart-select-options.component';\n\n@Component({\n selector: 'wco-smart-select',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n templateUrl: './smart-select.component.html',\n styleUrls: ['./smart-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SmartSelectComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: SmartSelectComponent,\n multi: true,\n },\n ],\n})\nexport class SmartSelectComponent implements ControlValueAccessor, Validator {\n @ContentChildren(SmartSelectOptionComponent) options:\n | QueryList<SmartSelectOptionComponent>\n | undefined;\n\n @Output() onChange = new EventEmitter<{ type: string; value: any }>();\n\n /* Id do elemento */\n @Input()\n inputId = 'select_' + Math.random().toString(36).substring(2);\n\n /* Attr name do elemento */\n @Input() inputName?: string;\n\n @Input() IconMaterial = 'arrow_drop_down';\n\n /* Placeholder do select */\n @Input()\n placeholder = 'Selecione uma opção';\n\n /* Label do select */\n @Input() label = ' ';\n\n /* Força visualização do erro */\n @Input() showError = false;\n\n /* Mostrar campos de busca */\n @Input()\n showSearch = false;\n\n @Input()\n placeholderSearch: string = 'Buscar';\n\n /* Texto exibido quando não há resultados */\n @Input()\n textEmpty = 'Não há resultados para a busca';\n\n /* habilitar opção de multiplas seleções */\n @Input()\n multiSelect = false;\n\n /* Limitar visualização de itens selecionados */\n @Input()\n showMaxSelectedLabel = 0;\n\n /* Tipos pré definidos de checkbox, radio ou null */\n @Input()\n typePrefix: 'checkbox' | 'radio' | null = null;\n\n /* Confirmação de o campo é obrigatório */\n @Input()\n required: boolean = false;\n\n @Input() formControlName: any | undefined;\n\n isMobile = window.innerWidth <= 768;\n\n formValue: any;\n isFocused = false;\n preventEscapeFocus = false;\n autocompleteControl = new FormControl();\n filteredOptions: any[] = [];\n\n showList = false;\n\n constructor(private el: ElementRef) {}\n\n onTouched = () => {\n this.isFocused = true;\n };\n\n /// estados do control\n\n ngOnInit() {}\n\n\n // Carrega os valores do formControl para o componente e renderiza as opções\n writeValue(obj: any): void {\n if (this.autocompleteControl.value === this.formValue) {\n return;\n }\n this.formValue = obj;\n this.autocompleteControl.setValue(obj);\n this.renderBoxOptions();\n }\n\n validate(_control: FormControl): ValidationErrors | null {\n this.autocompleteControl = _control || new FormControl();\n return _control.validator;\n }\n\n registerOnChange(fn: any): void {\n this.onChange.subscribe((event) => {\n if (event.type === 'updateValue') {\n fn(event.value);\n }\n });\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n get hasError(): boolean {\n return this.showError\n ? this.showError\n : this.autocompleteControl.invalid &&\n this.autocompleteControl.touched &&\n !this.showList;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n if (isDisabled) {\n this.autocompleteControl.disable();\n } else {\n this.autocompleteControl.enable();\n }\n }\n\n /// Abertura e fechamento da lista\n onFocusIn(focus = false) {\n this.renderBoxOptions();\n this.autocompleteControl.markAsTouched();\n this.onTouched();\n this.isFocused = focus;\n this.showList = focus;\n this.positionBox();\n }\n\n /// here function to position box element top or bottom\n positionBox() {\n if (this.isMobile) {\n return;\n }\n\n const componentBox = this.el.nativeElement;\n if (!componentBox) {\n return;\n }\n const componentBoxPosition = componentBox.getBoundingClientRect();\n const inputId = componentBox.querySelector('.form-field');\n const box = componentBox.querySelector('.wco-smartSelect--box');\n const inputIdPosition = inputId.getBoundingClientRect().height;\n const pageHeight = window.innerHeight;\n if (box && componentBoxPosition.y + 320 >= pageHeight) {\n box.style.bottom = inputIdPosition + 'px';\n box.style.height = `var(--wco-smart-select-box-max-height)`;\n box.style.top = 'initial';\n } else {\n box.style.top = inputIdPosition + 'px';\n box.style.bottom = 'initial';\n box.style.height = `auto`;\n }\n }\n\n onSelect(option?: any) {\n if (option.disabled || option.viewOnly) {\n return;\n }\n\n const oldValue = this.formValue;\n\n if (this.multiSelect) {\n if (typeof option.value === 'object') {\n const list = this.compareMultiValuesArray(option);\n const hasValueOption = list.some((item: any) => item.selected);\n if (hasValueOption) {\n this.formValue = list\n .filter((item: any) => !item.selected)\n .map((item: any) => item.item);\n } else {\n this.formValue = [...(this.formValue || []), option.value];\n }\n } else {\n const index = this.formValue?.indexOf(option.value);\n if (index !== undefined && index > -1) {\n this.formValue?.splice(index, 1);\n } else {\n this.formValue = [...(this.formValue || []), option.value];\n }\n }\n this.autocompleteControl.setValue(this.formValue);\n } else {\n this.formValue = option.value;\n this.autocompleteControl.setValue(option.value);\n this.showList = false;\n }\n\n if (oldValue !== this.formValue) {\n this.onChange.emit({ type: 'updateValue', value: this.formValue });\n }\n\n this.renderBoxOptions();\n }\n\n // Show label span\n get selectedLabel() {\n const selectedOption = this.options?.find(\n (option) =>\n this.normalizeText(String(option.value)) ===\n this.normalizeText(String(this.formValue))\n );\n return selectedOption?.label || ' ';\n }\n\n // show label multi select\n get selectedLabelMulti(): { value: string; label: string }[] {\n const selectedOptions = this.options?.filter((option) => {\n if (typeof option.value === 'object') {\n return this.compareValueArray(option);\n } else {\n return this.formValue?.includes(option.value);\n }\n });\n\n if (!selectedOptions?.length) {\n return [];\n }\n\n if (!this.showMaxSelectedLabel) {\n return selectedOptions;\n }\n\n if (\n this.showMaxSelectedLabel &&\n selectedOptions.length > this.showMaxSelectedLabel\n ) {\n return selectedOptions.slice(0, this.showMaxSelectedLabel);\n }\n\n return selectedOptions;\n }\n\n private valueToArray(options: any) {\n const keys = Object.keys(options);\n const value: any[] = [];\n keys.forEach((key) => {\n if (\n options[key] &&\n options[key] !== '' &&\n typeof options[key] !== 'object' &&\n typeof options[key] !== 'function' &&\n typeof options[key] !== 'boolean'\n ) {\n value.push(options[key]);\n }\n });\n return value;\n }\n\n private compareValueArray(option: any, value = this.formValue): any[] {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n return value.some((item: any) => {\n const itemArray = this.valueToArray(item);\n return itemArray.every((itemValue: any) =>\n valuesItems.includes(itemValue)\n );\n });\n }\n return [];\n }\n\n private compareMultiValuesArray(option: any, value = this.formValue): any[] {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n const formValueArray = value.map((item: any, index: number) => {\n const itemArray = this.valueToArray(item);\n return {\n index,\n item,\n selected: itemArray.some((itemValue: any) =>\n valuesItems.includes(itemValue)\n ),\n };\n });\n // Remove duplicate items\n const uniqueFormValueArray = Array.from(\n new Set(formValueArray.map((item: any) => JSON.stringify(item)))\n ).map((item: any) => JSON.parse(item));\n\n return uniqueFormValueArray;\n }\n return [];\n }\n\n get selectedLabelMultiCount(): number {\n const show = this.showMaxSelectedLabel || 0;\n const selectedOptions = this.options?.filter((option) =>\n this.formValue?.includes(option.value)\n );\n if (!selectedOptions?.length) {\n return 0;\n }\n\n if (show > 0 && selectedOptions.length > show) {\n return selectedOptions.length - show;\n }\n\n return 0;\n }\n\n removeItem(option: any) {\n this.onSelect(option);\n setTimeout(() => {\n this.showList = false;\n }, 100);\n }\n\n onKeyPress(event: any) {\n event.preventDefault();\n this.renderBoxOptions();\n }\n\n onFilter(event: any) {\n const value = event.target.value;\n if (!value) {\n this.renderBoxOptions();\n return;\n }\n\n if (this.filteredOptions.length) {\n this.renderBoxOptions(value);\n }\n }\n\n onResize() {\n this.renderBoxOptions();\n this.positionBox();\n }\n\n onFocusOut() {\n if (!this.preventEscapeFocus && !this.isMobile) {\n this.isFocused = false;\n this.showList = false;\n }\n }\n\n closeList() {\n this.preventEscapeFocus = true;\n this.isFocused = false;\n this.showList = false;\n }\n\n selectedValue(option: { value: any; label: string; safeHtmlContent: any }) {\n if (this.multiSelect) {\n if (typeof option.value === 'object') {\n if (option && option.value) {\n const valuesItems = this.valueToArray(option.value);\n return this.formValue.some((item: any) => {\n const itemArray = this.valueToArray(item);\n return itemArray.every((itemValue: any) =>\n valuesItems.includes(itemValue)\n );\n });\n }\n } else {\n return this.formValue?.includes(option.value);\n }\n }\n\n return option.value === this.formValue;\n }\n\n private renderBoxOptions(filterValue: string | null = null) {\n if (!this.options || !this.options.length) {\n return;\n }\n this.filteredOptions = this.options\n ?.map((option) => {\n return {\n value: option.value,\n iconPrefix: option.iconPrefix,\n htmlLabel: option.safeHtmlContent || option.label,\n disabled: option.disabled,\n viewOnly: option.viewOnly,\n };\n })\n .filter((option) => {\n if (!filterValue) {\n return true;\n }\n const normalizedFilter = this.normalizeText(filterValue);\n const normalizedLabel = this.normalizeText(\n option.htmlLabel?.toString() || ''\n );\n return normalizedLabel.includes(normalizedFilter);\n });\n }\n\n private normalizeText(text: string): string {\n return text\n .replace(/[\\W_]+/g, '') // Remove caracteres especiais e sublinhados\n .toLowerCase();\n }\n}\n","<div\n class=\"wco-smartSelect\"\n [ngClass]=\"{\n 'wco-smartSelect--open': showList,\n 'wco-smartSelect--isMobile': isMobile,\n}\"\n (resize)=\"onResize()\"\n (mouseleave)=\"onFocusOut()\"\n>\n <div class=\"form-field\" [ngClass]=\"{'form--error': hasError}\">\n <input\n *ngIf=\"!multiSelect\"\n class=\"form-field__input\"\n [disabled]=\"autocompleteControl.disabled\"\n id=\"{{ inputId ? inputId : '' }}\"\n name=\"{{ inputName ? inputName : '' }}\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n (keypress)=\"onKeyPress($event)\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n type=\"text\"\n [value]=\"selectedLabel\"\n aria-label=\"Selecione uma opção\"\n />\n <div\n *ngIf=\"multiSelect\"\n class=\"form-field__input readonly multiSelect\"\n [ngClass]=\"{'form-field--error': hasError, 'form-field--disabled': autocompleteControl.disabled }\"\n [class.required]=\"required\"\n (click)=\"onFocusIn(true)\"\n (focusin)=\"onFocusIn()\"\n (keyup.escape)=\"onFocusOut()\"\n >\n <ng-container *ngIf=\"!selectedLabelMulti.length\">\n <span class=\"wco-smart-select-placeholder\">{{ placeholder || 'Selecione uma opção' }}</span>\n </ng-container>\n <ng-container *ngIf=\"selectedLabelMulti.length\">\n <span *ngFor=\"let optionSelected of selectedLabelMulti\" class=\"wco-smart-select-item\">\n {{optionSelected.label}} \n <span class=\"wco-smart-select-remove\" (click)=\"removeItem(optionSelected)\">\n <span class=\"material-icons\">close</span>\n </span>\n </span>\n <span class=\"wco-smart-select-item\" *ngIf=\"selectedLabelMultiCount >= 1\">\n +{{selectedLabelMultiCount}} \n </span>\n </ng-container>\n </div>\n <label>{{ label }}</label>\n <span class=\"material-icons wco-smart-select--arrow\">{{ IconMaterial }}</span>\n </div>\n <div\n class=\"wco-smartSelect--box\"\n [ngClass]=\"{\n 'wco-smartSelect--box--open': showList && !autocompleteControl.disabled\n }\"\n >\n <div class=\"wco-smartSelect--isMobile-close\">\n <button\n (click)=\"closeList()\"\n class=\"btn btn-sm btn-primary btn-outline mb-nano\"\n >\n fechar\n </button>\n </div>\n <ul>\n <li\n tabindex=\"0\"\n class=\"wco-smart-selected-filter\"\n *ngIf=\"showList && showSearch\"\n >\n <input\n [placeholder]=\"placeholderSearch\"\n (keyup)=\"onFilter($event)\"\n aria-label=\"Search through site content\"\n type=\"text\"\n />\n </li>\n <li\n *ngFor=\"let option of filteredOptions; let i = index\"\n [tabindex]=\"i + 1\"\n [ngClass]=\"{\n 'wco-smart-selected': selectedValue(option),\n 'wc-smart-select-disabled-option': option.disabled,\n 'wc-smart-select-view-only-option': option.viewOnly,\n }\"\n (click)=\"onSelect(option)\"\n >\n <span class=\"wco-smart-select-label-prefix\">\n <ng-container *ngIf=\"typePrefix === 'checkbox'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option) ? \"check_box\" : \"check_box_outline_blank\"\n }}\n </span>\n </ng-container>\n <ng-container *ngIf=\"typePrefix === 'radio'\">\n <span class=\"material-icons-outlined\">\n {{\n selectedValue(option)\n ? \"radio_button_checked\"\n : \"radio_button_unchecked\"\n }}\n </span>\n </ng-container>\n <ng-container\n *ngIf=\"\n !!option.iconPrefix &&\n typePrefix !== 'radio' &&\n typePrefix !== 'checkbox'\n \"\n >\n <span class=\"material-icons-outlined\">\n {{ option.iconPrefix }}\n </span>\n </ng-container>\n </span>\n <span\n class=\"wco-smart-select-label\"\n [innerHTML]=\"option.htmlLabel\"\n ></span>\n </li>\n <li *ngIf=\"!filteredOptions.length\">\n <p class=\"display-body\">{{ textEmpty }}</p>\n </li>\n </ul>\n </div>\n </div>\n ","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nexport type TimelineItem = {\n title: string;\n description: string;\n descriptionPre?: {\n text: string;\n customClass: string;\n };\n descriptionPos?: {\n text: string;\n customClass: string;\n };\n date: string;\n status: 'finalized' | 'current' | 'waiting' | 'error';\n action?: {\n handler: () => void;\n label: string;\n };\n};\n\n@Component({\n selector: 'wco-timeline',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimelineComponent {\n @Input() timelineItems: TimelineItem[] = [];\n\n statusToIcon = {\n finalized: 'check',\n current: '',\n waiting: '',\n error: 'priority_high',\n };\n}\n","<div class=\"wco-timeline\">\n <div class=\"wco-timeline-item\" *ngFor=\"let item of timelineItems; let i = index\">\n <div class=\"wco-timeline-item-dot-container\">\n <div class=\"wco-timeline-item-dot-container-inner\">\n <span class=\"wco-timeline-item-dot-number\">\n {{ timelineItems.length - i }}\n </span>\n <div class=\"wco-timeline-item-dot-line-container\">\n <div [className]=\"'wco-timeline-item-dot wco-timeline-item-dot-' + item.status\">\n <span [className]=\"'material-icons wco-timeline-item-dot-icon wco-timeline-item-dot-icon-' + item.status\"> {{ statusToIcon[item.status] }} </span>\n </div>\n <hr class=\"wco-timeline-item-dot-line\" />\n </div>\n </div>\n </div>\n <div class=\"wco-timeline-item-content-container\">\n <div class=\"wco-timeline-item-content\">\n <h4 [className]=\"'wco-timeline-item-content-title wco-timeline-item-content-title-' + item.status\"> {{ item.title }} </h4>\n <p *ngIf=\"item.descriptionPre?.text\" [className]=\"item.descriptionPre?.customClass\"> {{ item.descriptionPre?.text }} </p>\n <p [className]=\"'wco-timeline-item-content-description wco-timeline-item-content-description-' + item.status\"> {{ item.description }} </p>\n <p *ngIf=\"item.descriptionPos?.text\" [className]=\"item.descriptionPos?.customClass\"> {{ item.descriptionPos?.text }} </p>\n <button class=\"wco-btn btn-primary btn-link\" *ngIf=\"item.action\" (click)=\"item.action.handler()\" [disabled]=\"item.status === 'waiting'\"> {{item.action.label}} </button>\n </div>\n <span [className]=\"'wco-timeline-item-content-date wco-timeline-item-content-date-' + item.status\"> {{ item.date }} </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewChecked,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n Output,\n ViewChild,\n signal,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n PreviewFileActionsTypes,\n PreviewFileStatusTypes,\n} from './preview-file.types';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-preview-file',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './preview-file.component.html',\n styleUrls: ['./preview-file.component.scss'],\n})\nexport class PreviewFileComponent implements AfterViewChecked {\n @ViewChild('previewFileElement', { static: false })\n previewFileElement!: ElementRef<HTMLDivElement>;\n\n /* Nome do arquivo (optioncal) */\n @Input() filename = '';\n /* Formato do arquivo (optional) */\n @Input() format = '';\n /* Mostrar previsualização do arquivo (optional) */\n @Input() preview = true;\n /* Ações disponíveis para o arquivo (optional) */\n @Input() actions!: PreviewFileActionsTypes[];\n /* Status do arquivo (optional) */\n @Input() status!: PreviewFileStatusTypes;\n /* URL do arquivo (optional) */\n @Input() url = '';\n /* Conteúdo customizado (optional) */\n @Input() customContent = false;\n /* Tipo de visualização do arquivo (optional) */\n @Input() type: 'mini' | 'box' = 'box';\n /* Título do arquivo (optional) */\n @Input() title = '';\n\n /* Arquivo para visualização nativo do input file */\n @Input() set setfile(file: File | null | undefined) {\n if (!file) return;\n this.transformFiles(file);\n }\n\n /* Evento de clique nas ações do arquivo */\n @Output() clickEvent = new EventEmitter<{\n action: PreviewFileActionsTypes;\n data: any;\n }>();\n\n\n get name() {\n if(!!this.filename) {\n return this.filename\n }\n\n if(!!this.url) {\n const url = new URL(this.url);\n const name = url.pathname.split('/').pop();\n const total = name ? name?.length >= 30 ? 15 : 0 : 0;\n return name?.substring(total, name.length);\n }\n return 'Nome não informado';\n }\n\n get _format() { \n\n if (!!this.format) {\n return this.format;\n }\n\n if (this.url) {\n const url = new URL(this.url);\n const format = url.pathname.split('.').pop();\n return format;\n }\n\n return 'file';\n }\n \n idRandom = 'preview-' + Math.random().toString(36).substring(7);\n id = 'modal-' + this.idRandom;\n\n y = signal<string | null>('100px');\n x = signal<string | null>('100px');\n\n constructor(private sanitizer: DomSanitizer, private ngZone: NgZone) {}\n\n ngAfterViewChecked() {\n this.positionThumbnail();\n }\n\n\n private transformFiles(file: File) {\n if (file) {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n this.filename = file.name;\n this.format = file.type || 'file';\n this.url = e.target.result;\n };\n reader.readAsDataURL(file);\n }\n }\n\n transformPDFSecurity(url: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n private positionThumbnail() {\n const previewFileElement = this.previewFileElement.nativeElement;\n const cardPosition = previewFileElement.getElementsByClassName(\n 'wco-previewFile--thumbl'\n )[0] as HTMLElement;\n\n if (cardPosition) {\n const { x, y } = cardPosition.getBoundingClientRect();\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.y.set(y + 'px');\n this.x.set(x + 'px');\n }, 1000);\n });\n }\n }\n\n public actionEvent(action: PreviewFileActionsTypes) {\n this.clickEvent.emit({\n action,\n data: {\n filename: this.filename,\n format: this.format,\n url: this.url,\n file: this.url,\n },\n });\n }\n\n ////////////////////\n // Eventos de modal\n ////////////////////\n modalPreview() {\n if (!!!this.url || this.typeFileFormat() === 'file') {\n return;\n }\n this.positionThumbnail();\n const modal: any = document.getElementById(this.id);\n modal?.showModal();\n }\n\n closeDialog() {\n const modal: any = document.getElementById(this.id);\n modal?.close();\n }\n\n ///////////////////////////////////\n /// Formatos e posições de ícones\n ///////////////////////////////////\n getIconMaterial(type: string): string {\n const iconMap: { [key: string]: string } = {\n 'pdf': 'picture_as_pdf',\n 'application/pdf': 'picture_as_pdf',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n 'description',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n 'table_chart',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\n 'slideshow',\n 'image/jpeg': 'image',\n 'image/png': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/webp': 'image',\n png: 'image',\n jpeg: 'image',\n gif: 'image',\n bmp: 'image',\n webp: 'image',\n 'video/mp4': 'ondemand_video',\n 'mp4': 'ondemand_video',\n 'video/quicktime': 'ondemand_video',\n 'video/x-msvideo': 'ondemand_video',\n 'video/x-ms-wmv': 'ondemand_video',\n 'audio/mpeg': 'audiotrack',\n 'audio/ogg': 'audiotrack',\n 'audio/wav': 'audiotrack',\n 'audio/webm': 'audiotrack',\n };\n\n return iconMap[type] || 'insert_drive_file';\n }\n\n typeFileFormat(): 'pdf' | 'image' | 'video' | 'file' {\n const format = this._format || 'file'\n const typeMap: { [key: string]: 'pdf' | 'image' | 'video' | 'file' } = {\n pdf: 'pdf',\n 'application/pdf': 'pdf',\n 'image/jpeg': 'image',\n 'image/png': 'image',\n 'image/gif': 'image',\n 'image/bmp': 'image',\n 'image/webp': 'image',\n png: 'image',\n jpeg: 'image',\n jpg: 'image',\n gif: 'image',\n bmp: 'image',\n webp: 'image',\n mp4: 'video',\n mov: 'video',\n 'video/mp4': 'video',\n 'video/quicktime': 'video'\n };\n\n return typeMap[format] || 'file';\n }\n}\n","<div [class]=\"'wco-previewFile wco-previewFile-type' + type\" #previewFileElement>\n <h4 *ngIf=\"title\" class=\"display-body bold\">{{ title }}</h4>\n\n <div [class]=\"'wco-previewFile--thumbl type-file-' + typeFileFormat()\" [id]=\"idRandom\">\n <span class=\"wco-previewFile-preview\" (click)=\"preview ? modalPreview() : null\" role=\"button\" tabindex=\"0\">\n <ng-container *ngIf=\"typeFileFormat() === 'image' && !!url\">\n <img [src]=\"url\" alt=\"Imagem do documento\" loading=\"lazy\" role=\"img\">\n </ng-container>\n <ng-container *ngIf=\"typeFileFormat() !== 'image' || !url\">\n <span class=\"material-icons\" role=\"presentation\">{{ getIconMaterial(format) }}</span>\n </ng-container>\n </span>\n <h5 (click)=\"preview ? modalPreview() : null\" role=\"heading\" aria-level=\"2\">\n {{ name }}</h5>\n </div>\n\n <div class=\"wco-previewFile__action\">\n <div class=\"wco-previewFile__action--status\" *ngIf=\"!customContent\">\n <ng-container *ngIf=\"status && status.type && status.text\">\n <span [class]=\"'wco-tag tag-' + status.type\" role=\"status\">\n <span *ngIf=\"status.iconMaterial\" class=\"material-icons\" role=\"presentation\">{{ status.iconMaterial }}</span>\n {{ status.text }}\n </span>\n <div>\n <h6 *ngIf=\"status.prefixDescription\">\n <strong>{{ status.prefixDescription }}</strong>\n </h6>\n <p *ngIf=\"status.description\">{{ status.description }}</p>\n </div>\n </ng-container>\n </div>\n <div class=\"wco-previewFile__action--buttons\" *ngIf=\"!customContent\">\n <ng-container *ngIf=\"!customContent && !!actions?.length\">\n <ng-container>\n <button *ngIf=\"actions.includes('refresh')\" (click)=\"actionEvent('refresh')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n <span class=\"material-icons\" role=\"presentation\">cached</span>\n Reenviar\n </button>\n <button *ngIf=\"actions.includes('aproved')\" (click)=\"actionEvent('aproved')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n Aprovar\n <span class=\"material-icons\" role=\"presentation\">done</span>\n </button>\n <button *ngIf=\"actions.includes('reproved')\" (click)=\"actionEvent('reproved')\"\n class=\"wco-btn btn-primary btn-outline btn-sm\" role=\"button\" tabindex=\"0\">\n Recusar\n <span class=\"material-icons\" role=\"presentation\">close</span>\n </button>\n <div *ngIf=\"actions.includes('download') || actions.includes('delete') \" class=\"wco-previewFile__action--buttonsIcon\">\n <button *ngIf=\"actions.includes('download')\" (click)=\"actionEvent('download')\" class=\"wco-previewFile--buttonIcon\"\n role=\"button\" tabindex=\"0\">\n <span class=\"material-icons-outlined\" role=\"presentation\">file_download</span>\n </button>\n <button *ngIf=\"actions.includes('delete')\" (click)=\"actionEvent('delete')\"\n class=\"wco-previewFile__action--buttonIcon\" role=\"button\" tabindex=\"0\">\n <span class=\"material-icons-outlined\" role=\"presentation\">delete</span>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"customContent\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-container *ngIf=\"preview && x() && y()\">\n <dialog [id]=\"id\" [ngStyle]=\"{'--dialog-x': x(), '--dialog-y': y()}\" role=\"dialog\" aria-modal=\"true\">\n <div>\n <div class=\"dialog-content\">\n <img *ngIf=\"typeFileFormat() === 'image'\" [src]=\"url\" alt=\"Imagem do documento\" loading=\"lazy\" role=\"img\">\n <video *ngIf=\"typeFileFormat() === 'video'\" [src]=\"url\" controls role=\"video\"></video>\n <iframe *ngIf=\"typeFileFormat() === 'pdf'\" [src]=\"transformPDFSecurity(url)\" role=\"document\"></iframe>\n </div>\n <div class=\"w-full flex justify-center my-xxs\">\n <button (click)=\"closeDialog()\" class=\"wco-btn btn-primary btn-sm\" role=\"button\" tabindex=\"0\">Fechar</button>\n </div>\n </div>\n </dialog>\n</ng-container>","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { WcoModalAlertConfigActionsTypes, WcoModalAlertConfigTypes } from './modal-alert.types';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'wco-modal-alert',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './modal-alert.component.html',\n styleUrls: ['./modal-alert.component.scss'],\n})\nexport class WcoModalAlertComponent implements OnChanges {\n private DEFAULT_VALUES = {\n show: false,\n showIcon: true,\n title: '',\n message: '',\n actions: [],\n hideClose: false,\n };\n\n @Input() set show(value: boolean) {\n this.changeValues(value, 'show');\n }\n @Input() set showIcon(value: boolean) {\n this.changeValues(value, 'showIcon');\n }\n @Input() set title(value: string) {\n this.changeValues(value, 'title');\n }\n @Input() set message(value: string) {\n this.changeValues(value, 'message');\n }\n\n @Input() set materialIcon(value: string) {\n this.changeValues(value, 'materialIcon');\n }\n\n @Input() set type(\n value: 'error' | 'warning' | 'success' | 'info' | 'loading'\n ) {\n this.changeValues(value, 'type');\n }\n\n @Input() set hideClose(value: boolean) {\n this.changeValues(value, 'hideClose');\n }\n\n @Input() set actions(value: WcoModalAlertConfigActionsTypes[]) {\n this.changeValues(value, 'actions');\n }\n\n @Input({ alias: 'setId' }) id =\n 'wco-modal-alert-' + Math.random().toString(36).substring(7);\n\n @Input() config: WcoModalAlertConfigTypes = {\n show: false,\n showIcon: true,\n title: '',\n message: '',\n actions: [],\n hideClose: false,\n };\n\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnChanges(event: SimpleChanges): void {\n if (event['config']?.currentValue['show'] !== undefined) {\n this.eventModal();\n }\n }\n\n get title(): any {\n return this.sanitizer.bypassSecurityTrustHtml(this.config.title || '');\n }\n\n get message(): any {\n return this.sanitizer.bypassSecurityTrustHtml(this.config.message || '');\n }\n\n getButtonClass(action: WcoModalAlertConfigActionsTypes) {\n const classeColor =\n action.color === 'primary'\n ? 'btn-primary'\n : action.color === 'secondary'\n ? 'btn-secondary'\n : 'btn-neutral';\n const classeOutline = action.outline ? 'btn-outline' : '';\n const extraClasse = action.extraClasse ? action.extraClasse : '';\n return `wco-btn btn-full ${classeColor} ${classeOutline} ${extraClasse}`;\n }\n\n get iconMaterial() {\n const { type = 'info' } = this.config;\n switch (type) {\n case 'error':\n return { icon: 'error_outline', color: 'error' };\n case 'warning':\n return { icon: 'warning_amber', color: 'warning' };\n case 'success':\n return { icon: 'check_circle_outline', color: 'success' };\n case 'loading':\n return { icon: 'spinner', color: 'loading' };\n default:\n return { icon: 'info', color: 'info' };\n }\n }\n\n changeValues(valueUpdate: any, name: string) {\n this.config = {\n ...this.DEFAULT_VALUES,\n ...this.config,\n [name]: valueUpdate,\n };\n this.eventModal();\n }\n\n modalClose() {\n const element: any = document.getElementById(this.id);\n if (element) {\n element.close();\n }\n }\n\n eventModal() {\n const show = this.config.show;\n const element: any = document.getElementById(this.id);\n if (show && element) {\n if (this.config.hideClose) {\n element.addEventListener('keydown', (event: any) => {\n const key = event.key;\n if (key === 'Escape') {\n event.preventDefault();\n }\n });\n }\n element.showModal();\n this.config.show = false;\n } else {\n this.modalClose();\n }\n }\n}\n","<dialog class=\"wco-modal\" [id]=\"id\" role=\"dialog\" aria-modal=\"true\">\n <main>\n <ng-container *ngIf=\"!config.hideClose\">\n <button class=\"wco-modal--close\" (click)=\"modalClose()\">\n <span class=\"material-icons\">close</span>\n </button>\n </ng-container>\n <div [class]=\"'wco-modalConfirm ' + iconMaterial.color\">\n <ng-container *ngIf=\"config.showIcon\">\n <span class=\"wco-modalConfirm--icon\">\n <ng-container *ngIf=\"config.type !== 'loading'\">\n <span class=\"material-icons-round\">\n <ng-container *ngIf=\"config.materialIcon; else iconTemplate\">\n {{config.materialIcon}}\n </ng-container>\n <ng-template #iconTemplate>\n {{ iconMaterial.icon}}\n </ng-template>\n </span>\n </ng-container>\n <ng-container *ngIf=\"config.type === 'loading'\">\n <svg class=\"spinner\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle class=\"loading-icon\" fill=\"none\" stroke=\"var(--wco-modal-color-type)\" stroke-width=\"6\"\n stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </svg>\n </ng-container>\n </span>\n </ng-container>\n <ng-container *ngIf=\"config.title\">\n <h3 class=\"wco-modalConfirm--title\" [innerHTML]=\"title\"></h3>\n </ng-container>\n <ng-container *ngIf=\"config.message\"> \n <p class=\"wco-modalConfirm--message\" [innerHTML]=\"message\"></p>\n </ng-container>\n <div class=\"wco-modalConfirm--actions\" [class.modalConfirm--actions-size]=\"config.actions.length === 1\"\n *ngIf=\"config.actions && config.actions.length > 0\">\n <button type=\"button\" [class]=\"getButtonClass(action)\" (click)=\"action.action()\"\n *ngFor=\"let action of config.actions; let index = index\">\n <span class=\"material-icons-round\" *ngIf=\"action.materialIconLeft\">{{action.materialIconLeft}}</span>\n {{action.text}}\n <span class=\"material-icons-round\" *ngIf=\"action.materialIconRight\">{{action.materialIconRight}}</span>\n </button>\n </div>\n </div>\n </main>\n</dialog>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { TableHeader } from './table.types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'wco-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss'],\n standalone: true,\n imports: [CommonModule],\n})\nexport class TableComponent {\n @Input() data: any[] = [];\n @Input() headers: TableHeader[] = [];\n @Input() loading?: boolean = false;\n @Input() templates: { [key: string]: TemplateRef<any> } = {};\n\n constructor() {}\n\n getTemplate(templateName: string) {\n return this.templates[templateName];\n }\n}\n","<div class=\"wco-table-area\">\n <table class=\"wco-table\" role=\"table\">\n <thead *ngIf=\"data && data.length > 0\">\n <tr>\n <th *ngFor=\"let header of headers\" scope=\"col\">{{ header.label }}</th>\n </tr>\n </thead>\n <ng-container *ngIf=\"!loading\">\n <tbody>\n <tr\n *ngFor=\"let row of data; let i = index\"\n [id]=\"row['id'] ? 'row-' + row['id'] : i\"\n >\n <td\n *ngFor=\"let header of headers\"\n role=\"cell\"\n [attr.data-label]=\"header.label\"\n >\n <ng-container *ngIf=\"header.template\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(header.template);\n context: { $implicit: row[header.key], row: row, index: i }\n \"\n />\n </ng-container>\n <ng-container *ngIf=\"!header.template\">{{\n row[header.key]\n }}</ng-container>\n </td>\n </tr>\n </tbody>\n </ng-container>\n <ng-container *ngIf=\"loading\">\n <tbody>\n <tr *ngFor=\"let row of [1, 2, 3, 4, 5]\">\n <td *ngFor=\"let header of headers\" role=\"cell\">\n <div class=\"wco-skeleton mt-0\" style=\"width: 100%\">\n <span class=\"block p-xxs\"></span>\n </div>\n </td>\n </tr>\n </tbody>\n </ng-container>\n\n <ng-container *ngIf=\"!loading && !data.length\">\n <tbody>\n <tr class=\"wco-table__row--empty\">\n <td\n [attr.colspan]=\"headers.length\"\n class=\"wco-table__cell--empty\"\n role=\"cell\"\n >\n <ng-content select=\".empty\"></ng-content>\n </td>\n </tr>\n </tbody>\n </ng-container>\n </table>\n</div>\n","/*\n * Public API Surface of ngx-fenixds\n */\n\nexport * from './lib/step/step.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/upload/upload.component';\nexport * from './lib/upload/upload.types';\n\n// msg box feedback\nexport * from './lib/msg-box-feedback/msg-box-feedback.component';\nexport * from './lib/msg-box-feedback/msg-box-feeback.types';\n\n//msg navtabs\nexport * from './lib/tabs/tabs.component';\nexport * from './lib/tabs/tabs.types';\n\n//Pagination\nexport * from './lib/pagination/pagination.component';\n\n// Avatar\nexport * from './lib/user-avatar/user-avatar.component';\n\n// Smart Select\nexport * from './lib/smart-select/smart-select.component';\nexport * from './lib/smart-select/smart-select-options.component';\n\n// Timeline\nexport * from './lib/timeline/timeline.component';\n\n// Preview File\nexport * from './lib/preview-file/preview-file.component';\nexport * from './lib/preview-file/preview-file.types';\n\n// Modal\nexport * from './lib/modal-alert/modal-alert.component';\nexport * from './lib/modal-alert/modal-alert.types';\n\n// Table\nexport * from './lib/table/table.component';\nexport * from './lib/table/table.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-select.component.d.ts","sourceRoot":"","sources":["../../../../projects/ngx-components/src/lib/smart-select/smart-select.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,YAAY,EAIZ,SAAS,EAGV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,WAAW,EAKX,gBAAgB,EAChB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;;AAE9E,qBAoBa,oBAAqB,YAAW,oBAAoB,EAAE,SAAS;IAiE9D,OAAO,CAAC,EAAE;IAhEuB,OAAO,EAChD,SAAS,CAAC,0BAA0B,CAAC,GACrC,SAAS,CAAC;IAEJ,QAAQ;cAA4B,MAAM;eAAS,GAAG;OAAM;IAItE,OAAO,SAAuD;IAGrD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,SAAqB;IAI1C,WAAW,SAAyB;IAG3B,KAAK,SAAO;IAGZ,SAAS,UAAS;IAI3B,UAAU,UAAS;IAGnB,iBAAiB,EAAE,MAAM,CAAY;IAIrC,SAAS,SAAoC;IAI7C,WAAW,UAAS;IAIpB,oBAAoB,SAAK;IAIzB,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAAQ;IAI/C,QAAQ,EAAE,OAAO,CAAS;IAEjB,eAAe,EAAE,GAAG,GAAG,SAAS,CAAC;IAE1C,QAAQ,UAA4B;IAEpC,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,UAAS;IAClB,kBAAkB,UAAS;IAC3B,mBAAmB,mBAAqB;IACxC,eAAe,EAAE,GAAG,EAAE,CAAM;IAE5B,QAAQ,UAAS;gBAEG,EAAE,EAAE,UAAU;IAElC,SAAS,aAEP;IAIF,QAAQ;IAIR,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAS1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI;IAKxD,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAQ/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,IAAI,QAAQ,IAAI,OAAO,CAMtB;IAED,gBAAgB,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAS5C,SAAS,CAAC,KAAK,UAAQ;IAUvB,WAAW;IAyBX,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG;IAyCrB,IAAI,aAAa,WAOhB;IAGD,IAAI,kBAAkB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAyB3D;IAED,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,uBAAuB;IAuB/B,IAAI,uBAAuB,IAAI,MAAM,CAcpC;IAED,UAAU,CAAC,MAAM,EAAE,GAAG;IAOtB,UAAU,CAAC,KAAK,EAAE,GAAG;IAKrB,QAAQ,CAAC,KAAK,EAAE,GAAG;IAYnB,QAAQ;IAKR,UAAU;IAOV,SAAS;IAMT,aAAa,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,GAAG,CAAA;KAAE;IAoBzE,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;yCAtYV,oBAAoB;2CAApB,oBAAoB;CA2YhC"}
1
+ {"version":3,"file":"smart-select.component.d.ts","sourceRoot":"","sources":["../../../../projects/ngx-components/src/lib/smart-select/smart-select.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EACV,YAAY,EAGZ,SAAS,EAGV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,WAAW,EAKX,gBAAgB,EAChB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;;AAE9E,qBAoBa,oBAAqB,YAAW,oBAAoB,EAAE,SAAS;IAiE9D,OAAO,CAAC,EAAE;IAhEuB,OAAO,EAChD,SAAS,CAAC,0BAA0B,CAAC,GACrC,SAAS,CAAC;IAEJ,QAAQ;cAA4B,MAAM;eAAS,GAAG;OAAM;IAItE,OAAO,SAAuD;IAGrD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,YAAY,SAAqB;IAI1C,WAAW,SAAyB;IAG3B,KAAK,SAAO;IAGZ,SAAS,UAAS;IAI3B,UAAU,UAAS;IAGnB,iBAAiB,EAAE,MAAM,CAAY;IAIrC,SAAS,SAAoC;IAI7C,WAAW,UAAS;IAIpB,oBAAoB,SAAK;IAIzB,UAAU,EAAE,UAAU,GAAG,OAAO,GAAG,IAAI,CAAQ;IAI/C,QAAQ,EAAE,OAAO,CAAS;IAEjB,eAAe,EAAE,GAAG,GAAG,SAAS,CAAC;IAE1C,QAAQ,UAA4B;IAEpC,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,UAAS;IAClB,kBAAkB,UAAS;IAC3B,mBAAmB,mBAAqB;IACxC,eAAe,EAAE,GAAG,EAAE,CAAM;IAE5B,QAAQ,UAAS;gBAEG,EAAE,EAAE,UAAU;IAElC,SAAS,aAEP;IAIF,QAAQ;IAIR,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAS1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI;IAKxD,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAQ/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,IAAI,QAAQ,IAAI,OAAO,CAMtB;IAED,gBAAgB,CAAC,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAS5C,SAAS,CAAC,KAAK,UAAQ;IAUvB,WAAW;IAyBX,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG;IAyCrB,IAAI,aAAa,WAOhB;IAGD,IAAI,kBAAkB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAyB3D;IAED,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,uBAAuB;IAuB/B,IAAI,uBAAuB,IAAI,MAAM,CAcpC;IAED,UAAU,CAAC,MAAM,EAAE,GAAG;IAOtB,UAAU,CAAC,KAAK,EAAE,GAAG;IAKrB,QAAQ,CAAC,KAAK,EAAE,GAAG;IAYnB,QAAQ;IAKR,UAAU;IAOV,SAAS;IAMT,aAAa,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,GAAG,CAAA;KAAE;IAoBzE,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,aAAa;yCAtYV,oBAAoB;2CAApB,oBAAoB;CA2YhC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wizco/fenixds-ngx",
3
3
  "description": "Componentes fenix design system para Angular.",
4
- "version": "17.4.2",
4
+ "version": "17.4.4",
5
5
  "sideEffects": false,
6
6
  "private": false,
7
7
  "license": "MIT",