PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
module Views.AlertList.Views exposing (view) import Data.AlertGroup exposing (AlertGroup) import Data.GettableAlert exposing (GettableAlert) import Data.Receiver exposing (Receiver) import Dict import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import Set exposing (Set) import Types exposing (Msg(..)) import Utils.Filter exposing (Filter) import Utils.Types exposing (ApiData(..), Labels) import Utils.Views import Views.AlertList.AlertView as AlertView import Views.AlertList.Types exposing (AlertListMsg(..), Model, Tab(..)) import Views.FilterBar.Views as FilterBar import Views.GroupBar.Views as GroupBar import Views.ReceiverBar.Views as ReceiverBar renderCheckbox : String -> Maybe Bool -> (Bool -> AlertListMsg) -> Html Msg renderCheckbox textLabel maybeChecked toggleMsg = li [ class "nav-item" ] [ label [ class "mt-1 ml-1 custom-control custom-checkbox" ] [ input [ type_ "checkbox" , class "custom-control-input" , checked (Maybe.withDefault False maybeChecked) , onCheck (toggleMsg >> MsgForAlertList) ] [] , span [ class "custom-control-indicator" ] [] , span [ class "custom-control-description" ] [ text textLabel ] ] ] groupTabName : Bool -> Html msg groupTabName customGrouping = if customGrouping then text "Group (custom)" else text "Group" view : Model -> Filter -> Html Msg view { alertGroups, groupBar, filterBar, receiverBar, tab, activeId, activeGroups, expandAll } filter = div [] [ div [ class "card mb-3" ] [ div [ class "card-header" ] [ ul [ class "nav nav-tabs card-header-tabs" ] [ Utils.Views.tab FilterTab tab (SetTab >> MsgForAlertList) [ text "Filter" ] , Utils.Views.tab GroupTab tab (SetTab >> MsgForAlertList) [ groupTabName filter.customGrouping ] , receiverBar |> ReceiverBar.view filter.receiver |> Html.map (MsgForReceiverBar >> MsgForAlertList) , renderCheckbox "Silenced" filter.showSilenced ToggleSilenced , renderCheckbox "Inhibited" filter.showInhibited ToggleInhibited ] ] , div [ class "card-block" ] [ case tab of FilterTab -> Html.map (MsgForFilterBar >> MsgForAlertList) (FilterBar.view { showSilenceButton = True } filterBar) GroupTab -> Html.map (MsgForGroupBar >> MsgForAlertList) (GroupBar.view groupBar filter.customGrouping) ] ] , div [] [ button [ class "btn btn-outline-secondary border-0 mr-1 mb-3" , onClick (MsgForAlertList (ToggleExpandAll (not expandAll))) ] (if expandAll then [ i [ class "fa fa-minus mr-3" ] [], text "Collapse all groups" ] else [ i [ class "fa fa-plus mr-3" ] [], text "Expand all groups" ] ) ] , Utils.Views.apiData (defaultAlertGroups activeId activeGroups expandAll) alertGroups ] defaultAlertGroups : Maybe String -> Set Int -> Bool -> List AlertGroup -> Html Msg defaultAlertGroups activeId activeGroups expandAll groups = case groups of [] -> Utils.Views.error "No alert groups found" [ { labels, receiver, alerts } ] -> let labels_ = Dict.toList labels in alertGroup activeId (Set.singleton 0) receiver labels_ alerts 0 expandAll _ -> div [ class "pl-5" ] (List.indexedMap (\index group -> alertGroup activeId activeGroups group.receiver (Dict.toList group.labels) group.alerts index expandAll ) groups ) alertGroup : Maybe String -> Set Int -> Receiver -> Labels -> List GettableAlert -> Int -> Bool -> Html Msg alertGroup activeId activeGroups receiver labels alerts groupId expandAll = let groupActive = expandAll || Set.member groupId activeGroups labels_ = case labels of [] -> [ span [ class "btn btn-secondary mr-1 mb-1" ] [ text "Not grouped" ] ] _ -> List.map (\( key, value ) -> div [ class "btn-group mr-1 mb-1" ] [ span [ class "btn text-muted" , style "user-select" "initial" , style "-moz-user-select" "initial" , style "-webkit-user-select" "initial" , style "border-color" "#5bc0de" ] [ text (key ++ "=\"" ++ value ++ "\"") ] , button [ class "btn btn-outline-info" , onClick (AlertView.addLabelMsg ( key, value )) , title "Filter by this label" ] [ text "+" ] ] ) labels expandButton = expandAlertGroup groupActive groupId receiver |> Html.map (\msg -> MsgForAlertList (ActiveGroups msg)) alertCount = List.length alerts alertText = if alertCount == 1 then String.fromInt alertCount ++ " alert" else String.fromInt alertCount ++ " alerts" alertEl = [ span [ class "ml-1 mb-0", style "white-space" "nowrap" ] [ text alertText ] ] in div [] [ div [ class "mb-3" ] (expandButton :: labels_ ++ alertEl) , if groupActive then ul [ class "list-group mb-0" ] (List.map (AlertView.view labels activeId) alerts) else text "" ] expandAlertGroup : Bool -> Int -> Receiver -> Html Int expandAlertGroup expanded groupId receiver = let icon = if expanded then "fa-minus" else "fa-plus" in button [ onClick groupId , class "btn btn-outline-info border-0 mr-1 mb-1" , style "margin-left" "-3rem" ] [ i [ class ("fa " ++ icon) , class "mr-2" ] [] , text receiver.name ]